آموزش شبیه سازی مباحث کنترل با Matlab

بازدید: 3248 بازدید
کنترل با متلب

آموزش شبیه سازی مباحث کنترل با Matlab

این مطلب آموزشی رو دوست خوبمون یاسر در انجمن نواندیشان تهیه کرده است که قسمتی از اون رو براتون اینجا میذارم.شما میتونید ادامه این مطلب آموزشی را در لینک زیر دنبال کنید.

…………………………………………………………

خوب این اولین موضوعی هست که من توی این سایت شروع میکنم و امیدوارم این مباحث بتونه به بچه های این سایت کمک کنه و خودم هم بتونم تا جای خوبی این موضوع رو پیش ببرم
هدفی که من در ذهن دارم تشریح کامل مسائل مهندسی کنترل در متلب هستش
شاخه مهندسی کنترل عموما به دو دسته تقسیم میشه..اولی کنترل کلاسیک هست و دومی کنترل هوشمند
مباحثی مانند کنترل خطی، کنترل مدرن، کنترل دیجیتال، کنترل غیر خطی، کنترل مقاوم، کنترل پیشبین، کنترل فرآیند های اتفاقی و کنترل تطبیقی از موضوعات کنترل کلاسیک هستند. در این مباحث معمولا کنترل کننده هایی که معرفی میشن اثبات پایداری سیستم های حلقه بسته به صورت ریاضی با قضیه لیاپانوف رو دارن.البته این مباحث مختص کنترل کلاسیک نیست و میشه مثلا کنترل تطبیقی با روش هوشمند رو انجام داد.
از مهمترین سیستم های هوشمند میشه از شبکه های فازی و عصبی نام برد که در سال های اخیر خیلی فراگیر شدن و قابلیت ترکیب با سایر گرایش های برق و حتی رشته های دیگه رو هم دارن.عموما کنترل کننده هایی که با این متد ها به دست میاد اثبات پایداری به روش لیاپانوف رو ندارن. هر چند که در برخی کنترل کننده های فازی و عصبی تو این چند سال اخیر اثبات پایداری ارائه شده.
کنترل هوشمند خیلی فراگیر شدن و تقریبا جای کنترل کلاسیک رو گرفتن و تقریبا همه جا یافت میشن… مثلا ماشین لباسشویی خونه شما یک کنترل کننده هوشمند داره…اما انتظار نداشته باشید جایی مثل نیروگاه هسته ای این کنترل کننده رو ببینید (نبود پایداری قطعی) و معمولا از کنترل کننده های کلاسیک استفاده میشه

اولین مبحثی رو که اینجا شروع میکنم مربوط به کنترل خطی هست که تمامی مهندسای برق با اون درگیر هستند
اگر دوستان نظری دارن اعلام کنن تا از نظرات دوستان هم بهره مند بشیم…

………………………………………………………………………………………….

خوب این آموزش اول هست و از پایه ای ترین مبحث کنترل شروع میکنیم… تعریف تابع تبدیل
یک تابع تبدیل در حالت کلی به صورت زیر تعریف میشه:

کد:
G(s)=B(s)/A(s) exp(-T*s)

که در رابطه فوق A چند جمله ای مخرج و B چند جمله ای صورت و T تاخیر سیستم هست.از درس سیگنال و سیستم میدونیم که ریشه های A رو قطب های سیستم و ریشه های B رو صفر های سیستم میگن.لازم به یادآوری نیست که منظور از s اپراتور مشتق ویا به زبان ساده تر متغیر تبدیل لاپلاس هست.
یک تابع تبدیل رو در حالت کلی در متلب میشه با دستور tf معرفی کرد به صورت زیر:

کد:
sys = tf(num,den,'InputDelay',T)

که منظور از num و den ضرایب صورت و مخرج هست.خوب با یه مثال شروع میکنیم.مثلا تابع تبدیل زیر:

کد:
G(s)=(s^2+5s+1)/(3s^4+2s^2+4)

ابتدا ضرایب صورت و مخرج رو تعریف میکنیم

کد:
num=[1 5 1];
den=[3 0 2 0 4];

که این ضرایب رو به صورت ماتریس سطری معرفی کردیم.سیستم هم هیچ‌تاخیری نداره پس میشه زمان تاخیر رو صفر در نظر گرفت یا اصن تعریف نکرد

کد:
sys = tf(num,den,'InputDelay',0)
sys = tf(num,den)

همونطور که متوجه شدید میبایست تمامی ضراینب چند جمله ای صورت و مخرج رو به صورت کامل بیان کرد حتی اونایی که صفر شدن.اگه اونایی که صفر نشدن رو تعریف نکنیم درجه صورت و مخرج کاهش پیدا میکنه (چرا؟؟)
یه مثال دیگه:

کد:
G(s)=1/(5s+1) exp(-2.34s)

خوب اینو میشه این شکلی نوشت:

کد:
 Sys=tf(1,[5 1],'InputDelay',2.34)

در تعریف فوق تمامی تاخیر ها رو برای ورودی در نظر گرفتیم هر چند که میشد اینو برای خروجی هم نوشت.برای مطالعه بیشتر به لینک زیر مراجعه کنید

کد HTML:
http://www.mathworks.com/help/control/examples/specifying-time-delays.html

برای تعریف تابع تبدیل راه حل ساده تری هم وجود داره اگه در ابتدای برنامه خودتون وارد کنید:

کد:
s=tf('s')

در تمامی خطوط پایین تر این دستور s رو به عنوان متغیر لاپلاس میشناسه و در نتیجه تعریف تابع تبدیل راحت تر میشه.البته این به شرطی هست که s رو دوباره چیز دیگه ای تعریف نکنیم.برای مثال اولی که اینجا آوردم:

کد:
s=tf('s')
sys=(s^2+5*s+1)/(3*s^4+2*s^2+4)

و برای مثال دوم

کد:
s=tf('s')
sys=(12)/(5*s+1)*exp(-2.34*s)

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

کد:
z=zero(sys)
p=pole(sys)

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

کد:
zpk(sys)

خوب فک کنم برای جلسه اول کافی باشه در جلسه بعد ساده سازی بلوک های میسون و بدست آوردن پاسخ سیستم و مشخصات پاسخ پله سیستم ها رو بررسی میکنیم
تذکر: توجه کنید که این یک آموزش مقدماتی هست و مسلم است که هرکدوم از این دستور ها کاربردهای بسیار وسیعتری دارن اما در اینجا فقط به بیان کاربرد های اون ها در کنترل خطی پرداخته شده

نام فایل: آموزش شبیه سازی مباحث کنترل با Matlab

مشاهده کامل مطلب: به تالار گفتگو

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

ادامه مطلب