طراحی کنترلر موتور DC با تولباکس Matlab

طراحی کنترلر موتور DC با تولباکس Matlab

در قسمت های قبل تولباکس Control System Tuning و قسمت های مختلف آن شرح داده شد. در این قسمت نحوه طراحی کنترلر موتور DC را با این تولباکس آموزش می دهیم. بدین منظور ساختار کنترلی زیر را در نظر بگیرید:

DC Motor Contoller Design With SISO (1)

توجه کنید که در بعضی از کاربردها استفاده از یک حلقه کنترلی کافی نمی باشد و نمی تواند نیازهای کنترلی را پاسخ دهد بدین منظور از چند حلقه کنترلی استفاده می شود.
ساختار کنترلی بالا زاویه موتور DC را کنترل می کند. همان طور که مشخص است یک انتگرال گیر به حلقه خارجی اضافه شده است.
هدف از طراحی برای این مثال کمینه کردن زمان نشت حلقه بسته برای ورودی پله می باشد بطوری که حلقه داخلی دارای بهره فاز (Phase Margin) حداقل 65 درجه و حداکثر پهنای باند باشد.
برای طراحی طراحی کنترلر موتور DC در این مثال باید بترتیب زیر عمل کنیم:

  • بدست آوردن مدل ریاضی موتور DC

  • انتخاب ساختار مناسب و وارد کردن مدل در تولباکس

  • طراحی حلقه داخلی

  • تنظیم حلقه خارجی

  • ارزیابی طراحی بمنظور برآورده شدن نیازهای آن

بدست آوردن مدل ریاضی موتور DC :


همان طور که در مطالب قبلی اشاره شد معادلات موتور DC بصورت زیر می باشد:

DC Motor Contoller Design With SISO (14) 

توجه کنید چون ورودی سیستم را ولتاژ آرمیچر و خروجی آن را سرعت چرخش در نظر گرفته ایم پس تابع انتقال سیستم بصورت زیر محاسبه می شود:

DC Motor Contoller Design With SISO (15)

برای ساختن مدل موتور DC در متلب ابتدا بوسیله دستورات زیر در Command Windows پارامترهای موتور را تعریف می کنیم:

R = 2.0;            % Ohms
L = 0.5;          % Henrys
Km = 0.1; Kb = 0.1; % Torque and back emf constants
B = 0.2;          % Nms
J = 0.02;         % kg.m^2/s^2

 

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

h1 = tf(Km,[L,R]);  % Armature
h2 = tf(1,[J, Kf]); % Equation of motion
dcm = ss(h2) *h1;   % w = h2 cascaded with h1
dcm = feedback(dcm, Kb, 1, 1);% Closes back emf loop

 

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

DC Motor Contoller Design With SISO (2)
همان طور که مشخص است چون این دو ساختار با هم متفاوت است می توانیم با ایجاد تغییراتی شکل اصلی را متناسب با یکی از این ساختارها دستکاری کنیم. بدین منظور بلوک کنترلی زیر را در نظر می گیریم:

DC Motor Contoller Design With SISO (3)

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

G = dcm*tf(1,[1,0]); % Motor with integrator; output is theta
C2 = tf('s');        % Differentiator

تا اینجا مدل ریاضی موتور DC را در محیط متلب تعریف کرده ایم.

انتخاب ساختار مناسب و وارد کردن مدل در تولباکس:

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

sisotool

 

با وارد شدن به قسمت Control Architecture مطابق شکل زیر ساختار مناسب را انتخاب می کنیم:

DC Motor Contoller Design With SISO (4)

حال باید مدل های ساخته شده را وارد محیط تولباکس کنیم. بدین منظور از قسمت System Data توابع G و C2 را از محیط workspace وارد می کنیم:

DC Motor Contoller Design With SISO (5)
اگر توابع را صحیح وارد کنید پنجره زیر نمایش داده می شود:

DC Motor Contoller Design With SISO (6)

حال به تب Graphical Tuning رفته و مطابق شکل زیر نمودارهای روت لوکاس و بود را انتخاب می کنیم:

DC Motor Contoller Design With SISO (7)

اگر بر روی گزینه Show Design Plot کلیک کنید محیط گرافیکی زیر نمایش داده می شود:

DC Motor Contoller Design With SISO (8)

 

طراحی حلقه داخلی:

توجه کنید که همیشه باید ابتدا حلقه های داخلی را طراحی کنید و سپس به طراحی حلقه های خارجی بپردازید.
برای طراحی حلقه داخلی به تب Architecture رفته تا اثر حلقه خارجی را حذف کنیم. بدین منظور :
1) بر روی Loop Configuration کلیک کنید.
2) گزینه Open-Loop Output of C2 را انتخاب کنید تا تاثیر کنترل کننده C1 حذف شود.
3) روی گزینه Highlight feedback loop کلیک کنید تا ساختار کنترلی زیر نمایش داده شود:

DC Motor Contoller Design With SISO (9)

همان طور که مشخص است حلقه خارجی که بصورت خاکستری نشان داده شده است حذف شده است.
حال مطابق شکل زیر به پنجره SISO Design Graphical editor رفته و با استفاده از منحنی Bode مقدار بهره را افزایش داده تا به حاشیه فاز 65 درجه برسیم:

DC Motor Contoller Design With SISO (10)

در این حالت مقدار بهره برای C2 حدود 16.1 می شود و طراحی حلقه داخلی تمام می شود.


تنظیم حلقه خارجی:


هدف از تنظیم حلقه خارجی کمینه کردن زمان نشت می باشد. توجه داشته باشید چون حلقه خارجی حلقه داخلی را نیز دربرمی گیرد بنابراین تنظیم آن بر کل سیستم تاثیرگذار می باشد.
برای طراحی حلقه خارجی بصورت زیر عمل می کنیم:
1) به تب Analysis Plot رفته و گزینه Closed-Loop r to y را انتخاب کنید.
2) گزینه Step را از قسمت Plot 1 انتخاب کنید.
3) در صفحه باز شده راست کلیک کرده و از قسمت Characteristics گزینه Settling Time را انتخاب کنید تا زمان نشت مانند شکل زیر نشان داده شود:

DC Motor Contoller Design With SISO (11)

همان طور که مشخص است زمان نشت تقریباً حدود 79 ثانیه می باشد که خیلی زیاد است.
به قسمت SISO Design Graphical editor بروید و مقدار بهره کنترل کننده C1 را از نمودار روت لوکاس افزایش دهید. در بهره حدود 90.2 جفت قطب مختلط بسمت کند کردن ثابت زمانی و قطب سوم به سمت سریع کردن آن حرکت می کنند. همان طور که مشخص است با تغییر بهره پاسخ حلقه بسته نیز تغییر می کند که باید مبادله ای بین آنها ایجاد کرد که بنظر بهره 90.2 مناسب ترین بهره میان زمان جهش و زمان نشت می باشد:

DC Motor Contoller Design With SISO (12)


      
بررسی طراحی بمنظور برآورده شدن نیازهای آن:


در این قسمت باید طراحی انجام شده مورد ارزیابی قرار بگیرد. بدین منظور اگر به منحنی پاسخ پله برگردیم مشاهده می کنیم که زمان نشت 0.783 ثانیه می باشد که خیلی کمتر از مقدار 78.9 ثانیه اولیه می باشد:

DC Motor Contoller Design With SISO (13)

چون زمان نشت حدود 0.8 ثانیه و حاشیه فاز حلقه داخلی 65 درجه می باشد پس طراحی انجام شده مناسب و قابل قبول می باشد.

برای دریافت فایل شبیه سازی شده بر روی عکس زیر کلیک کنید.

Download


 

 

Analysis Plots Architecture Automated Tuning Blocks Blocks and Signals Bode close loop Command Windows compensator Compensator Editor Control Architecture Control System Tuning control toolbox DC feedback feedback loop Graphical Tuning IMC IMC Tuning loop Loop shaping Loop shaping Tuning LQG LQG Tuning Matlab matlab control toolbox matlab toolbox Nichols open loop Optimization-Based Tuning phase margin PID PID tuning plant plot rise time Root locus Sample Time Sample Time Conversion settling time Signals SISO Design SISO Design Task sisotool step response toolbox tune tuning tuning toolbox workspace انتگرال گیر بلوک دیاگرام سیستم بلوک دیاگرام کلی یک سیستم بهره جبرانساز بهره فاز بهره، صفر و قطب برای جبرانساز بود پاسخ پله پهنای باند پهنای باند حلقه باز تابع انتقال سیستم تابع پیش‌فیلتر تابع تبدیل سیستم تابع تبدیل فیدبک تابع جبرانساز تنظیم تنظیم بر اساس بهینه سازی تنظیم به روش (Loop Shaping) تنظیم به روش (LQG) تنظیم به روش کنترل مدل داخلی تنظیم حلقه خارجی تنظیم کنترل کننده PID تولباکس تولباکس Control System Tuning تولباکس های نرم افزار Matlab جبرانساز چند حلقه کنترلی حلقه حلقه فیدبک رفتار سیستم روت لوکاس زاویه موتور زمان جهش زمان نشت سرعت چرخش صفر جبرانساز صفر و قطب جبرانساز طراحی حلقه داخلی طراحی کنترل کننده طراحی کنترل کننده موتور DC فیدبک پایدارکننده قطب جبرانساز قطب مختلط کمینه کردن زمان نشت کنترل کنترل کننده متلب محیط workspace محیط آنالیز منحنی ها محیط تعیین ساختار سیستم محیط تنظیم اتوماتیک محیط گرافیکی تنظیم محیط ویرایش جبرانساز مدل ریاضی موتور DC مشتق گیر خالص معادلات موتور DC منحنی منحنی Bode منحنی بود منحنی روت لوکاس منحنی نیکولز موتور DC نرم افزار Matlab نگهدارنده مرتبه صفر نویز نیکولز ولتاژ آرمیچر یک حلقه کنترلی

10 Comments

alireza

درباره10 سال ago

با سلام در مورد درایو موتور های القایی نیز کار کنید چون اسم سایتون هم موتودرایو است می خواستم در مورد درایو های موتورهای القایی کار کنید و یک شبیه سازی هم داشته باشید . ممنون

پاسخ

Admin

درباره10 سال ago

در لینک زیر کنترل V/f شرح داده شده است:

https://motodrive.ir/%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%A7%D9%84%D9%82%D8%A7%DB%8C%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84/

در لینک زیر نیز کنترل برداری موتور القایی توضیح داده شده است:

https://motodrive.ir/%D8%B1%D9%88%D8%B4-%D9%87%D8%A7%DB%8C-%DA%A9%D9%86%D8%AA%D8%B1%D9%84-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%A7%D9%84%D9%82%D8%A7%DB%8C%DB%8C-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85/

پاسخ

alireza

درباره10 سال ago

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

پاسخ

Admin

درباره10 سال ago

لطفاً سوالات خود را در پست مربوط بهمان موضوع طرح کنید

بهترین کتاب برای درایو موتورهای القایی کتاب Sensorless Vector and Direct Torque Control نوشته Peter Vas می باشد

پاسخ

ابوطالب دیلم

درباره10 سال ago

با سلام واحترام شما زحمت می کشیدکنترلهارا انجام میدهید.اگر بتوانید کارتون رابا بهینه سازی این کنترل ها انجام دهید مثل الگوریتم بهینه سازی والگوریتم های دیگر خیلی جالب می شودالبته به همراه آموزش باتشکر

پاسخ

Admin

درباره10 سال ago

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

پاسخ

پرویز

درباره8 سال ago

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

پاسخ

Admin

درباره8 سال ago

در کتابخانه simpower مقاومت رئوستا وجود ندارد. برای حل این مشکل دو راه وجود دارد: یا معادلات سیستم مورد نظرتان را باید تبدیل به بلوک دیاگرام کنید و یا از کتابخانه simelectronic استفاده کنید که آن هم مشکلات خاص خودش را دارد.

پاسخ

ahura

درباره6 سال ago

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

پاسخ

Admin

درباره6 سال ago

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

پاسخ

Leave a Comment

Please be polite. We appreciate that.
Your email address will not be published and required fields are marked