معرفی کدنویسی در متلب

اگرچه محیط سیمولینک، یک رابط کاربرپسند برای شبیه سازی در متلب می باشد، ولی برای انجام برنامه نویسی حرفه ای در نرم افزار متلب نیاز به کدنویسی دارید. کدنویسی روان(بهینه) به شما اجازه مانور بیشتر خواهد داد. با بکارگیری کدنویسی در متلب می توانید حجم بلوک دیاگرام هایی که نیاز به تنظیم در محیط سیمولینک دارند را کاهش دهید و سرعت و خوانایی کار خود را افزایش دهید.

نوار ابزار توابع

به منظور کدنویسی در متلب می توان از Script و یا function که همان mfile نویسی می باشد بهره برد. همانند سیمولینک از منوی اصلی نرم افزار متلب و از بخش New می توان به تب های Script و یا function دسترسی پیدا کرد. به طور معمول هر فرآیند کدنویسی در متلب نیازمند یک Script می باشد که به عنوان تابع اصلی یا مادر شناخته می شود. این تابع اصلی چیزی برنمی گرداند و شامل اطلاعات و داده های اولیه و نهایتا و در پایان کار شامل رسم داده های نهایی(یا نمایش آن ها) می باشد.

مدل نهایی سیمولینک min 1 300x251 کدنویسی در متلب  mfile نویسی

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

تفاوت Script و function در متلب

همانطور که بیان شد، Script تابعی می باشد که چیزی برنمی گرداند، در حالی که function دارای آرگومان های ورودی و خروجی می باشد. به طور معمول و در یک برنامه نویسی حرفه ای function ها داخل script-اسکریپت فراخوانی می شود. اسکریپت با دریافت خروجی های مورد نیاز خود از تابع عملیات دیگری را با کدنویسی محلی و یا فرخوانی توابع دیگر انجام می دهد.

توابع از پیش آماده متلب

همانند تمامی نرم افزارهای پیشرفته همچون C در متلب نیز توابع از پیش آماده داریم. این توابع بصورت سیستماتیک در متلب گردآوری شده اند. به این معنی که برنامه نویسان متلب توابع خود را در قالب جعبه ابزار در اختیار کاربر قرار می دهند. این جعبه ابزارها که بعدها به طور مفصل تر (مخصوصا شاخه برق) بحث خواهد شد، برای اهداف خاصی همچون بهینه سازی، کنترل مقاوم، شبکه های عصبی، عملیات ماتریسی، آنالیز سیستم های خطی و … طرح شده اند. توابع از پیش آماده متلب به سادگی در متن برنامه های کاربر مورد استفاده قرار می گیرند و می توانند عملیات پیچیده ای نظیر ریشه یابی تا رسم مکان هندسی و عملیات LMI در بحث مقاوم را برای شما انجام دهند.

نوشتن یک script ساده

در شکل زیر شمای نوار بالای یک اسکریپت نمایش داده شده است(مربوط به متلب 2015). انچه به کار یک برنامه نویس متلب می آید گزینه های گرافیکی متناسب با ذخیره برنامه و اجرای آن با استفاده از تب های مورد نظر می باشد. بقیه موارد در این منو شامل کامنت گذاری، یافتن عبارات خاص در متن برنامه و … می باشد.

شمای یک اسکریپت min 300x259 کدنویسی در متلب  mfile نویسی

شمای یک script ساده

در نوشتن یک اسکریپت ساده موارد زیر را رعایت می کنیم:

  • در ابتدای برنامه صفحه متلب را پاک کنید تا داده های نهایی برنامه با داده های خروجی های قبلی مخلوط نشود.(دستور clc)
  • ورک اسپیس (workspace) متلب خود را از متغیرهای قدیمی پاک کنید تا هم دچار خطای حافظه نگردید و هم خطایابی داده های کافی برای برنامه مشخص شود.(دستور clear)
  • تمامی گراف های قبلی را ببندید. با این کار گراف های جدید با قبلی در هم نشده و سرعت اعلام خروجی ها نیز افزایش می یابد.(دستور close all)
  • بخش های مختلف از برنامه خود را با نوتیشن (%%) از هم تفکیک کنید. این کار به خوانایی برنامه کمک می کند و همچنین به شما کمک می کند تا در صورت نیاز به تغییرات دچار ابهام در فهم برنامه نگردید. (کدهای نوشته شده بعد از این نوتیشن و در کل نوتیش % توسط کامپایلر به همانصورت برگردانده می شود.)
  • برای مشخص کردن داده های مختلف در برنامه و یا وظیفه توابع نوشته شده می توانید از نوتیشن (%) در مقابل نام تابع استفاده کنید.
  • دقت کنید که داده های تولید شده در توابع به شرط تعیین خروجی در اسکریپت مورد نظر قابل استفاده می باشند. در واقع داده های محلی توابع در دسترس اسکریپت نخواهند بود.
  • در نامگذاری توابع اسکریپت(و در کل تمامی توابع) دقت کنید تا از نام های مشابه و همسان توابع از پیش آماده متلب استفاده نکنید.
  • حتی الامکان سعی کنید تا دستورهای رسم و چاپ نتایج را در اسکریپت ها بیاورید.
  • برای اجرای مستقیم تابع(بدون استفاده از تابع روت یا اسکریپت) نیاز به نوشتن نام آن و تمام آرگومان های ورودی در command window متلب دارید.

 

نوشتن یک تابع ساده (function)

به طور کلی نوشتن تابع قدری پیچیده تر از کدنویسی یک اسکریپت می باشد. در تابع نویسی باید حرفه ای تر عمل کرد. نوار منوی گرافیکی بالای توابع همانند اسکریپت می باشد. از طرفی متلب کار برنامه نویس را در تابع نویسی با در اختیار قرار دادن یک تمپلیت اولیه ساده تر کرده است. با کلیک بر روی New>>>Function محیط کدنویسی متلب به صورت زیر برای شما ارائه می گردد.

شمای یک تابع min 300x85 کدنویسی در متلب  mfile نویسی

شمای محیط کدنویسی در تابع

در نوشتن یک تابع موارد زیر را رعایت می کنیم:

  • به طور معمول نیازی به استفاده از دستورات شامل(clc,clear,close) و دستورات رسم در محیط تابع نویسی نداریم.
  • داده های محلی هر تابع در داخل آن تابع تولید و بکار برده می شوند و با خروج از تابع از بین می روند.
  • رعایت نام ذخیره شده تابع و نام خود تابع به صورت همسان ضروری است.(متلب همواره طرز صحیح ذخیره را با در نظر گرفتن اسم تابع(نامی که شما به آن داده اید) به شما پیشنهاد می دهد، مگر خودتان آن را تغییر دهید! که کاری اشتباه و غیرضروری است.)
  • نیازی به همسان بودن(از نقطه نظر نام) متغیرهای ورودی و خروجی نیست. در تابع روت(تابع اصلی که می تواند اسکریپت یا یک تابع دیگر باشد) متغیرهای ورودی می توانند یک نام داشته باشند و در تعریف تابع نام دیگری به خود گیرند. البته ترتیب دریافت آرگومان های تابع به همان شکل خواهد بود.
  • همواره نیاز است تا تعداد آرگومان های ورودی تابع در روت و تعریف تابع یکسان باشند. این مورد درباره جنس داده ها نیز ضروری است.(بعدها بیشتر توضیح داده خواهد شد)

برای اجرای برنامه ضمیمه با بازکردن اسکریپت main.m آن را اجرا کنید. این اسکریپت تابع Sin_wave.m را نیز اجرا می کند. خروجی برنامه به شکل زیر خواهد بود.

خروجی تابع min 300x235 کدنویسی در متلب  mfile نویسی

خروجی برنامه

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

منبع : برق تِک

About برق تِک

Leave a Reply

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