MATLAB در درس سیستمهای کنترل خطی
میثم شاهدی
MATLAB آشنایی با محیط
Workspace Command Window Command History
آشنایی با محیط باز کردن یک فایل M.
منوی File گزینه New گزینه M- File
( MATLABادامه)
آشنایی با دستورات اولیه بزرگ و کوچک بودن حروف در MATLAB
تفاوت دارد
• :clcمحیط Command Windowرا پاک میکند • :clearمحیط Workspaceرا پاک می کند (در اصل پارامترهای مقداردهی شده را پاک می کند)
آشنایی با دستورات محاسباتی
مقدار دهی یک متغیر: ;x=12 تولید یک بردار: ;]X=[2 10 -4 5 0 6 -1 11 تولید یک ماتریس: ;]-1
12 ; 1 6
2 ; 0 -4
Y=[1 0
آشنایی با دستورات محاسباتی (ادامه)
جمع ،ضرب ،تفریق ،تقسیم و قرینه کردن: ;z=x+y ;z=x*y ;z=x-y ;z=x/y
آشنایی با دستورات محاسباتی (ادامه)
توان: ;z=x^y
جذر: ;)z=sqrt)x
آشنایی با دستورات محاسباتی (ادامه)
• : minکوچکترین آرایه یک بردار را بر می گرداند ;)M=min)X • : maxبزرگترین آرایه یک بردار را بر می گرداند ;(N=max)X برای یافتن بزرگترین یا کوچکترین آرایه
آشنایی با دستورات محاسباتی (ادامه)
• :absاندازه یک کمیت مختلط را محاسبه می کند )A=abs)1+i ans=1.4142 • :angleفاز یک کمیت مختلط را بر حسب رادیان محاسبه می کند (P=angle)1+i
آشنایی با دستور شرط
ساختار شرط: ( شرط ) if دستورات قسمت اول else دستورات قسمت دوم end
آشنایی با دستور شرط
(ادامه)
علئم شرط: A~=B
A==B
A>=B
A>B
A<=B
A
مثال:
& if )A==B | A+B>B
&
آشنایی با حلقه : for
ساختار حلقه: for j=m:s:n دستورات end در ابتدا jبا مقدار mمقداردهی می شود و با هر بار اجرای دستورات مقدار sبه آن اضافه می گردد تا به مقدار nبرسد.
آشنایی با دستورهای کنترل خطی
• : tf2ssتابع انتقال را به مدل فضای حالت تبدیل می کند. Y ( s ) num = U ( s ) den فرض کنید:
اگر numو denآرایه هایی شامل ضرایب چندجمله ایهای صورت و مخرج تابع تبدیل به شکل زیر2 باشند: 2 s + 3s − 5
2
3
s + 3s + 1
[ num=[ 2 3 -5
=
آشنایی با دستورهای کنترل خطی
آنگاه: ;([A,B,C,D] = tf2ss)num,den ماتریسهای A ،B ،Cو Dمربوط به فضای حالت سیستم را برمی گرداند. ماتریسهای بدست آمده مربوط به یکی از بی شمار مدلهای فضای حالت ممکن برای سیستم است.
آشنایی با دستورهای کنترل خطی
• : ss2tfمدل فضای حالت را به تابع انتقال تبدیل می کند. اگر چهار ماتریس مربوط به فضای حالت در اختیار باشد: ([num,den]=ss2tf)A,B,C,D,iu تابع تبدیل سیستم را به صورت دو بردار صورت و مخرج (بر اساس ورودی iu
آشنایی با دستورهای کنترل خطی
• : tfنمایش تابع تبدیل: (tf)num,den تابع تبدیل سیستم را به صورتی که در ریاضیات نوشته می شود (نسبت دو چند جمله ای) ارائه می نماید:
25 s + 5 ---------------------s^3 + 5 s^2 + 25 s + 5
آشنایی با دستورهای کنترل خطی
• : stepنمایش پاسخ حالت گذرا به ورودی پله واحد (step)num,den,t تابع تبدیل را به صورت دو آرایه از ضرایب چندجمله ایهای صورت و مخرج دریافت می کند و در صفحه ای جدید نمودار پاسخ حالت گذرای سیستم به ورودی پله را تا زمان t رسم می نماید.
آشنایی با دستورهای کنترل خطی مثال: ;(step)[25 5],[1 5 25 5],10
آشنایی با دستورهای کنترل خطی
اگر از دستور stepبه شکل زیر استفاده نماییم اندازه نمودار در تعداد 101نقطه در آرایه ای به نام aذخیره می گردد و نمودار پاسخ نمایش داده نمی شود: ;(a=step)num,den
این کار برای انجام محاسبات مربوط به پاسخ حالت گذرا مناسب است. برای تقسیم بندی دلخواه زمان t ،را به
آشنایی با دستورهای کنترل خطی
• : ord2تولید تابع تبدیل یک سیستم مرتبه دوم استاندارد به شکل زیر: )C ( s 1 = 2 R ( s ) s + 2ζω n s + ω n2
;([num,den]=ord2)wn,damp_ratio توجه کنید که صورت تابع تبدیل یک است.
آشنایی با دستورهای کنترل خطی
• : rlocusترسیم مکان هندسی ریشه های تابع انتقال حلقه بسته ;(rlocus)num,den,K مکان هندسی ریشه ها را برای مقادیر آرایه Kرسم می کند. مقداردهی Kاختیاری است. مکان هندسی ریشه ها قابل ذخیره سازی
آشنایی با دستورهای کنترل خطی
• : bodeترسیم نمودار بود یک سیستم ;)bode)num,den,w نمودار بود سیستم را به ازای مقادیر آرایه wرسم می کند( .مقداردهی wاختیاری است) نمودار بود قابل ذخیره سازی در سه بردار است.
آشنایی با دستورهای کنترل خطی
• : nyquistترسیم نمودار نایکوییست یک سیستم ;(nyquist)num,den,w نمودار نایکوییست را برای مقادیر فرکانسی آرایه wرسم میکند. مقداردهی wاختیاری است. نایکوییست قابل ذخیره سازی در سه
آشنایی با دستورهای کنترل خطی
اگر در هنگاه رسم نمودار نایکوییست برنامه MATLABخطای تقسیم به صفر داد ،محدوده نمایش نمودار را با دستور axisتصحیح کنید: ;)[axis)[x1 x2 y1 y2 این دستور محور افقی را در محدوده x1تا x2و محور عمودی را در محدوده y1تا y2 ترسیم می کند.
نباشید خسته !