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