مقدمه ای بر حلقه نویسی در متلب

حلقه نویسی از استانداردهای اساسی در هر برنامه ای می باشد. برنامه شبیه ساز متلب نیز مستثنی از این قاعده نمی باشد. بطور کلی در کدنویسی در متلب امکانات حلقه نویسی به وفور جای داده شده است. از این گذشته در بخش سیمولینک متلب نیز این مسئله به نوعی انجام می شود. فلسفه حلقه نویسی به لزوم تکرار در رسیدن به پاسخ هایی می باشد که از الگوریتم های عددی پیروی می کنند. در این بین بایستی گفت تمامی روش های حل انجام شده در متلب در بخش سیمولینک به صورت عددی انجام می شوند. این روش ها که بخشی از آن ها در تنظیمات متلب توضیح داده شد شامل روش های ode در حوزه پیوسته و گسسته می باشند. اما این مسئله در کدنویسی و یا اصطلاحا mfile نویسی متفاوت می باشد. در کدنویسی کاربر ملزم به حلقه نویسی در متلب به منظور پیاده سازی ایده های خود می باشد. اگر چه برخی توابع متلب نظیر دستور ode45 کار را راحت تر کرده و می توان حل معادلات دینامیکی را از این طریق بدست آورد. اما این کاربرد را نمی توان برای تمامی مسائل به کار برد.

حلقه نویسی در متلب min 300x209 حلقه نویسی در متلب   loop

حلقه نویسی در متلب

اهمیت حلقه نویسی در متلب – مهندسی برق

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

  • حل شبکه های قدرت در ابعاد بزرگ : شبکه های توزیع و انتقال به عنوان سیستم های قدرت با ابعاد بزرگ را نمی توان در محیط سیمولینک آورد. حتی رعایت این مسئله در ریزشبکه ها که ابعاد کوچکتری دارند نیز الزامیست. در این شرایط نیاز به مدل سازی شبکه و اجرای حل های عددی مناسب در حوزه mfile نویسی می باشد. روش های حل مختلف شبکه های قدرت توزیع و انتقال نظیر روش گاوسین ، روش نیوتون و یا DC از این نوع می باشند.
  • ارائه روش های هوشمند در حل مسائل : روش های هوشمند به الگوریتم هایی گفته می شود که به صورت عددی به حل مسائل می پردازند. از انواع متداول این الگوریتم ها می توان به الگوریتم ژنتیک ، الگوریتم ذرات تکاملی ، رقابت های استعماری و … اشاره کرد. همانگونه که بیان شد، این الگوریتم ها به صورت عددی به حل مسائل می پردازند. به خاطر داشته باشیم که حل عددی کار نیازمند رسیدن به همگرایی در پاسخ می باشد. این همگرایی از طریق تکرار که لازمه آن حلقه نویسی در متلب می باشد، بدست می آید. البته فرآیند بهینه سازی پاسخ در این الگوریتم ها متفاوت است. ولی نقطه اشتراک آن ها را می توان وجود حلقه (و یا حلقه های تو در تو) به منظور حل مسائل دانست.
  • الگوریتم های تطبیقی : برخی الگوریتم های تطبیقی در مهندسی کنترل نیازمند حلقه نویسی در متلب می باشند. الگوریتم هایی نظیر رگولاتورهای خود تنظیم جایاب قطب مستقیم و غیرمستقیم از این نوع می باشند. در این الگوریتم ها هدف حل یک مسئله بهینه سازی می باشد که به منظور آن حلقه بیان می شود.
  • بدست آوردن پارامترهای شبکه های عصبی ، فازی و یا AnFis : به منظور پایه ریزی هر کدام از این ساختارهای هوشمند نیاز به حل یک مسئله بهینه سازی می باشد که به این منظور از حلقه نویسی بهره گرفته می شود.

علاوه بر موارد ذکر شده به طور کلی یک مهندس برق نیازمند درک حلقه نویسی به منظور ذخیره داده ها و استفاده از بردارهای بدست آمده می باشد. مشخصا یک حلقه نویسی ساده می تواند کار برنامه نویسی شما را زیباتر و بهینه تر نماید.

امکانات حلقه نویسی در متلب

خوشبختانه نرم افزار متلب دارای امکانات بسیار مناسبی برای حلقه نویسی می باشد. وجود توابع متعدد تعریف شده در متلب با ویژگی هایی که هر کدام دارند، تقریبا تمامی موارد ممکن برای انجام حلقه نویسی را در اختیار قرار می دهد. از جمله توابع حلقه نویسی در متلب می توان به موارد زیر اشاره کرد:

  • دستور for : این دستور حلقه نویسی هنگامی به کار گرفته می شود که تعداد تکرارها مشخص باشد. مفهوم این مسئله در این است که ما از قبل می دانیم چند بار بایستی حلقه تکرار شود. این فرم دستوری بیشتر برای بردارنویسی و یا مسائل بهینه سازی با تکرار مشخص کاربرد دارد. قالب نوشتاری این دستور در متلب به صورت شکل زیر می باشد :
    ساختار for در حلقه نویسی min 300x109 حلقه نویسی در متلب   loop

    قالب کلی استفاده از for به منظور حلقه نویسی در متلب
  • دستور while : این دستور حلقه نویسی هنگامی به کار گرفته می شود که تایید خروج از حلقه به وسیله شرط (و یا شروطی) انجام پذیرد. مفهوم این مسئله در این است که در این حالت شرط هایی برای خاتمه مسئله داشته باشیم. این شرط ها می توانند نشانه ای بر همگرایی مسئله باشند ، حال آنکه این شرط ها می توانند نشانه عدم نتیجه گیری از الگوریتم (در حالت های راکد) و یا حتی واگرایی باشند. قالب نوشتاری این دستور در متلب به صورت شکل زیر می باشد :
    ساختار while در حلقه نویسی min 300x111 حلقه نویسی در متلب   loop

    قالب کلی استفاده از while به منظور حلقه نویسی در متلب

سایر دستوراتی که در حلقه نویسی در متلب به کار برده می شوند با شرح مختصری از کاربردشان در زیر بیان شده اند :

  1. if : یک دستور شرطیست. به این معنی که با ارائه یک شرط مناسب می تواند در حلقه کارهای مشخصی را انجام داد. این فرآیندها می تواند نظیر خروج از حلقه ، تغییر مقادیر، چاپ مقدار ، ایجاد خطای کاربر و سایر موارد باشد. گذشته از این از دستور if می توان به منظور افزودن شرط خروج از حلقه در حلقه های با ساختار for استفاده کرد. درباره دستورات شرطی بعدتر مطلب خواهیم گذاشت.
  2. break : یکی دیگر از دستورات پرکاربرد در حلقه نویسی و از کلمات کلیدی در متلب می باشد. همانطور که بیان شد از دستور if می توان برای خروج از حلقه استفاده کرد. اما چگونه ؟ به وسیله دستور break این مسئله قابل انجام است. کافی است در داخل شرط if این دستور را قرار دهیم .
  3. switch/case/otherwise : از دستورات مورد استفاده در حلقه نویسی می باشد. از این مورد می توان به منظور تغییر بین گزاره های مختلف با توجه به شرط استفاده کرد. این مورد همانند یک تابع چند ضابطه ای عمل می کند. البته بجای این دستور می توان از دستور شرطی if/elseif/else نیز استفاده کرد.
  4. continue : از کلمات کلیدی در متلب می باشد. کاربرد این دستور تنها در داخل حلقه می باشد. از این دستور به منظور رد حلقه جاری استفاده می شود. به این معنی که ممکن است شرط قرار داده شده در حلقه به مفهوم عدم تایید پاسخ باشد و نیاز به رد حلقه جاری در برنامه باشد. در اینجا می توان از دستور continue استفاده کرد.
  5. return : از این دستور برای بازگشت به تابع فراخوانی کننده استفاده می شود. در برخی شرایط برنامه نویس وجود برخی خطاهای کاربری را پیش بینی می کند که از این جمله می توان به تهی بودن ماتریس ورودی و یا صفر بودن دترمینان و یا نبود پاسخ مناسب اشاره کرد. در این شرایط نیاز است تا پس از بررسی این عوامل با دستورات شرطی نسبت به آگاهی کاربر از این وضعیت اقدام شود. به همین منظور دستور return با برگرداندن یک عدد مشخص (از پیش تعریف شده در برنامه) این حالت را نشان می دهد.
  6. error : این دستور به دنبال وضعیت return و یا بطور مستقل می تواند استفاده شود. در این حالت می توان یک خطا را در خروجی به کاربر نمایش داده و در آن با توضیحاتی دلیل خطا را نشان داد.

منبع : برق تِک

About برق تِک

Leave a Reply

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