استفاده از نمایش درست مدل
این مثال برخی از بهترین روشها برای کار با مدلهای LTI را نشان میدهد.
کدام نمایش برای محاسبات مناسبتر است؟
با استفاده از نرمافزار Control System Toolbox™، میتوانید سیستمهای LTI را به چهار روش مختلف نمایش دهید:
- تابع انتقال (TF)
- صفر-قطب-ضریب (ZPK)
- فضای حالت (SS)
- داده پاسخ فرکانسی (FRD)
در حالی که نمایشهای TF و ZPK فشرده و مناسب برای نمایش هستند، اما به دلیل دلایلی برای تحلیل و کار با سیستم مناسب نیستند:
- کار با مدلهای TF و ZPK اغلب منجر به چندجملهایهای مرتبه بالا میشود که ممکن است با عدم دقت همراه باشد.
- نمایشهای TF و ZPK برای کار با سیستمهای MIMO کارآمد نیستند و ممکن است مرتبه مدل را افزایش دهند.
برخی از این محدودیتها در زیر نشان داده شده است. به خاطر این محدودیتها، باید از نمایشهای SS یا FRD برای بیشتر محاسبات مربوط به مدلهای LTI استفاده کنید.
مشکلات توابع انتقال مرتبه بالا
محاسباتی که شامل توابع انتقال مرتبه بالا هستند ممکن است با از دست دادن دقت شدید و حتی اضافه شدن مواجه شوند. حتی یک ضرب ساده دو تابع انتقال ممکن است نتایج غیرمنتظرهای داشته باشد، همانطور که در زیر نشان داده شده است.
دو تابع انتقال گسسته Pd و Cd با مرتبه 9 و 2 را بارگذاری و نمودار پاسخ فرکانسی آنها را رسم کنید:
% Load Pd,Cd models
load numdemo Pd Cd
% Plot their frequency response
bode(Pd,'b',Cd,'r'), grid
legend('Pd','Cd')
سپس، تابع انتقال بازخورد L = Pd*Cd را با استفاده از نمایشهای TF، ZPK، SS و FRD محاسبه کنید:
Ltf = Pd * Cd; % TF
Lzp = zpk(Pd) * Cd; % ZPK
Lss = ss(Pd) * Cd; % SS
w = logspace(-1,3,100);
Lfrd = frd(Pd,w) * Cd; % FRD
در نهایت، دامنه پاسخ فرکانسی چهار مدل حاصل را مقایسه کنید:
sigma(Ltf,'b--',Lzp,'g',Lss,'r:',Lfrd,'m--',{1e-1,1e3});
legend('TF','ZPK','SS','FRD')
پاسخهای نمایشهای ZPK، SS و FRD به خوبی با هم تطابق دارند، اما پاسخ نمایش TF در زیر 100 رادیان بر ثانیه ناپایدار و نامنظم است. برای درک از دست دادن دقت در نمایش تابع انتقال، نقشه قطبها و صفرها را در نزدیک z=1 مقایسه کنید:
pzplot(Pd,'b',Cd,'r');
title('Pole/zero maps of Pd (blue) and Cd (red)');
axis([0.4 1.05 -1 1])
نکته: در نزدیک z=1 چند ریشه وجود دارد. به دلیل کاهش دقت نسبی در نزدیک ریشهها، خطا نسبی در مقدار تابع انتقال در نزدیک z=1 بیش از 100% میشود. فرکانسهای زیر 100 رادیان بر ثانیه به |z-1|<1e-3 مربوط میشوند که دلیل نتایج ناپایدار زیر 100 رادیان بر ثانیه است.
مشکلات تبدیلهای مکرر بین نمایشها
میتوانید هر مدل LTI را به فرم تابع انتقال، صفر-قطب-ضریب یا فضای حالت تبدیل کنید. برای مثال، با استفاده از یک مدل فضای حالت تصادفی HSS1 با دو ورودی و دو خروجی:
HSS1 = rss(3,2,2);
میتوانید تابع انتقال آن را با دستور زیر بدست آورید:
HTF = tf(HSS1);
و دوباره به فضای حالت بازگردانید:
HSS2 = ss(HTF);
اما باید توجه داشت که چنین تبدیلهای مکرر گران هستند، ممکن است باعث از دست دادن دقت شوند و مرتبه مدل را برای سیستمهای MIMO افزایش دهند. برای مثال، مرتبه HSS2 دو برابر HSS1 است چون 6 مرتبه یک ماتریس انتقال 2×2 با مخرج درجه 3 است:
order(HSS1)
ans = 3
order(HSS2)
ans = 6
برای درک تفاوت مرتبه مدل، نقشه قطبها و صفرهای دو مدل را مقایسه کنید:
subplot(211)
pzmap(HSS1,'b')
title('Poles and zeros of HSS1');
subplot(212)
pzmap(HSS2,'r')
title('Poles and zeros of HSS2');
نکته: در HSS2 جفتهای قطب-صفر کنار هم قرار دارند که در نقشه قطب-صفر با x داخل o نشان داده شدهاند. میتوانید از دستور minreal برای حذف جفتهای قطب-صفر و بازیابی یک مدل فضای حالت مرتبه سوم از HSS2 استفاده کنید:
HSS2_min = minreal(HSS2);
3 states removed.
order(HSS2_min)
ans = 3
برای اطمینان از تطابق HSS1 و HSS2_min، نمودار فاصله نسبی بین این دو مدل را رسم کنید:
clf
Gap = HSS1-HSS2_min;
sigma(HSS1,Gap), grid
Warning: The frequency response has poor relative accuracy. This may be because the response is nearly zero or infinite at all frequencies, or because the state-space realization is ill conditioned. Use the "prescale" command to investigate further.
legend('HSS1','Gap HSS1 vs. minimal HSS2','Location','Best');

فاصله (منحنی سبز) در تمام فرکانسها بسیار کوچک است. توجه داشته باشید که sigma هشدار میدهد که نمودار Gap “نویزی” است چون تفاوت به حدی کوچک است که تقریباً شامل خطاها ناشی از گرد کردن است.
چون بازیابی نمایشهای مینیمال از نظر عددی دشوار است، باید از ساختن مدلهای غیرمینیمال خودداری کنید.






