تحلیل و شبیه سازی سیستم های خطی لازمه طراحی سیستم کنترل برای هر پلنت می باشد. خوشبختانه این ابزار در حوزه کنترل خطی بسیار گسترده است. مهمترین ابزار تحلیل پایداری سیستم های خطی عبارتند از نمودار مکان هندسی ریشه ها ، نمودار بودی و نائکوئیست. که نمودار مکان هندسی براساس صفر و قطب های سیستم بدست می آید و دو نمودار بودی و نائکوئیست از جمله ابزار تحلیل در حوزه فرکانسی می باشند.

مکان هندسی ریشه ها

از جمله مهمترین ابزار به منظور بررسی سیستم های کنترل خطی نمودار مکان هندسی می باشد که تحلیل آن در پست(کلیک کنید) بصورت کامل تشریح شده است. این تحلیل براساس صفر و قطب های سیستم انجام می شود. در این بخش می خواهیم دستورات مرتبط با رسم مکان هندسی ریشه ها در متلب را بررسی و مثال هایی را مرور کنیم.

فرمت کلی دستورات متلب برای رسم نمودار مکان هندسی ریشه ها بصورت زیر می باشند :

rlocus(sys)

rlocus(sys1,sys2,…)

[r,k] = rlocus(sys)

r = rlocus(sys,k)

rlocus(sys) مکان هندسی ریشه های مدل تک ورودی تک خروجی (SISO) sys را محاسبه و ترسیم می کند. مکان ریشه مسیرهای قطب حلقه بسته را به عنوان تابعی از بهره بازخورد k (با فرض فیدبک منفی) برمی گرداند. مکان هندسی ریشه برای مطالعه اثرات افزایش فیدبک های مختلف در مکان های قطب حلقه بسته استفاده می شود. به نوبه خود، این مکان ها اطلاعات غیرمستقیم در مورد پاسخ های زمان و فرکانس ارائه می دهند.

می‌توانید از rlocus برای رسم نمودار منبع ریشه هر یک از حلقه‌های فیدبک منفی زیر با تنظیم sys مانند شکل زیر استفاده کنید:

شکل 1 انتخاب تابع تبدیل حلقه باز برای sys به عنوان آرگومان تابع rlocus 300x127 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 1 ) انتخاب تابع تبدیل حلقه باز برای sys به عنوان آرگومان تابع rlocus

دقت در این شکل نشان دهنده لزوم انتخاب تابع تبدیل حلقه باز برای آرگومان (ورودی) تابع rlocus جهت رسم مکان هندسی ریشه ها می باشد. تابع تبدیل حلقه باز از ضرب هر آنچه در مسیر فیدفوروارد و فیدبک در پلنت می باشد بدست می آید.

به عنوان مثال، اگر sys یک تابع انتقال است که توسط رابطه زیر بیان می شود :

فرمول 1 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

قطب های حلقه بسته سیستم عبارت خواهند بود با ریشه های معادله زیر :

فرمول 2 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

نمودار مکان هندسی ریشه، مسیر قطب های حلقه بسته را در زمانی که بازخورد بهره k از 0 تا بی نهایت تغییر می کند، نشان می دهد. rlocus به طور تطبیقی مجموعه ای از بهره های مثبت k را برای ایجاد یک نمودار صاف انتخاب می کند. قطب های روی نمودار منبع ریشه با x و صفرها با o نشان داده می شوند.

کد متلب rlocus(sys1,sys2,…) جایگاه ریشه چندین مدل LTI با نام های sys1, sys2,… را در یک نمودار رسم می کند. برای هر مدل می توانید رنگ، سبک خط و نشانگر را مشخص کنید.

کد متلب [r,k] = rlocus(sys) بردار بهره فیدبک k و مکان های ریشه مختلط r را برای این بهره ها برمی گرداند.

کد متلب r=rlocus(sys,k) از بردار مشخص شده توسط کاربر برای بهره بازخورد k برای خروجی قطب های حلقه بسته r که نمودار منبع ریشه را تعریف می کنند، استفاده می کند.

مثال :

برای این مثال. مکان ریشه سیستم دینامیکی SISO زیر را رسم کنید:

فرمول 3 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

ابتدا نیاز است تا پلنت بصورت یک تابع تبدیل تعریف شود که برای این منظور از کد متلب tf (Transfer Function) استفاده می شود که ابتدا چند جمله ای صورت و سپس چندجمله ای مخرج برای آن به صورت زیر تعریف می شوند :

sys = tf([2 5 1],[1 2 3]);

در ادامه به سادگی با کد rlocus(sys) نسبت به رسم مکان هندسی اقدام می شود که نتیجه آن شکل زیر می باشد :

شکل 2 نمودار مکان هندسی ریشه ها برای مثال اول 300x231 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 2 ) نمودار مکان هندسی ریشه ها برای مثال اول

قطب های سیستم با x نشان داده می شوند، در حالی که صفرها با o در نمودار مکان ریشه نشان داده می شوند. می توانید از منوی درون نمودار منبع ریشه تولید شده برای اضافه کردن خطوط شبکه، بزرگنمایی یا کوچکنمایی و همچنین فراخوانی Property Editor برای سفارشی کردن نمودار استفاده کنید.

نمودار مکان هندسی ریشه چندین مدل سیستم دینامیکی

این کار بیشتر به منظور مقایسه چندین سیستم LTI از لحاظ پایداری استفاده می شود .

برای این مثال، sisoModels.mat (این سیستم در متلب تعریف شده است و دارای سه تابع تبدیل SISO می باشد) را در نظر بگیرید که شامل سه مدل SISO زیر است:

sys1 – یک مدل تابع انتقال

sys2 – یک مدل فضای حالت

sys3 – یک مدل با افزایش قطب صفر

مدل ها را از فایل mat بارگیری کنید. برای این منظور از دستور load استفاده می شود : (نرم افزار متلب شما بایستی ورژن بالای 2020 باشد و الا در شناسایی sisoModels.mat خطا خواهد داد)

load(‘sisoModels.mat’,’sys1′,’sys2′,’sys3′);

نمودار مکان هندسی ریشه را با استفاده از کد متلب rlocus ایجاد کنید و رنگ هر سیستم را مشخص کنید. همچنین یک legend به نمودار منبع ریشه اضافه کنید.

rlocus(sys1,’b’,sys2,’k’,sys3,’r’)hold onlegend(‘sys1′,’sys2′,’sys3’)hold off

شکل زیر نتیجه بدست آمده را نشان می دهد .

شکل 3 نمودار مکان هندسی ریشه ها برای مثال دوم با نمایش سه مکان هندسی در یک رسم 300x239 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 3 ) نمودار مکان هندسی ریشه ها برای مثال دوم با نمایش سه مکان هندسی در یک رسم

شکل شامل نمودارهای مکان هندسی ریشه ها برای هر سه سیستم در یک نمودار است.

قطب های حلقه بسته و بدست آوردن مقادیر فیدبک با استفاده از کد متلب Root Locus

برای این مثال، مدل تابع انتقال SISO زیر را در نظر بگیرید:

فرمول 4 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

از مدل تابع انتقال بالا با دستور rlocus برای استخراج قطب های حلقه بسته و مقادیر بهره بازخورد مربوطه استفاده کنید. در این شرایط دستور زیر را به کار می گیریم :

sys = tf([3 1],[9 7 5 6]);[r,k] = rlocus(sys)

و در نتیجه در پنجره command متلب خواهیم داشت :

r = 3×53 complex

  -0.9406 + 0.0000i  -0.8744 + 0.0000i  -0.8685 + 0.0000i

که در اینجا تنها سطر اول نمایش داده شده است حال آنکه تمامی 53 سطر در command متلب نمایش داده می شود و همچنین به دنبال آن بردار بهره را به شکل زیر در command متلب خواهیم داشت :

k = 1×53

104 ×

         0    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0001    0.0002    0.0002    0.0002    0.0002

که تنها بخشی از پاسخ در اینجا نمایش داده شده است.

از آنجایی که sys شامل 3 قطب است، اندازه آرایه حاصل از قطب های r ، 3×53 است. هر ستون در r مربوط به یک مقدار افزایش از بردار k است. برای این مثال، rlocus به طور خودکار 53 مقدار k را از صفر تا بی نهایت را برای به دست آوردن یک مسیر صاف برای سه قطب حلقه بسته انتخاب کرد.

حال دستورات زیر را در نظر بگیرید :

display(r(:,39))  -0.4229 + 0.0000i  -0.1775 + 2.4299i  -0.1775 – 2.4299i

display(k(39))   16.5907

این نشان می دهد که  r(:,39) حاوی قطب های حلقه بسته بالا برای مقدار بهره بازخورد معادل با 16.5907 است. (در مقدار متناظر با این بهره قطب های سیستم تعیین شده اند)

نمودار بودی

نمودار بودی از جمله ابزار در حوزه فرکانسی است که به منظور تحلیل پایداری سیستم های دینامیکی خطی به کار می رود. کد متلب برای رسم نمودار بودی عبارت است از bode

دستور bode نمودار پاسخ فرکانسی را برای سیستم مورد نظر رسم می کند که عبارت از یک نمودار بزرگی و یک نمودار فاز می باشد.

فرمت کلی انواع کاربردهای دستور bode به صورت زیر می باشد :

bode(sys)

bode(sys1,sys2,…,sysN)

bode(sys1,LineSpec1,…,sysN,LineSpecN)

bode(___,w)

[mag,phase,wout] = bode(sys)

[mag,phase,wout] = bode(sys,w)

[mag,phase,wout,sdmag,sdphase] = bode(sys,w)

bode(sys) یک نمودار bode از پاسخ فرکانسی یک سیستم مدل سیستم دینامیکی ایجاد می کند. نمودار بزرگی (بر حسب دسی بل) و فاز (بر حسب درجه) پاسخ سیستم را به عنوان تابعی از فرکانس نمایش می دهد. bode به طور خودکار فرکانس ها را برای رسم بر اساس دینامیک سیستم تعیین می کند.

اگر sys یک مدل چند ورودی و چند خروجی (MIMO) باشد، آنگاه bode آرایه‌ای از نمودارهای bode را تولید می‌کند که هر نمودار پاسخ فرکانسی یک جفت ورودی/خروجی را نشان می‌دهد.

اگر sys مدلی با ضرایب مختلط باشد، در این صورت :

مقیاس فرکانس لگاریتمی، نمودار دو شاخه را نشان می دهد، یکی برای فرکانس های مثبت و دیگری برای فرکانس های منفی. نمودار همچنین فلش هایی را برای نشان دادن جهت افزایش مقادیر فرکانس برای هر شاخه نشان می دهد.

مقیاس فرکانس خطی، نمودار یک شاخه منفرد با محدوده فرکانس متقارن در مرکز مقدار فرکانس صفر را نشان می دهد.

bode(sys1,sys2,…,sysN) پاسخ فرکانسی چندین سیستم دینامیکی را در یک نمودار ترسیم می کند. همه سیستم ها باید تعداد ورودی و خروجی یکسانی داشته باشند.

bode(sys1,LineSpec1,…,sysN,LineSpecN) یک رنگ، سبک خط و نشانگر را برای هر سیستم در نمودار مشخص می کند.

bode(___,w) پاسخ های سیستم را برای فرکانس های مشخص شده توسط w ترسیم می کند.

اگر w آرایه سلولی به شکل {wmin,wmax} باشد، bode پاسخ را در فرکانس‌های بین wmin و wmax ترسیم می‌کند.

اگر w بردار فرکانس‌ها باشد، bode پاسخ را در هر فرکانس مشخص ترسیم می‌کند. بردار w می تواند دارای هر دو فرکانس منفی و مثبت باشد.

می‌توانید w را با هر یک از ترکیب‌های ورودی-آگومان در دستورات قبلی استفاده کنید.

مثال :

یک نمودار Bode از سیستم دینامیکی SISO زمان پیوسته زیر ایجاد کنید.

فرمول 5 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

برای این منظور بایستی طبق آنچه برای رسم مکان هندسی نشان داده شد ابتدا سیستم را با دستور تابع تبدیل تشکیل داده و سپس دستور bode را استفاده کنیم :

H = tf([1 0.1 7.5],[1 0.12 9 0 0]);bode(H)

نتیجه به صورت شکل زیر بدست می آید :

شکل 4 نمودار بودی برای مثال انتخابی دستور بودی رنج مورد نظر فرکانسی را براساس دینامیک سیستم به صورت اتوماتیک نمایش می دهد 300x232 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 4 ) نمودار بودی برای مثال انتخابی – دستور بودی رنج مورد نظر فرکانسی را براساس دینامیک سیستم به صورت اتوماتیک نمایش می دهد

ترسیم نقشه در فرکانس های مشخص

یک نمودار Bode در یک محدوده فرکانس مشخص ایجاد کنید. زمانی که می خواهید روی دینامیک در محدوده خاصی از فرکانس ها تمرکز کنید از این رویکرد استفاده کنید.

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);bode(H,{1,100})grid on

در نتیجه اجرای این کدها خواهیم داشت :

شکل 5 نمودار بودی برای مثال انتخابی در محدوده فرکانسی مشخص شده در صورت کد متلب 300x230 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 5 ) نمودار بودی برای مثال انتخابی در محدوده فرکانسی مشخص شده در صورت کد متلب

آرایه سلولی {1100} مقادیر حداقل و حداکثر فرکانس را در نمودار Bode مشخص می کند. وقتی مرزهای فرکانس را به این روش ارائه می کنید، این تابع نقاط میانی را برای داده های پاسخ فرکانسی انتخاب می کند.

همچنین می توانید بردار نقاط فرکانس را برای ارزیابی و ترسیم پاسخ فرکانسی مشخص کنید به صورت زیر :

w = [1 5 10 15 20 23 31 40 44 50 85 100];bode(H,w,’.-‘)grid on

در نتیجه خواهیم داشت :

شکل 6 نمودار بودی برای سیستم انتخابی به ازای نقاط فرکانسی مشخص شده در کد دستور متلب 300x241 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 6 ) نمودار بودی برای سیستم انتخابی به ازای نقاط فرکانسی مشخص شده در کد دستور متلب

نمودار نایکوئیست

نمودار نایکوئیست یکی دیگر از ابزار تحلیل پایداری دینامیکی در حوزه فرکانسی می باشد. نائکوئیست نیز تنها در سیستم های خطی کاربرد دارد. فرمت کلی دستورات متناسب با نایکوئیست بصورت زیر می باشد :

nyquist(sys)

nyquist(sys1,sys2,…,sysN)

nyquist(sys1,LineSpec1,…,sysN,LineSpecN)

nyquist(___,w)

[re,im,wout] = nyquist(sys)

[re,im,wout] = nyquist(sys,w)

[re,im,wout,sdre,sdim] = nyquist(sys,w)

nyquist(sys) یک نمودار Nyquist از پاسخ فرکانسی یک سیستم مدل دینامیک sys ایجاد می کند. نمودار بخش های واقعی و مجازی پاسخ سیستم را به عنوان تابعی از فرکانس نمایش می دهد.

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

اگر sys یک مدل چند ورودی و چند خروجی (MIMO) باشد، nyquist آرایه‌ای از نمودارهای Nyquist را تولید می‌کند که هر نمودار پاسخ فرکانسی یک جفت I/O را نشان می‌دهد.

اگر sys مدلی با ضرایب مختلط باشد، در این صورت شاخه های مثبت و منفی متقارن نخواهند بود.

کد متلب nyquist(sys1,sys2,…,sysN) پاسخ فرکانسی چندین سیستم پویا را در یک نمودار ترسیم می کند. همه سیستم ها باید تعداد ورودی و خروجی یکسانی داشته باشند.

کد متلب nyquist(sys1,LineSpec1,…,sysN,LineSpecN) یک رنگ، سبک خط و نشانگر را برای هر سیستم در نمودار مشخص می کند.

کد متلب nyquist(___,w) پاسخ های سیستم را برای فرکانس های مشخص شده توسط w ترسیم می کند.

اگر w آرایه سلولی به شکل {wmin,wmax} باشد، nyquist پاسخ را در فرکانس‌های بین wmin و wmax ترسیم می‌کند.

اگر w بردار فرکانس ها باشد، nyquist پاسخ را در هر فرکانس مشخص ترسیم می کند. بردار w می تواند دارای هر دو فرکانس منفی و مثبت باشد.

می‌توانید w را با هر یک از ترکیب‌های ورودی-آگومان در دستورات قبلی استفاده کنید.

 [re,im,wout] = nyquist(sys) بخشهای واقعی و خیالی پاسخ فرکانسی را در هر فرکانس در بردار wout برمی گرداند. این تابع به طور خودکار فرکانس ها را بر اساس دینامیک سیستم تعیین می کند. این دستور نموداری ترسیم نمی کند.

مثال :

تابع انتقال زیر را ایجاد کرده و پاسخ Nyquist آن را رسم کنید.

فرمول 6 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

طبق صحبت های در مورد نمودار مکان هندسی ریشه ها و بودی دستورات زیر را بایستی برای این منظور وارد کنیم :

H = tf([2 5 1],[1 2 3]);nyquist(H)

در نتیجه این دستورات شکل زیر را در خروجی خواهیم داشت :

شکل 7 نمودار نایکوئیست برای مثال انتخابی 300x235 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 7 ) نمودار نایکوئیست برای مثال انتخابی

تابع nyquist می‌تواند شبکه‌ای از دایره‌های M را نمایش دهد، که خطوطی با قدر حلقه بسته ثابت هستند. دایره های M به عنوان مکان اعداد مختلط تعریف می شوند که در آن کمیت زیر یک مقدار ثابت در فرکانس است.

فرمول 7 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

در اینجا، ω فرکانس بر حسب رادیان بر TimeUnit است، که در آن TimeUnit واحدهای زمان سیستم است، و G مجموعه ای از اعداد مختلط است که نیاز مقدار ثابت را برآورده می کند. برای نمایش شبکه دایره های M، روی نمودار کلیک راست کرده و Grid را انتخاب کنید. یا از دستور grid استفاده کنید.

grid on

شکل 8 نمودار نائکوئیست برای مثال انتخابی با اعمال دستور gid on 300x235 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 8 ) نمودار نائکوئیست برای مثال انتخابی با اعمال دستور gid on
نمودار Nyquist در فرکانس های مشخص

یک نمودار Nyquist در یک محدوده فرکانس مشخص ایجاد کنید. زمانی که می خواهید روی دینامیک در محدوده خاصی از فرکانس ها تمرکز کنید از این رویکرد استفاده کنید.

H = tf([-0.1,-2.4,-181,-1950],[1,3.3,990,2600]);nyquist(H,{1,100})

نتیجه به صورت شکل زیر خواهد بود :

شکل 9 نمودار نایکوئیست برای مثال انتخابی در یک محدوده فرکانسی مشخص شده 300x236 تحلیل و شبیه سازی سیستم های کنترل خطی در متلب   مکان هندسی ، بودی ، نایکوئیست

شکل 9 ) نمودار نایکوئیست برای مثال انتخابی در یک محدوده فرکانسی مشخص شده

آرایه سلولی {1,100} یک محدوده فرکانس [1,100] برای شاخه فرکانس مثبت و [-100,-1] برای شاخه فرکانس منفی در نمودار Nyquist مشخص می‌کند. شاخه فرکانس منفی با تقارن برای مدل هایی با ضرایب واقعی به دست می آید. وقتی مرزهای فرکانس را به این روش ارائه می کنید، این تابع نقاط میانی را برای داده های پاسخ فرکانسی انتخاب می کند.

منبع : نرم افزار متلب

About برق تِک

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *