فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder
دریافت فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder به همراه پاورپوینت رایگان!
🎁 پیشنهاد ویژه برای شما!
با خرید پروژه فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder، یک پاورپوینت حرفهای با طراحی جذاب و قابل استفاده بهصورت کاملاً رایگان به شما اهدا میشود.
✨ چرا فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder انتخاب مناسبی است؟
- ۱۴۰ صفحه فرمتبندیشده و استاندارد: فایل Word حاوی ۱۴۰ صفحه کاملاً تنظیمشده است و آماده برای چاپ یا ارائه میباشد.
- مطابق با استانداردهای علمی: این فایل مطابق با اصول و استانداردهای دانشگاهی و مؤسسات آموزشی تهیه شده و بهخصوص برای دانشجویان و دانشآموزان مناسب است.
- محتوای دقیق و منظم: فایل نهایی بدون هیچگونه بهمریختگی ارائه میشود و تمامی موارد بهدرستی تنظیم شدهاند.
- پاورپوینت رایگان: بهعنوان یک هدیه ویژه، پاورپوینت آماده با طراحی زیبا و استاندارد به همراه فایل Word دریافت خواهید کرد.
- آماده برای ارائه: فایلها بهطور کامل آمادهاند و نیازی به تغییر یا ویرایش برای ارائه در کلاسها و سمینارها ندارند.
- مطالب علمی و کاربردی: این فایل شامل اطلاعات علمی بهروز و مفید است که به شما در درک بهتر موضوعات کمک خواهد کرد.
- قابلیت ویرایش آسان: فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder بهطور کامل فرمتبندی شده است و بهسادگی قابل ویرایش است تا با نیازهای شما هماهنگ شود.
- تضمین کیفیت: ما کیفیت این فایل را تضمین میکنیم و در صورت بروز هرگونه مشکل، پشتیبانی کاملی ارائه میدهیم.
توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد
فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder دارای ۱۴۰ صفحه می باشد و دارای تنظیمات و فهرست کامل در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
بخشی از فهرست مطالب پروژه فایل کامل و عالی طراحی نرم افزار پخش بار به روش نیوتن رافسون به زبان C++ Builder
مقدمه
فصل اول – شرحی بر پخش بار .
1- پخش بار
۲- شین مرجع یا شناور
۳- شین بار
۴- شین ولتاژ کنترل شده
۵- شین نیروگاهی
۶- شین انتقال
فصل دوم – محاسبات ریاضی نرم افزار
۱- حل معادلات جبری غیر خطی به روش نیوتن-رافسون
۲- روشی برای وارون کردن ماتریس ژاکوبین
فصل سوم – معادلات حل پخش بار به روش نیوتن-رافسون
۱- حل پخش بار به روش نیوتن – رافسون
فصل چهارم – تعیین الگوریتم کلی برنامه
۱- الگوریتم کلی برنامه
۲- الگوریتم دریافت اطلاعات در ورودی
۳- الگوریتم محاسبه ماتریس ژاکوبین
۴- الگوریتم مربوط به وارون ژاکوبین
۵- الگوریتم مربطو به محاسبه
۶- الگوریتم مربوط به محاسبه ماتریس
۷-الگوریتم مربوط به ضرب وارون ژاکوبین در ماتریس
۸- الگوریتم مربوط به محاسبه
۹- الگوریتم تست شرط
۱۰- الگوریتم مربوط به چاپ جوابهای مسئله در خروجی
فصل پنجم – مروری بر دستورات برنامه نویسی C++
۱- انواع داده
۲- متغیرها
۳۳- تعریف متغیر
۴- مقدار دادن به متغیر
۵- عملگرها
۶- عملگرهای محاسباتی
۷- عملگرهای رابطهای
۸- عملگرهای منطقی
۹- عملگر Sizcof
۱۰- ساختار تکرار for
۱۱- ساختارتکرار While
۱۲- ساختار تکرار do … While
۱۳- ساختار تصمیم if
۱۴- تابع Printf ( )
۱۵- تابع Scanf ( )
۱۶- تابع getch ( )
۱۷- اشارهگرها
۱۸- متغیرهای پویا
۱۹- تخصیص حافظه پویا
۲۰- برگرداندن حافظه به سیستم
۲۱- توابع
۲۲- تابع چگونه کار میکند
فصل ششم – تشریح و نحوی عملکرد برنامه
فصل هفتم – نرم افزار
مقدمه
بی شک صنعت برق مهمترین و حساسترین صنایع در هر کشور محسوب میشود. بطوریکه عملکرد نادرست تولید کنندهها و سیستمهای قدرت موجب فلج شدن ساختار صنعتی ، اقتصادی ، اجتماعی و حتی سپاسی در آن جامعه خواهد شد. از زمانیکه برق کشف و تجهیزات برقی اختراع شدند. تکنولوژی با سرعت تساعدی در جهت پیشرفت شتاب گرفت. بطوریکه میتوان گفت در حدود دویست سال اخیر نود درصد از پیشرفت جامع بشری به وقوع پیوست. و شاید روزی یا هفتهای نباشد که دانشمندان سراسر جهان مطلب جدیدی در یکی از گراشیهای علم برق کشف و عنوان نکنند. و انسان قرن بیست و یکم بخش قابل توجهای از آسایش رفاه خود را مدیون حرکت الکترونها میباشد. و دانشمندان در این عرصه انسانهای سختکوش بودند که همه تلاش خود را برای افراد راحت طلب بکار بستند.
در آغاز شکل گیری شبکههای برقی ، مولدها ، برق را بصورت جریان مستقیم تولید میکردند و در مساحتهای محدود و کوچک از آنها بهرهمند میشد. و این شبکهها بصورت کوچک و محدود استفاده میشد. با افزایش تقاضا در زمینه استفاده از انرژی الکتریکی دیگر این شبکههای کوچک پاسخگوی نیاز مصرف کنندهها نبود و میبایست سیستمهای برقرسانی مساحت بیشتری را تحت پوشش خود قرار میدادند. از طرفی برای تولید نیز محدودیتهایی موجود بود که اجازه تولید انرژی الکتریکی را در هر نقطه دلخواه به مهندسین برق نمیداد. زیرا که نیروگاهها میبایست در محلهایی احداث میشد که انرژی بطور طبیعی یافت میشد. انرژیهای طبیعی مثل : آب ، باد ، ذغال سنگ وغیره بنابراین نیروگاهها را میبایست در جاهایی احداث میکردند که یا در آنجا آب و یا باد و یا ذغال سنگ و دیگر انرژیهای سوختی موجود بود. بدین ترتیب نظریه انتقال انرژی الکتریکی از محل تولید انرژی تا محل مصرف پیش آمد. این انتقال نیز توسط برق جریان مستقیم امکانپذیر نبود. زیرا ولتاژ در طول خط انتقال افت می کرد و در محل مصرف دیگر عملاً ولتاژی باقی نمیماند. بنابراین مهندسین صنعت برق تصمیم گرفتند که انرژی الکتریکی را بطور AC تولید کنند تا قابلیت انتقال داشته باشد. و این عمل را نیز توسط ترانسفورماتورها انجام دادند. ترانسفورماتورها میتوانستند ولتاژ را تا اندازه قابل ملاحظهای بالا برده و امکان انتقال را فراهم آورند. مزیت دیگری که ترانسفورماتورها به سیستمهای قدرت بخشیدند. این بود که با بالا بردن سطح ولتاژ ، به همان نسبت نیز جریان را پائین می آوردند ، بدین ترتیب سطح مقطع هادیهای خطوط انتقال کمتر میشد و بطور کلی میتوانستیم کلیه تجهیزات را به وسیله جریان پائین سایز نماییم. و این امر نیز از دیدگاه اقتصادی بسیار قابل توجه مینمود.
بدین ترتیب شبکههای قدرت AC شکل گرفت و خطوط انتقال و پستهای متعددی نیز برای انتقال انرژی الکتریکی در نظر گرفته شد. و برای تأمین پیوسته انرژی این شبکهها به یکدیگر متصل شدند و تا امروه نیز در حال گسترش و توسعه میباشند. هرچه سیستمهای قدر الکتریکی بزرگتر میشد بحث بهرهبرداری و پایداری سیستم نیز پیچیدهتر نشان میداد. و در این راستا مراکز کنترل و بهره بردار از سیستمهای قدرت میبایست در هر لحظه از ولتاژها و توانهای تمامی پستها و توانهای جاری شده در خطوط انتقال آگاهی مییافتند. تا بتوانند انرژی را بطور استاندارد و سالم تا محل مصرف انتقال و سپس توزیع کنند. این امر مستلزم حل معادلاتی بود که تعداد مجهولات از تعداد معلومات بیشتر بود. حل معادلاتی که مجهولات بیشتری از معلومات آن دارد نیز فقط در فضای ریاضیاتی با محاسبات عدد امکانپذیر است که در تکرارهای مکرر قابل دستیابی است. در صنعت برق تعیین ولتاژها و زوایای ولتاژها و توانهای اکتیو و راکتیو در پستها و نیروگاهها را با عنوان پخش بار (load flow) مطرح میشود.
پخش بار در سیستمهای قدرت دارای روشهای متنوعی میباشد که عبارتند از : روش نیوتن ۰ رافسون ، روش گوس – سایدل ، روش Decaupled load flow و روش Fast decaupled load flow که هر یک دارای مزیتهای خاص خود میباشد. روش نیوتن- رافسون یک روش دقیق با تکرارهای کم میباشد که جوابها زود همگرا میشود ، اما دارای محاسبات مشکلی است. روش گوس – سایدل دقت کمتری نسبت به نیوتن رافسون دارد و تعداد و تکرارها نیز بیشتر است اما محاسبات سادهتری دارد. روش Decaupled load flow یک روش تقریبی در محاسبات پخش بار است و دارای سرعت بالایی میباشد ، و زمانی که نیاز به پیدا کردن توان اکتیو انتقالی خط مطرح است مورد استفاده میباشد. روش Fast decaupled load flow نیز یک روش تقریبی است که از سرعت بالایی نیست به نیوتن رافسون و گوس سایدل برخوردار میباشد. و از روش Decaupled load flow نیز دقیقتر میباشد. اما مورد بحث این پایاننامه روش نیوتن – رافسون است که در ادامه به آن میپردازیم.
فصل اول
شرحی بر پخش بار
پخش بار :
جهت طراحی و توسعه آتی و بهترین عملکرد یک سیستم قدرت پخش بار ابزار توانمندی برای دستیابی به این مهم میباشد. اطلاعاتی که پس از انجام محاسبات پخش بار در شبکه در اختیار قرار میگیرد شامل ولتاژ ، زاویه ولتاژ ، توان اکتیو و راکتیو تمامی شینها و همچنین توانهای اکتیو و راکتیو جاری در خطوط میباشد. مضافاً به این که اطلاعات بیشتری توسط نرم افزارهایی که شرکتهای برق منطقه ای از آن سود میبرند در اختیار قرار میگیرد.
با توجه به راه حلهای طولانی و تکرارهای پیاپی این روشها و همچنین فرصت ناچیزی که مهندسین برق در حین به وقوع پیوستن اتفاقات اجتناب ناپذیر و غیر قابل پیش بینی در اختیار دارند ، جایگاه یک نرم افزار قدرتمند در طراحی و عملکرد مناسب سیستمهای قدرت که از ارزش اقتصادی بسیار زیادی نیز برخوردارند مشخص میشود.
این نرم افزارها با توجه به در اختیار بودن پردازندههای پر سرعت نسل جدید میتوانند تمامی اطلاعات مربوط به شبکه مورد مطالعه را به سرعت در اختیار قرار دهند. مطالعات پخش توان استخوانبندی اصلی تجزیه و تحلیل و طراحی سیستم قدرت را تشکیل میدهد. این مطالعات دارای کاربردها و مزیتهای بسیاری میباشد که شامل : برنامهریزی ، بهرهبرداری ، برنامه ریزی زمانبندی اقتصادی ، و تبادل توان بین شرکتهای برق منطقهای میباشد. مضافاً به این که این مطالعات برای تحلیلهای دیگری همچون مطالعات پایداری گذرا ، خطاهای احتمالی ایجاد شونده در شبکهها ، طراحی پست ، طراحی خط انتقال و حوادث و رخدادهای غیر مترقبه در سیستمهای قدرت مورد نیاز است. وقتی بخواهیم پست جدیدی احداث نماییم. برای انتخاب کلید مناسب در آن پست میبایست ابتدا محاسبات اتصال کوتاه را انجام داد و جریان اتصال کوتاه را برای شین آن پست در نظر گرفت و سپس کلید مورد نظر را انتخاب نمود. بنابراین برای اینکه بتوانیم محاسبات اتصال کوتاه را انجام دهیم میبایست جواب حاصل از مطالعات پخش بار را در اختیار داشته باشیم. و یا هر گاه برحسب احتمال نیروگاهی از شبکه سراسری از مدار خارج شود. برای بررسی پایداری در شبکه باید به سرعت محاسبات پخش بار را انجام داد تا از پایدار بودن سیستم و یا اینکه آیا دیگر نیروگاهها قادر به تأمین انرژی لازم مصرف کنندگان هستند یا خیر اطمینان حاصل کرد. چرا که در غیر اینصورت ممکن است انرژی مصرفی در سیستم در آن لحظه بیشتر از انرژی تأمین شده توسط ژنراتورهای نیروگاهها باشد که این امر موجب میشود تا کل شبکه از دست برود. و همچنین دیگر کاربردهای متنوع محاسبات پخش بار در شبکههای برقرسانی و مباحث مختلف مهندسی برق اهمیت آنرا آشکار میسازد.
برای انجام مطالعات پخش بار میبایست ماتریس ادمیتانس شبکه و یا Ybus شبکه و اطلاعات مربوط به شین ها در اختیار باشد. شینها انواع مختلفی دارند که هر یک با توجه به نوع آن شامل اطلاعات خاص خود را میباشند. و نوع شین معلومات و مجهولات مربوط به آن شین را معین میکند. بطور کی در شبکههای قدرت میتوان پنج نوع شین را در نظر گرفت که شامل موارد زیر است :
۱) شین مرجع یا شناور (Slack or swing)
۲) شین بار (load bus)
۳) شین ولتاژ کنترل نشده (Control bus)
۴) شین نیروگاهی (generator bus)
۵) شین انتقال (ttranse bus)
در زیر به هر یک از موارد فوق پرداخته میشود. و معلومات و مجهولات مربوط به آنها مشخص خواهد شد.
شین مرجع یا شناور (Slack or swing bus)
این شین در واقع یک شین نیروگاهی میباشد ، که بعنوان مرجع تعیین می شود. به این معنی که ولتاژ این شین را یک و زاویه ولتاژ آنرا صفر در نظر میگیریم و مقادیر ولتاژ و زاویه ولتاژ شینهای دیگر سیستم مورد مطالعه را نسبت به آن سنجش میکنیم.
لازم به ذکر است که مرجع بودن این شین با گره مرجع در تحلیل مدارهای الکتریکی به روش تحلیلگره تفاوت میکند. در واقع در هر سیستمی باید یک شین را بعنوان مرجع انتخاب نمود. این شین حتماً میبایست نیروگاهی باشد و معمولاً شین شماره یک را مرجع در نظر میگیریم. شین مرجع دارای قدرت توان گیری و توان دهی سریعتری نسبت به شینهای دیگر میباشد.
همانطور که عنوان شد ولتاژ را برای شین مرجع یک و زاویه ولتاژ را صفر در نظر میگیریم بنابراین ولتاژ و زاویه آن برای شین مرجع جزء معلومات محسوب میشود و توان اکتیو و راکتیو تولیدی در این شین مجهول است. پس از Converge کردن سیستم مقادیر توانهای اکتیو و راکتیو تولیدی در این شین معین میشوند.
شین بار (load bus)
شین بار به شینی اطلاق میشود که در آن باری برای مصرف قرار گرفته باشد.
و هیچ گونه جبرانسازی در آن صورت نگرفته باشد. به این شین ، شین PQ نیز گفته میشود زیرا معلومات ما در آن توان اکتیو و راکتیو مصرفی میباشد. ولتاژ و زاویه ولتاژ برای شین بار مجهولند ، و در فرایند محاسبات به دست میآیند.
شین ولتاژ کنترل شده (Control bus)
در پستهایی که برای محدود کردن رگولاسیون ولتاژ در یک بازه معین جبرانسازی شده باشد. به آن پست ، شین ولتاژ کنترل شده گویند. هرگاه بر اثر مصرف بارهای سلفی افت ولتاژ حاصل شود ، برای جبراین این افت خازنهای جبرانساز را وارد مدار کرده و بدین ترتیب ولتاژ را به حد مطلوب شیفت میدهند. و بطور عکس هرگاه بر اثر خاصیت خازنی خطوط و مصرف کم افزایش ولتاژ مشاهده شود ، تحت چنین شرایطی راکتورهای جبرانساز به شین متصل میشود. در این شین تنها اندازه ولتاژ معلوم بوده و زاویه و توان راکتیور ، سلف یا خازن ، مجهولات را شامل میشوند.
شین نیروگاهی (generator bus)
همانطور که از اسم آن پیداست ، این شین یک نیروگاه میباشد. به این شین PV نیز میگویند ، چرا که ، اندازه ولتاژ و همچنین توان اکتیو تولیدی در آن مشخص و جزء معلومات شین محسوب میشود. زاویه ولتاژ و توان راکتیو تولیدی آن از مجهولات شبکه است. و توان راکتیو آنرا بعد از Converge کردن سیستم بدست می آوریم.
شین انتقال (transe bus)
این نوع شین به شینی اطلاق میشود که نه به آن باری متصل است و نه جبرانسازی صورت گرفته و نه نیروگاهی در آن قرار دارد. این باس تنها شامل خطوطی میباشد که به آن وارد و یا از آن خارج میشوند. بنابراین هیچگونه توان اکتیو و راکتیوی نه در آن تولید و نه در آن مصرف میشود. بنابراین این باس معلوماتی را شامل نمیشود. بلکه اندازه و زاویه ولتاژ در آن مجهولند. این باس مثل پستهای کلیدزنی می باشد که در شبکهها موجودند.
فصل دوم
محاسبات ریاضی نرم افزار
حل معادلات جبری غیر خطی به روش نیوتن – رافسون :
رایجترین روش حل معادلات جبری غیر خطی همزمان ، روش نیوتن ، رافسون است. روش نیوتن رافسون یک روش تقریب متوالی است که بر اساس تخمین اولیه مقادیر مجهول و استفاده از بسط سری تیلور بنا شده است. ابتدا به ساکن فرض میشود که حل معادله یک بعدی زیر مد نظر باشد.
حال اگر تخمین اولیه از حل مسأله بوده و انحراف کوچکی نسبت به پاسخ صحیح باشد ، داریم :
با بسط سری تیلور سمت چپ معادله بالا در اطراف خواهیم داشت :
با فرض اینکه خیلی کوچک باشد ، میتوان از جملات مرتبههای بالاتر چشم پوشی کرد ، که در این صورت میتوان نوشت :
که در آن :
با افزودن به مقدار تخمین اولیه ، تقریب دوم بدست می آید :
و بدین ترتیب کاربرد متوالی این روش ، الگوریتم نیوتن – رافسون را در اختیار قرار میدهد :
که در آن k ، تعداد تکرارها میباشد ، و همچنین جوابهای معادله به قرار زیر است :
و همچنین معادلات فوق را میتوان بصورت زیر مرتب کرد :
که در آن بصورت زیر تعریف می شود :
رابطه فوق نشان میدهد که معادله غیر خطی با خط مماس بر منحنی در نقطه تقریب زده میشود. بنابراین یک معادله خطی برحسب تغییرات کوچک متغیرها بدست میآید. از تلاقی خط مماس با محوط x مقدار بدست می آید. این نظریه بصورت ترسیمی در شکل زیر نشان داده شده است.
حال اگر معادلات n بعدی زیر را در نظر بگیریم :
بسط سمت چپ معالات بالا بصورت سری تیلور در اطراف تخمینهای اولیه و چشم پوشی از جملات مرتبه بالاتر ، منجر به روابط زیر میشود :
و یا بصورت ماتریسی خواهیم داشت :
این معادله بصورت زیر خلاصه میشود :
بنابراین خواهیم داشت :
و الگوریتم نیوتن – رافسون برای حالت n بعدی بصورت زیر در میآید :
که در آن :
ماتریس ، ماتریس ژاکوبین نامیده میشود. عناصر این ماتریس مشتقات جزئی هستند که در ها ارزیابی میشوند. فرض میشود که در هر تکرار معکوس پذیر باشد. اعمال روش نیوتن رافسون به دستگاه معادلات غیر خطی ، مسأله را به حل دستگاه معادلات خطی کاهش میدهد تا مقادیری که دقت تخمین ها را بهبود میدهند. تعیین شوند.
روشی برای وارون کردن ماتریس ژاکوبین :
روشی که برای وارون نمودن ماتریس ژاکوبین انتخاب شده است ، روشی است که در محاسبات عددی به آن پرداخته میشود. این روش به نام کیلی –ها میلتون موسوم است.
برای وارون نمودن ژاکوبین به روش کیلیهامیلتون ، ابتدا میبایست چند جملهای مشخصه ماتریس بدست آید. برای محاسبه چند جملهای مشخصه یک ماتریس نیز از روش لوری یر استفاده شده است. بنابراین در بدو امر میبایست ، تعیین چند جملهای مشخصه یک ماتریس به روش لورییر تشریح و سپس به وارون نمودن ماتریس پرداخت. روش لوری یر برای تعیین چند جملهآی مشخصه ماتریس ژاکوبین :
این روش از این مطلب استفاده میکند که اگر مقدار ویژه ماتریس A باشد مقدار ویره است. هرگاه فرض کنیم مقدار ویژه A است و قرار دهیم :
در این صورت ها مقادیر ویژه هستند. همچنین قابل محاسبه است زیرا میتوان نشان داد که :
که در آن ها مجموع درایههای قطر اصلی ها میباشد. بعلاوه هرگاه چند جملهای مشخصه A بصورت زیر باشد :
رابطه بین ها و به قرار زیر است :
لذا با استفاده از رابطه بازگشتی فوق و داشتن میتوان ها را حساب کرد و از آن چند جملهای مشخصه ماتریس A تعیین میشود.
تعیین وارون ژاکوبین با استفاده از روش کیلی – هامیلتون :
هر گاه چند جملهای مشخصه ماتریس A بصورت زیر باشد :
بنا قضیه کیلی – هامیلتون داریم :
هرگاه باشد ، با ضرب در طرفین رابطه فوق خواهیم داشت :
و از آنجا خواهیم داشت :
بدین ترتیب ماتریس A وارون خواهد شد. که در آن هرگاه برابر با صفر شود ، ماتریس فوق وارون پذیر نمیباشد.
فصل سوم
معادلات حل پخش بار به روش نیوتن – رافسون
حل پخش بار به روش نیوتن – رافسون
روش نیوتن – رافسون از لحاظ ریاضی ، بخاطر همگرایی درجه دوم آن ، نسبت به روش گوس – سایدل برتری دارد و احتمال واگرایی آن در مسایل بدساختار کمتر است. در سیستمهای قدرت بزرگ ، روش نیوتن – رافسون مؤثرتر و عملیتر میباشد. تعداد تکرارهای لازم برای تعیین پاسخ ، مستقل از اندازه سیستم بوده ، ولی ارزیابیهای تابعی بیشتری در هر تکرار مورد نیاز است. از آنجایی که در مسئله پخش بار ، توان حقیقی و اندازه ولتاژ ، در شینهای با ولتاژ کنترل شده معلوم است ، معادله پخش بار ، بصورت قطبی فرمول بندی میشود. برای یک شین نوعی از سیستم قدرت ، جریان ورودی به شین iبه وسیله رابطه زیر داده میشود :
در رابطه بالا ، j شامل شین iنیر میشود. با بیان این رابطه بصورت قطبی ، داریم :
توان مختلط در شین iبرابر است با :
یا
با جایگزینی از رابطه (۱) در رابطه (۳) خواهیم دانست :
با جداسازی قسمتهای حقیقی و موهومی این معادله میتوان نوشت :
روابط (۵) و (۶) را بصورت زیر مرتب میکنیم :
معادلات (۷) و (۸) شامل مجموعهای از معادلات جبری غیر خطی برحسب متغیرهای مستقل هستند ، که اندازه ولتاژها برحسب pu و زاویههای فاز برحسب رادیان میباشد. برای هر شین دو معادله وجود دارد. که با روابط (۷) و (۸) نشان داده شده است. برای هر شین با ولتاژ کنترل شده نیز یک معادله وجود دارد که با رابطه (۷) مشخص میشود. با بسط معادلات (۷) و (۸) بصورت سری تیلور در نزدیکی تخمین اولیه و با چشم پوشی از جملات با درجات بالاتر ، مجموعه معادلات خطی زیر بدست میآید :
در معادلات بالا ، شین ۱ بعنوان شین مرجع در نظر گرفته شده است. ماتریس ژاکوبین رابطه خطی شده تغییرات کوچک زاویه ولتاژ و اندازه ولتاژ را برحسب تغییرات کوچک توانهای اکتیو و راکتیو میدهد. عناصر ماتریس ژاکوبین مشتقات جزئی معادلات (۷) و (۸) هستند که به ازای ارزیابی میشوند رابطه اخیر را میتوان به صورت خلاصه شده زیر نوشت :
در شینهای بار (PQ) و انتقال (transbus) ، اندازه ولتاژها مجهول میباشد. بنابراین اگر به تعدادm ، دارای شینهای بار و انتقال باشیم ، در اینصورت. n معادله شامل خواهد بود. ها برای تمامی شینها بجز شین مرجع مجهول است و اگر n شین در شبکه موجود باشد بنابراین (n-1) معادله شامل است بدین ترتیب تعداد قیود توان اکتیور (n-1) و تعداد قیود توان راکتیو (n-1-m) بوده و ماتریس ژاکوبین دارای ابعاد (n-1+m) (n-1+m) خواهد بود. ماتریس دارای ابعاد دارای دارای و (m) (m) میباشد.
عناصر قطری و غیر قطری عبارتند از :
عناصر قطری و غیر قطری عبارتند از :
عناصر قطری و غیر قطری عبارتند از :
و عناصر قطری و غیر قطری نیز عبارتند از :
جملات اختلاف بین مقادیر برنامه ریزی شده و محاسبه شده هستند که به توان باقیمانده موسوم بوده و با روابط زیر نشان داده میشوند :
تخمین های جدید ولتاژها عبارتند از :
بنابراین مراحل حل پخش بار با استفاده از الگوریتم نیوتن – رافسون مطابق زیر است :
۱) برای شینهای بار که معلوم هستند ، اندازه ولتاژها و زاویههای فاز آنها مساوی مقادیر شین مرجع یا ۱ و ۰ در نظر گرفته میشوند. یعنی و در شین نیروگاهی معلوم هستند ، زاویههای فاز انها را مساوی زاویه شین مرجع یا ۰ در نظر میگیریم.
۲) برای شینهای بار به ترتیب از معادلات (۷) و (۸) محاسبه شده و به ترتیب از روابط (۱۸) و (۱۹) بدست میآیند.
۳) برای شینهای با ولتاژ کنترل شده ، معلوم و در نظر میگیریم و و به ترتیب از معادلات (۷) و (۱۸) بدست میآیند.
۴) عناصر ماتریس ژاکوبین از معادلات (۱۰) تا (۱۷) محاسبه میشوند.
۵) ماتریس ژاکوبین وارون و سپس تقریبهای جدید بدست می آیند.
۶) اندازهها و زاوایای فاز جدید ولتاژ با استفاده از معادلات (۲۰) و (۲۱) محاسبه میشوند.
۷) این فرآیند آنقدر ادامه مییابد تا پس ماندهای کوچکتر از دقت تعیین شده گردند.
فصل چهارم
تعیین الگوریتم کلی برنامه
الگوریتم کلی برنامه :
برای حل یک مسئله در هر بنامه نویسی ابتدا به ساکن نیاز به ایجاد یک الگوریتم خاص برای تعیین روش انجام مراحل برنامه میباشد. بر همین مبنا میبایست مسئله را به اجزاء کوچکتر تقسیم نمود و سپس این اجزاء کوچکتر را حل نمود. قسمتهای کوچکتر ممکن است خود شامل مراحل مختلف باشد که برای سادهتر شدن بهتر است این قسمتها کوچکتر شده نیز به چند قسمت دیگر تفکیک شود. هر جزء در کنار جزء دیگر میتواند بخشی از راه حل را در اختیار قرار دهد و بخشهای مختلف در ساختار کلی الگوریتم پاسخی برای حل مسئله میباشد.
الگوریتم کلی در اینجا حل معادلات جبری غیر خطی به روش نیوتن – رافسون میباشد که در روشهای محاسبات عددی به آن پرداخته میشود. و جواب نهایی در تکرارهای متوالی حاصل میشود. همانطور که در قبل عنوان شد. اولین گام ایجاد ماتریس ژاکوبین میباشد. که این ماتریس دارای درایدهایی با مشتقات جزئی است در مرحله بعد ماتریس ژاکوبین میبایست وارون شود. و وارون ماتریس ژاکوبین در ماتریس حاصل از ضرب شود تا جوابی برای تکرارها در محل مختلف برای مجهولات حاصل شود. بعد از محاسله ها شرط مسئله تست شده ، اگر از مقدار تعیین شده کوچکتر باشد روند تکرار متوقف میشود در غیر اینصورت تمام مراحل از اول تکرار میشود. اگر شرط برقرار بود میزان اختلاف جواب مسئله با مقادیر اولیه جمع میشود و جواب نهایی برای بدست میآید بنابراین ابتدا به ساکن برنامه باید بتوان اطلاعات مورد نیاز خود را از ورودی دریافت دارد و سپس ماتریس ژاکوبین را تشکیل کند. در مرحله بعد ماتریس ژاکوبین وارون میشود. مرحله بعدی را از ضرب وارون ژاکوبین در ماتریس بدست میآید که جوابی برای میباشد. در نهایت شرط تست شده اگر این شرط ارضاء شده باشد تکرار را متوقف در غیر اینصورت فرآیند تکرار از سرگرفته میشود. زمانی که شرط برقرار شد نوبت به مرحله آخر که همان محاسبه توانهای اکتیو و راکتیو محاسباتی و تولیدی در شینها میباشد میرسد و در آخر کلیه جوابهای بدست آمده را باید در خروجی برنامه نمایش داد. بنابراین این الگوریتم کلی را در زیر خواهیم دید. که البته هر یک از این بخشها شامل اجزاء کوچکتر میباشد که به آنها اشاره میشود الگوریتم کلی برنامه در شکل زیر دیده میشود.
الگوریتم دریافت اطلاعات در ورودی :
برنامه برای اینکه بتواند محاسبات را آغاز نماید نیاز به داشتن یک سری اطلاعات اولیه دارد. این اطلاعات شامل مقادیر اندازه ادمیتانس باس (Ybus) زاویه ادمیتانس باس و اطلاعات مربوط به شینهای شبکه مورد مطالعه میباشد. ادمیتانس باس (Ybus) اطلاعات مربوط به خطوط انتقال نیروی شبکه مورد مطالعه را در اختیار نرم افزار قرار میدهد. بنابراین اگر بخواهیم بخش مربوط به دریافت اطلاعات در ورودی را به قسمتهای کوچکتر تفکیک نماییم. باید گفت اولین چیزی که باید در اختیار نرم افزار قرار گیرد تعداد باس بارها بوده تا نرم افزار بداند به چه اندازهای باید ماترس Ybus و دیگر ماتریسهای مورد استفاده در آن را تشکیل دهد. بعد از تعداد باس شرط مسئله را نیز میتوان در یک متغیر قرار داد تا در انتهای برنامه تست شود. قسمت بعدی مربوط به دریافت اندازه درایدهای Ybus شبکه میباشد. در مرحله بعد زاویه مقادیر Ybus وارد خواهد شد و سپس نوبت به دریافت اطلاعات شینهای شبکه میرسد ت اطلاعات مورد نیاز نرم افزار کامل شود. در زیر فلوچارت الگوریتم دریافت اطلاعات مشاهده میشود.
فلوچارت مربوط به دریافت اطلاعات
الگوریتم محاسبه ماتریس ژاکوبین :
درایههای ماترس ژاکوبین هر کدام مشتقات جزئی میباشد. این مشتقات جزئی شامل و همچنین شامل میباشد. بنابراین ماتریس ژاکوبین به چهار قسمت تقسیم میشود. که هر یک مطابق الگوریتم خاص خود باید محاسبه شود. از آنجا که ها برای تمامی شینها به جزء شین اسلک مجهول است میبایست برای تمامی شینها به جزء اسلک محاسبه شود. ولی فقط برای شینهایی محاسبه میشود که دارای ولتاژهای مجهول میباشند. که این شینهها ، شینهای trans bus , load bus میباشند. بنابراین قسمتهای مربوط به محاسبه ماتریس ژاکوبین در شکل زیر نمایش داده شده است.
الگوریتم مربوط به محاسبه وارون ژاکوبین :
این قسمت از برنامه که یکی از مشکلترین مراحل برنامه برنامهنویسی این نرم افزار میباشد و از روشی پی روی میکند که در محاسبات عددی به روش کیلی – هامیلتون شهرت دارد. در مراحل اولیه انجام پروژه از روش دیگری استفاده شده بود که پاسخگوی حجم زیاد محاسبات و تکرارهای مکرر نبود. بنابراین ناگزیر به متوسل شدن به روشی قدرتمندتر احساس شد و پس از جستجو در کتب مختلف محاسبات عددی این روش را بعنوان وارون کننده ماتریس ژاکوبین انتخاب شد. مراحل ریاضی این روش در قسمتهای قبلی عنوان شده است.
قسمتهای مختلف وارون کردن ماتریس ژاکوبین شامل محاسله ها و سپس ها و توانهای مختلف ماتریس ژاکوبین تا عددی برابر با یک واحد کوچکتر از ابعاد خود ماتریس و همچنین ضرب نمودن ها در توانهایی از ماتریس ژاکوبین و در نهایت جمع همگی این جملات و تقسیم جواب بدست آمده بر الگوریتم کلی این بخش از برنامه در شکل زیر مشاهده میشود.
البته در فرآیند مراحل نرم افزار عمل وارون کردن ماتریس ژاکوبین به عهده یک تابع قرار گرفته است که این تابع رابه نامه Inverse-matrix نام گذاری کردهام. بنابراین هرگاه کنترل برنامه به این تابع رسید ، کدهای نوشته شده در آنرا اجرا خواهد کرد تا ژاکوبین را وارون نماید.
الگوریتم مربوط به محاسبه :
این قسمت از برنامه خود از دو بخش مجزا تشکیل شده است که یکی برای محاسبه های تمامی شینها به جزء شین اسلک و دیگری محاسبه ها برای شینهایی که دارای ولتاژ مجهول میباشند. برای این بخش دو تابع اختصاص یافته است. تابع اول بنام ، که محاسبات مربوط به ها را بعهده دارد و تابع دوم بنام ، که محاسبات مربوط به را انجام میدهد.
فرمولهای ریاضی آنها بصورت زیر است :
باید توجه داشت که را فقط برای شینهایی بدست میآوریم که این شینها ولتاژهای مجهول دارند. بنابراین نرم افزار باید قابلیت تشخیص در خصوص یافتن شینهایی که ولتاژ مجهول هستند را داشته باشد. لازم به ذکر است که این شینها ، شینهای trans bus , load bus میباشند. فلوچارت مربوط به الگوریتم این بخش از برنامه در شکل زیر دیده میشود.
فلوچارت مربوط به محاسبه
الگوریتم مربوط به محاسبه ماتریس :
این قسمت از برنامه توسط تابعهای بنام full-del-P-Q انجام میپذیرد. این تابع آرایهای بنام del-P-Q را پر میکند که بخشی از درایههای آنرا ها بخشی دیگر از درایهها را ها تشکیل میدهند. فرمول مورد استفاده برای محاسبه ها و ها بصورت زیر است :
باید توجه داشت که ها فقط برای شینهایی محاسبه میشوند که ولتاژ این شینها جزء مجهولات مسئله است. فلوچارت الگوریتم این قسمت در شکل زیر نمایان است.
الگوریتم مربوط به ضرب وارون ژاکوبین در ماتریس : ( محاسبه )
هرگاه ماتریس وارون ژاکوبین را در ماتریس ضرب نماییم جوابهایی برای ها و بدست خواهیم آورد. در فرآیند برنامه نویسی ، این بخش توسط تابعهای تحت عنوان full-del-delta-V انجام میپذیرد که فلوچارت الگوریتم آن همان فلوچارت نشان داده شده در الگوریتم اصلی برنامه میباشد.
الگوریتم مربوط به محاسبه :
انجام این مرحله بسیار ساده بوده و فقط کافیست جدید را با مقدار زاویههای محاسبه شده از تکرار قبلی جمع نمود تا مقدار بدست آید. و برای نیز میبایست جدید با های بدستآمده از تکرار قبلی جمع شود تا در نهایت مقدار بدستآید. فرمولهای مربوط به قرار زیرند :
فلوچارت الگوریتم همان فلوچارت مربوط به الگوریتم اصلی برنامه است. که در زیر دیده میشود.
فلوچارت مربوط به محاسبه
الگوریتم تست شرط :
این مرحله نیز ساده بوده و فقط با تست یک شرط انجام میپذیرد. اگر شرط ارضاء نشد تکرار ادامه مییابد ولی اگر شرط ارضاء شده باشد تکرارها خاتمه یافته و به اصطلاح سیستم converge میکند.
الگوریتم مربوط به چاپ جوابهای مسئله در خروجی :
بعد از converge نمودن سیستم دیگر مجهولات سیستم که شامل ها و می باشد محاسبه شد و در نهایت تمامی مقادیر محاسبه شده توسط الگوی خروجی در صفحه نمایش مانیتور چاپ میشود. نمایش فلوچارت آن در شکل زیر نشان داده شده است.
فلوچارت مربوط به چاپ خروجی
فصل پنجم
مروری بر دستورات برنامه نویسی C++
دستورات C++ بکار رفته در نرم افزار :
انواع داده
هدف از برنامه نویسی ، ورود دادهها به کامپیوتر ، پردازش دادهها و استخراج نتایج است. لذا دادهها نقش مهمی را در برنامه نویسی ایفا میکنند. یکی از جنبههای زبانهای برنامه سازی که باید دقیقاً مورد بررسی قرار گیرد. انواع دادههایی است که آن زبان با آنها سروکار دارد. در زبان C++ پنج نوع داده وجود دارد که عبارتند از : double , float , int , char نوع char برای ذخیره دادهه ای کاراکتری مثل x , b , a بکار میرود. نوع int برای ذخیره اعداد صحیح مثل ، ۱۲۵۰ , ۱۲۵ , ۱۰ بکار میرود. نوع float برای ذخیره اعداد اعشاری مثل ۱۲۵۰.۱۲ , ۱۶.۲۵ , ۱۲.۵ بکار میرود. و نوع double برای ذخیره اعداد اعشاری که بزرگتر از نوع float باشند مورد استفاده قرار میگیرد. هر یک از انواع دادههای char double , float , int , مقایدری را میپذیرند که ممکن است از پردازندهای (CPU) به پردازنده دیگر متفاوت باشد. بعنوان مثال طول نوع int در محیطهای ۱۶ بینی مثل Dos یا ویندوز ۳.۱ دو بایت و در محیطهای ۳۲ بیتی مثل ویندوز NT ، چهار بایت است. بنابراین اگر برنامه قرار است در محیطهای مختلفی استفاده شود بهتر است از کوچکترین مقدار انواع استفاده شود.
متغیرها
متغیر نامی برای کلمات حافظه است که دادهها در آن قرار میگیرند و ممکن است مقدار آن در طول اجرای برنامه تغییر کند. برای مراجعه به متغیرها از نام آنها استفاده میشود. لذا متغیرها امکان نامگذاری برای کلمات حافظه ( بایتها ) را فراهم میکنند. برای نامگذاری متغیرها میتوان از ترکیبی از حروف a تا z یا A تا Z ، ارقام و خط ربط (-) استفاده کرد ، به شرط آنکه اولین کاراکتر آنها رقم نباشد. نام متغیر میتواند با هر طولی باشد ولی فقط ۳۱ کارکتر اول آن مورد استفاده قرار میگیرد.
تعریف متغیر
همانطور که عنوان شد ، متغیرها محل ذخیره دادهها هستند و چون دادهها دارای نوعاند ، متغیرها نیز باید دارای نوع باشند. بعبارت دیگر متغیرهای فاقد نوع در C++ شناخته نیستند. قبل از بکار گرفتن متغیرها باید نوع آنها را مشخص نمود. نوع متغیر مقداری را که متغیر میتواند بپذیرد و اعمالی را که میتوانند بر روی آن مقادیر انجام شوند ، مشخص میکند. تعیین نوع متغیر را تعریف متغیر گویند. برای تعیین نوع متغیر ، بصورت زیر عمل میشود :
: نام متغیر نوع داده
مقدار دادن به متغیرها :
برای مقدار دادن به متغیرها به سه روش میتوان عمل کرد :
۱) هنگام تعریف ( تعیین نوع ) متغیر
int x,y = 5; : مثال
Char ch = a ;
۲) پس از تعریف نوع متغیر و با دستور انتخاب (=)
int x ; : مثال
Float y ;
X = 5;
Y=2.5;
۳) در دستورات ورودی.
int x,y; : مثال
Scant ("%d %d" ,&x , &y);
عملگرها
عملگرها نمادهایی هستند که اعمال خاصی را انجام میدهند. بعنوان مثال + عملگری است که دو مقدار را با هم جمع میکند. پس تعریف متغیرها و مقدار دادن به آنها باید بتوان عملیاتی را روی آنها انجام داد. برای انجام این عملیات باید از عملگرها استفاده کرد. عملگرها در زبان C++ به چند دسته تقسیم میشوند : ۱- عملگرهای محاسباتی 2- عملگرهای رابطهای ۳- عملگرهای منطقی ۴- عملگرهای بیتی. عملگرها بر روی یک یا دو مقدار عمل میکنند. مقادیری که عملگرها بر روی آنها عمل میکنند ، عملوند نام دارند بعنوان مثال ، در a+5 متغیر a و عدد ۵ را عملوندهای عملگر + گویند.
عملگرهای محاسباتی
عملگرهای محاسباتی ، عملگرهایی هستند که اعمال محاسباتی را روی عملوندها انجام میدهند. هر یک از عملگرهای – ، + ، × ، / تقریباً در همه زبانها وجود دارد. عملگر ? برای محاسبه باقیمانده بکار میرود. این عملگر ، عملوند اول را بر عملوند دوم تقسیم میکند و باقیمانده را بر میگرداند. عملگر کاهش (–) یک واحد از عملوندش کم میکند و نتیجه را در آن عملوند قرار میدهد و عملگر افزایش (++) یک واحد به عملوندش اضافه کرده و نتیجه را در آن عملوند قرار میدهد. جدول زیر عملگرهای محاسباتی و خاصیت آنها را نمایش میدهد.
عملگر نام مثال
– تفریق یکانی x-y یا x-
+ جمع X+y
* ضرب X×y
/ تقسیم x/y
? باقیمانده تقسیم X%y
— کاهش x—یا –x
++ افزایش X++یا++x
عملگرهای رابطهای
عملگرهای رابطهای ، ارتباط بین عملوندها را مشخص میکنند. اعمالی مثل تساوی دو مقدار ، کوچکتری یا بزرگتر بودن ، مقایسه با صفر ، و غیره ، توسط عملگرهای رابطهای مشخص میشود.
عملگرهای رابطهای درجدول زیر آمدهاند. عملگر == در دستورات شرطی برای مقایسه و مقدار مورد استفاده قرار میگیرد. بعنوان مثال ، دستور مقایسه دو مقدار y,x باید بصورت آیا
x(x= =y) مساوی y است نوشته شود.
عملگر نام مثال
> بزرگتر x>y
>= بزرگتر یا مساوی x>=y
< کوچکتر X<y
<= کوچکتر یا مساوی X<=y
= = متساوی x= =y
= ! نامساوی X!=y
- لینک دانلود فایل بلافاصله بعد از پرداخت وجه به نمایش در خواهد آمد.
- همچنین لینک دانلود به ایمیل شما ارسال خواهد شد به همین دلیل ایمیل خود را به دقت وارد نمایید.
- ممکن است ایمیل ارسالی به پوشه اسپم یا Bulk ایمیل شما ارسال شده باشد.
- در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.