به نام خداوند جان و خرد

سعی کرده ام هر چی که از نرم افزار matlab و simulink و word و Mendeley و Endnote بلدم بنویسم . در ضمن برای ارتباط با دانشجویان دانشگاه صنعتی سهند نیز از همین جا استفاده میکنم

ساخت تابع (function) در متلب matlab با استفاده از m-file :
ساعت ۱۱:٥۱ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

ساخت تابع (function) در متلب matlab با استفاده از m-file :

در متلب با استفاده از دستور inline نیز می توان تابع ساخت ، اما ساخت تابع با استفاده از m-file انتخابی حرفه ای تر می باشد . معمولا برنامه نویسان حرفه ای چارچوب برنامه را در یک فایل اصلی می نویسند و بخش های مختلف برنامه را به صورت تابع هایی می نویسند که یک یا چند ورودی را دریافت کرده و محاسبات لازم را انجام می دهند و سپس یک یا چند خروجی را بر می گردانند . برنامه نویس عملکرد هر تابع را جداگانه چک می کند و سپس زمانی که از بابت آنها خیالش راحت شد تمرکز اصلی خود را بر روی فایل اصلی که حاوی چارچوب برنامه می باشد ، می گذارد و تنها در فایل اصلی ، ارجاعاتی به توابع ساخته شده خواهد داد .

چنانچه شما هم از این شیوه استفاده کنید ، پس از مدتی صاحب بانکی از توابع خواهید شد که در نوشتن برنامه های جدید ، بسیار به شما کمک می کند .

با مثالی ساده ، نحوه ساخت یک تابع با استفاده از m-file را شرح می دهیم :

مثال :

می خواهیم تابعی به نام add بسازیم که در ورودی دو عدد را دریافت کرده و سپس مجموع آن دو عدد را در خروجی برگرداند . ابتدا یک m-file خالی باز می کنیم و کد زیر را در آن می نویسیم :

function [z] = add(x,y)
z=x+y;

در کد بالا ، کلمه function اعلام می کند که این m-file به صورت یک تابع می باشد . خروجی با نام z و دو ورودی با نام های x و y مشخص شده اند . کلمه ای که بعد از علامت تساوی قرار می گیرد (در اینجا کلمه add) ، نام تابع را مشخص می کند و باید در مرحله بعد m-file را دقیقا با همین نام ذخیره کنیم . بنابراین m-file را با نام add ذخیره می کنیم .

همان طور که مشاهده کردید ، خط اول ، ساختار تابع را مشخص می کند و در خط های بعدی تنها کاری که باید انجام دهیم این است که روابط بین ورودی ها و خروجی را تعریف کنیم که در این مثال تنها یک جمع ساده می باشد .

پس از ذخیره کردن m-file دیگر کاری با آن نداریم . باید دقت کنید که اگر بخواهید این m-file را با گزینه Save and run در بالای پنجره ، اجرا کنید با یک خطا مواجه می شوید زیرا این m-file یک تابع است .

اکنون باید تابع ساخته شده را تست کنیم . دستور زیر را در پنجره Command می نویسیم (و یا در یک m-file دیگر) :

B=2;
C=3;
A=add(B,C)

نتیجه :

A =
 
     5

نکته :

باید m-file تابع درون Current folder و یا سایر مسیرهای مشخص شده برای متلب باشد . در غیر این صورت ، متلب یک پیغام خطا را نمایش می دهد . این پیغام خطا به این دلیل است که متلب نمی تواند m-file با نام add را پیدا کند .

نکته :

 در دستور فوق مشاهده کردیم که نام هایی که برای ورودی و خروجی تابع add استفاده کردیم (A و B و C) با نام های درون خود کدهای تابع add متفاوت است (x و y و z) . بنابراین احتیاجی نیست که نگران نام های به کار رفته در ساختار تابع باشید و از هر نام دلخواهی برای ارجاع به تابع می توانید استفاده کنید .

 



 
استفاده کردن از یک mfile داخل محیط سیمولینک simulink
ساعت ۱۱:٤٥ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

استفاده کردن از یک mfile داخل محیط سیمولینک simulink

ابتدا از سیمولینک باید گزینه user defined function و بعد matlab function را انتخاب کنیم و به داخل فایل سیمولینک ببریم این بلوک یک ورودی و یک خروجی دارد و اگر لازم باشد چند ورودی چند خروجی داشته باشیم از بلوکهای mux و demux استفاده می‌کنیم.


 
استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک
ساعت ۱۱:۳٤ ‎ق.ظ روز چهارشنبه ۱۳٩۳/٦/۱٩  کلمات کلیدی: matlab-متلب ، simulink-سیمولینک

استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک

استفاده از Mfile در داخل سیمولینک برای دادن مقادیر اولیه به بلوک‌های سیمولینک

مخصوصا در سیستم‌های گسسته برای دادن مقدار به ثابت زمانی به طور همزمان به تمام بلوک‌ها

ابتدا از Simulink گزینه Ports & Subsystems را اانتخاب کرده و بعد بلوک Subsystem را به داخل فایل سیمولینک مورد نظر می‌بریم. در انجا روی بلوک کلیک کرده و محتویات ان که یک In1 و Out1 و سیم رابط هست را پاک می‌کنیم. دوباره به فایل سیمولینک برگشته وروی بلوک Subsystem کلیک راست کرده و گزینه Block Property را می‌زنیم و در انجا منوی Callbacks را انتخاب کرده و از میان گزینه‌های Callback functions list گزینه OpenFcn‌را برگزیده و نام Mfile‌ای را که می‌خواهیم قبل از اجرای سیمولینک اجرا شود در انجا می‌نویسیم. حال کافی است که قبل از هر اجرای سیمولینک روی این بلوک دوبار کلیک کنیم تا مقدار اولیه دادن انجام شود.