پخش بار گوس سایدل در متلب – راهنمای کاربردی

۲۲۵۳
۱۴۰۲/۰۲/۱۶
۸ دقیقه
PDF
آموزش متنی جامع
امکان دانلود نسخه PDF

در آموزش‌های پیشین مجله فرادرس، با مفاهیم و معادلات پخش بار آشنا شدیم. همچنین روش‌های پخش بار نیوتن رافسون و گوس سایدل را به طور مفصل شرح دادیم. پخش بار نیوتن رافسون در متلب نیز یکی دیگر از آموزش‌هایی بود که به بحث درباره آن پرداختیم. در این آموزش، برنامه‌ پخش بار گوس سایدل در متلب را ارائه خواهیم‌ کرد.

پخش بار گوس سایدل در متلب – راهنمای کاربردیپخش بار گوس سایدل در متلب – راهنمای کاربردی
997696

قبل از بررسی برنامه‌های متلب، پیشنهاد می‌کنیم آموزش‌های «پخش بار در سیستم قدرت» و «پخش بار گوس سایدل» را مطالعه کنید.

الگوریتم پخش بار گوس سایدل

در این بخش، خلاصه‌ای از مراحل روش گوس سایدل را بیان می‌کنیم. گام‌های روش پخش بار گوس سایدل به صورت زیر هستند:

گام ۱: مقداردهی اولیه Vˉj(0)=Vjsp0\bar{V}_j ^{(0)}=V_j^{sp} \angle 0^ \circ را برای j=2,3,,mj=2, 3, \ldots , m، و Vˉj(0)=1.00\bar{V}_j ^{(0)}=1.0 \angle 0^ \circ را برای j=(m+1),(m+2),,nj=(m+1), (m+2), \ldots , n انجام دهید. شمارنده تکرار را k=1k=1‌ قرار دهید.

گام ۲: برای i=2,3,,mi=2, 3, \ldots, m، عملیات زیر را انجام دهید:

الف) توان راکتیو را محاسبه کنید:

Qi(k)=j=1nVi(k1)Vj(k1)Yijsin(θi(k1)θj(k1)αij)\large Q _ { i } ^ { ( k ) } = \sum _ { j = 1 } ^ { n } V _ { i } ^ { ( k - 1 ) } V _ { j } ^ { ( k - 1 ) } Y _ { i j } \sin \left ( \theta _ { i } ^ { ( k - 1 ) } - \theta _ { j } ^ { ( k - 1 ) } -\alpha _ { i j } \right )

ب) اگر QiminQi(k)QimaxQ_i^{min} \le Q_i ^{(k)} \le Q_i ^{max} برقرار باشد، مقادیر Vˉi(k)=Visp\left |\bar{V}_i ^{(k)} \right | = V_i ^{sp} و θi(k)=(Ai(k))\theta _i ^{(k)}= \angle \left(A_i^{(k)} \right ) را در نظر بگیرید.

مقدار Ai(k)A_i^{(k)} از رابطه زیر قابل محاسبه است:

Ai(k)=1Yˉii[PijQi(k){Vˉi(k1)}j=1i1YˉijVˉj(k)j=i+1nYˉijVˉj(k1)]\large A _ { i } ^ { ( k ) } = \frac { 1 } { \bar { Y } _ {i i } } \left [ \frac { P _ { i } - j Q _ { i } ^ { ( k ) } } { \left\{ \bar { V } _ { i } ^ { ( k - 1 ) } \right \} ^ { * } } - \sum _ { j = 1 } ^ { i - 1 } \bar { Y } _ { i j } \bar { V } _ { j } ^ { ( k ) } - \sum _ { j = i + 1 } ^ { n } \bar { Y } _ { i j } \bar { V } _ { j } ^ { ( k - 1 ) } \right ]

ج) اگر Qi(k)QimaxQ_i ^{(k)} \ge Q_i^{max}، آن‌گاه مقدار ولتاژ زیر را محاسبه کنید:

Vˉi(k)=1Yˉii[PijQimax{Vˉi(k1)}j=1i1YˉijVˉj(k)j=i+1nYˉijVˉj(k1)]\large \bar { V } _ { i } ^ { ( k ) } = \frac { 1 } { \bar { Y } _ { i i } } \left [ \frac { P _ { i } - j Q _ { i } ^ { \max } } { \left \{ \bar { V } _ { i } ^ { ( k - 1 ) } \right \} ^ { * } } - \sum _ { j = 1 } ^ { i - 1 } \bar { Y } _ { i j } \bar { V } _{ j } ^ { ( k) } - \sum _ { j = i + 1 } ^ { n } \bar { Y } _ { i j } \bar { V } _ { j } ^ { ( k - 1 ) } \right ]

د) اگر Qi(k)QiminQ_i ^{(k)} \le Q_i^{min}، آن‌گاه ولتاژ را از رابطه زیر به‌دست آورید:

Vˉi(k)=1Yˉii[PijQimin{Vˉi(k1)}j=1i1YˉijVˉj(k)j=i+1nYˉijVˉj(k1)]\large \bar { V } _ { i } ^ { ( k ) } = \frac { 1 } { \bar { Y } _ { i i } } \left [ \frac { P _ { i } - j Q _ { i } ^ { \min } }{ \left \{ \bar { V } _ { i } ^ { ( k - 1 ) } \right \} ^ { * } } - \sum _ { j = 1 } ^ { i - 1 } \bar { Y } _ { i j } \bar { V }_ { j } ^ { ( k ) } - \sum _ { j = i + 1 } ^ { n } \bar { Y } _ { i j } \bar { V } _ { j} ^ { ( k - 1 ) } \right ]

گام ۳: برای i=(m+1),,ni=(m+1), \ldots , n، ولتاژ را از رابطه زیر محاسبه کنید:

Vˉi(k)=1Yˉii[PijQi(k){Vˉi(k1)}j=1i1YˉijVˉj(k)j=i+1nYˉijVˉj(k1)]\large \bar { V } _ { i } ^ { ( k ) } = \frac { 1 } { \bar { Y } _{ i i } } \left [ \frac { P _ { i } - j Q _ { i } ^ { ( k ) } } { \left \{ \bar { V } _ { i } ^ { ( k - 1 ) } \right \} ^ { * } } - \sum _ { j = 1 } ^ { i - 1 } \bar { Y } _ { i j } \bar { V } _ { j } ^ { ( k ) } - \sum _ { j = i + 1 } ^ { n } \bar { Y } _ { i j } \bar { V } _ { j } ^ { ( k - 1 ) } \right ]

گام ۴: خطای زیر را برای همه مقادیر i=2,,ni=2, \ldots , n محاسبه کنید:

ei(k)=Vˉi(k)Vˉi(k1)\large e _ { i } ^ { ( k ) } = \left | \bar { V } _ { i } ^ { ( k ) } - \bar { V } _ { i } ^ { ( k - 1 ) } \right |

گام 5: از بین خطاهایی که در مرحله قبل محاسبه کرده‌اید، بزرگ‌ترین مقدار را پیدا کنید:

e(k)=max(e2(k),e3(k),en(k))\large e ^ { ( k ) } = \max \left ( e _ { 2 } ^ { ( k ) } , e _ { 3 } ^ { ( k ) } , \cdots \cdots e _ { n } ^ { ( k ) } \right )

پخش بار گوس سایدل در متلب

لازم به ذکر است که این برنامه برای سیستمی با ۴ شین نوشته شده و می‌توانید با تغییر اطلاعات ورودی آن را برای سیستم مورد نظر خود اجرا کنید.

تابع input_bus_data حاوی اطلاعات مربوط به شین‌ها است که کاربر می‌تواند آن را تغییر دهد. برنامه این تابع به صورت زیر است:

تابع input_line_data نیز برای ورود اطلاعات مربوط به خطوط است که کاربر آن‌ها را وارد می‌کند. کد متلب زیر، برنامه این تابع را نشان می‌دهد:

تابع مهم دیگر، Ybus_matrix است که ماتریس ادمیتانس شین را تشکیل می‌دهد. کد متلب این برنامه به صورت زیر است.

برنامه اصلی پخش بار گوس سایدل در متلب نیز به صورت زیر است:

اگر این برنامه را اجرا کنیم، خروجی آن به صورت زیر خواهد بود:

جوای پخش بار گوس سایدل در متلب

اگر علاقه‌مند به یادگیری مباحث مشابه مطلب بالا هستید، آموزش‌هایی که در ادامه آمده‌اند نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۱۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر پرسشی درباره این مطلب دارید، آن را با ما مطرح کنید.
منابع:
GitHubNPTEL
PDF
مطالب مرتبط
۱ دیدگاه برای «پخش بار گوس سایدل در متلب – راهنمای کاربردی»

سلام ممنون از مطلب مفیدتون،
یه سوال
در تابع input_Line_data
اون مقدار Total Charging
چطور به دست میاد ؟
Pgen-Pd هست آیا ؟ بر حسب پریونیته یا چیز دیگه ایه ؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *