شبیه سازی در متلب (1)
شبیه سازی معادلات دینامیکی در متلب :
معادلات دینامیکی ، عبارتند از عبارت های دیفرانسیلی - جبری که نحوه رفتار سیستم از زمان t0 تا tf را نشان می دهند . این معادلات بنابه دقت و ساختار سیستم تبیین کننده خود می توانند خطی ، غیرخطی و همینطور تغییر پذیر با زمان و یا تغییرناپذیر با زمان باشند .
در شبیه سازی دینامیکی تمامی سیستم ها نیاز است تا بتوانیم این معدلات را در متلب بیان کنیم ، در حالت کلی دو راه برای بیان دینامیک یک سیستم در متلب وجود دارد روش اول برمبنای کدنویسی این معادلات می باشد و روش دوم برمبنای محیط سیمولینک می باشد ، البته در روش دوم نیز ناگزیر از کدنویسی می باشیم ، اما آنچه روش دوم را راحتتر می نماید سر راست بودن روش می باشد ، در این حالت نیاز به استفاده از توابع متلب به منظور حل معادلات دیفرانسیلی نیست تا مجبور باشیم کلیه آرگومان و آپشن ها و همینطور ترتیب آنها را رعایت کنیم . در این حالت کافیست شما از تابع های موجود در بخش User defined functions استفاده کنید .
این بخش از بلوک های سیمولینک تنها روش ارتباطی بین سیمولینک و کدنویسی می باشند ، در بین این توابع پرکاربردترین آنها بلوک های با نام های (در متلب 2011) Interpreted matlab function ، Matlab function و S-function می باشند ، در این بین ساده ترین استفاده را می توان از بلوک Matlab function داشت ، این بلوک در داخل خود سه خط کد دارد ، کد اول به صورت y= f(u) می باشد ، که می توانید با افزودن ورودی و خروجی های مورد نیاز خود آن را به یک تابع چند ورودی ، چند خروجی تبدیل کنید ، در خط آخر که یک عبارت جبری است ورودی برابر خروجی قرار داده شده است که شما مانند آن می توانید با بیان عبارات جبری لازم خروجی ها را از ورودی های مورد نیاز خود بدست آورید .
تا اینجای کار شما می توانید معادلات جبری خود را در متلب و در محیط سیمولینک ایجاد کنید اما چگونه معادلات دیفرانسیل را در محیط متلب ایجاد کنیم ؟
برای این منظور نیاز به استفاده از انتگرال گیر در سیمولینک داریم ، دقت کنید که در استفاده از تنها کدنویسی این مسئله را نمی توانستیم به سادگی انجام دهیم ، چرا که در آن جا بیان توابع ode که معروفترین آن ها ode45 می باشد ضروری بود اما در محیط سیمولینک این تابع به صورت خودکار عمل می کند .
از این مسئله که بگذریم در بیان معادلات دیفرانسیل پس از آوردن انتگرال گیر شما می توانید با قرار دادن این انتگرال گیر در خروجی بلوک تابع متلب از عبارت مشتق متغیر که در داخل از ورودی ها بدست آمده است انتگرال گرفته و آن را تبدیل به خود متغیر نمایید . در این حالت با فیدبک این مقدار شما خود متغیر را خواهید داشت .