شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
جایابی قطب — از صفر تا صد (+ دانلود فیلم آموزش گام به گام)
۳۹۱۳ بازدید
آخرین بهروزرسانی: ۱۷ اردیبهشت ۱۴۰۲
زمان مطالعه: ۱۰۶ دقیقه
دانلود PDF مقاله
در آموزشهای پیشین مجله فرادرس، با نمایش فضای حالت سیستمهای کنترل و خطیسازی آنها آشنا شدیم. همچنین، برخی از روشهای تحلیل این سیستمها از قبیل خطای حالت ماندگار، معیار پایداری راث-هرویتز و مکان هندسی ریشهها را بیان کردیم. در این آموزش، با یکی از روشهای طراحی کنترل کننده در فضای حالت به نام جایابی قطب آشنا میشویم. جایابی قطب، یکی از روشهای کنترل است که در آن، قطبهای سیستم حلقه بسته در محلهای مطلوب قرار داده میشوند. در ادامه، این روش را توضیح میدهیم.
به طور خلاصه میتوان گفت که در جایابی قطب (Pole Placement) در فضای حالت، میخواهیم بهره فیدبک K به گونهای محاسبه کنیم که قطبهای سیستم حلقه بسته در مکانهای مطلوب قرار گیرند.
جایابی قطب
سیستم فضای حالت زیر را در نظر بگیرید:
که در آن، ماتریس D را برابر با صفر در نظر گرفتهایم. فرض میکنیم سیستم مورد نظر کاملاً کنترل پذیر است. سیستم را کنترل پذیر (Controllable) میگوییم اگر همیشه یک ورودی کنترل u وجود داشته باشد که با آن بتوان حالتهای سیستم را در زمان محدود به وضعیت جدید دیگری انتقال داد.
به طور خاص، یک سیستم LTI کنترل پذیر است اگر و فقط اگر رتبه (Rank) ماتریس کنترل پذیری C کامل باشد (یعنی اگر تعداد حالتهای سیستم را n فرض کنیم، رتبه ماتریس C باید برابر با n باشد). ماتریس کنترل پذیری (Controllability Matrix) برای سیستمی با ماتریس حالت A و ماتریس ورودی B به صورت زیر تعریف میشود:
C=[BABA2B⋯An−1B]
رتبه یک ماتریس با تعداد سطرها یا ستونهایی از ماتریس که از یکدیگر استقلال خطی دارند متناظر است.
به بحث جایابی قطب بر میگردیم. تابع تبدیل G(s) متناظر با شکل ۱ به صورت زیر است:
G(s)=C(sI−A)−1B.
قطبهای حلقه باز سیستم، مقادیر ویژه ماتریس A هستند:
det(sI−A)=0.
در حالت کلی، برای جایابی قطبهای سیستم، یک کنترل کننده به آن اضافه میکنیم و میتوانیم آن را به صورتهای مختلف نشان دهیم. برای مثال، در فضای تابع تبدیل، نمایش بلوکیسیستم کنترل فیدبک واحد منفی با سیستم تحت کنترل G(s) و کنترل کننده KD(s) مطابق شکل زیر است.
در ادامه، روش جایابی قطب را با فیدبک حالت ارائه میکنیم.
جایابی قطب در فضای حالت
سیستم تکورودی شکل ۱ را با خروجی y=1x در نظر میگیریم (فرض میکنیم C=1 است):
با اعمال فیدبک، سیستم حلقه بسته به صورت زیر در خواهد آمد:
x˙y=Ax−BKx=(A−BK)x=x.
همانطور که میبینیم، با افزودن فیدبک، ماتریس A به A−BK تبدیل شده است. اکنون مطابق شکل ۳، سیستم حلقه باز را با فیدبک K و مرجع r کامل میکنیم. در نتیجه، تابع تبدیل حلقه بسته RY(s) به صورت زیر قابل محاسبه است:
قطبهای حلقه بسته، همان مقادیر ویژه ماتریس A−BK هستند. در نتیجه، با یافتن فیدبک K مناسب میتوان قطبهای سیستم حلقه بسته را به سادگی جایابی کرد.
جایابی قطب در فرم کانونی کنترل پذیر
اکنون فرض کنید مدل (A,B,C,D) سیستم را به فرم کانونی کنترل پذیر در اختیار داریم. فرمهای کانونی، فرمهای استانداردی از نمایش سیستم در فضای حالت هستند که محاسبات را سادهتر میکنند و با استفاده از تبدیلات خاصی میتوان سیستم را در قالب این فرمها بیان کرد. فرم کانونی کنترل پذیر به صورت زیر است:
از جبر خطی میدانیم که درایههای آخرین سطر ماتریس A که به فرم کانونی بالا نوشته شده است، قرینه ضرایب معادله مشخصه را نشان میدهند. مجدداً سیستم را به فرم کانونی در نظر بگیرید:
که همان معادله مشخصه سیستم را نشان میدهد. به ضرایب این معادله و ضرایب سطر آخر ماتریس حالت در فرم کانونی کنترل پذیر توجه کنید.
با استفاده از آنچه که گفته شد، میتوانیم قطبهای حلقه بسته را با فیدبک حالت جایابی کنیم. با اعمال فیدبک K به سیستم در فرم کانونی، ماتریس A−BK به صورت زیر محاسبه میشود:
همانطور که میبینیم، A−BK نیز یک فضای حالت به فرم کانونی است. در واقع، اکنون که ماتریس حالت سیستم حلقه بسته A−BK است، میتوانیم با استفاده از det(sI−(A−BK))=0 مقادیر ویژه سیستم حلقه بسته را محاسبه کنیم و با انتخاب K مناسب، آنها را در مکان مطلوب جای دهیم. معادله مشخصه سیستم حلقه بسته برابر است با:
مثال زیر، فرایند استفاده از فیدبک حالت برای جایابی قطب را به خوبی نشان میدهد.
مثال
سیستم زیر را در نظر بگیرید:
x˙A=Ax+Bu,=(−15−1587),B=(11).
فیدبک حالتی را پیدا کنید که قطبهای حلقه بسته را در −10±j قرار دهد.
حل: ابتدا کنترل پذیری سیستم را بررسی میکنیم. ماتریس کنترل پذیری سیستم برابر است با:
C=[11−7−8]
رتبه ماتریس بالا کامل است و در نتیجه، سیستم کنترل پذیر است.
در گام بعدی، برای سادگی در محاسبات، میتوانیم سیستم را به فرم کانونی کنترل پذیر تبدیل کنیم. بنابراین، از ماتریس تبدیل T استفاده میکنیم (در اینجا محاسبات مربوط به ماتریس تبدیل T آورده نشده است. برای آشنایی با نحوه محاسبه این ماتریس، آموزش نمایش فرمهای کانونی را مطالعه کنید). با اعمال این تبدیل، ماتریسهای A و B در فرم کانونی به دست میآیند:
T⟹AˉBˉ=(10−11)=TAT−1=(0−151−8),=TB=(01).
اکنون سیستم (Aˉ,Bˉ) را در اختیار داریم که نمایش کانونی کنترل پذیر است. حال میتوانیم با اعمال فیدبک u=−Kˉxˉ قطبهای سیستم را در −10±j قرار دهیم. با توجه به قطبها، معادله مشخصه مطلوب برابر است با:
(s+10+j)(s+10−j)=(s+10)2+1=s2+20s+101.
بنابراین، ماتریس سیستم حلقه بسته باید به صورت زیر باشد:
Aˉ−BˉKˉ=(0−1011−20).
از طرف دیگر، میدانیم:
Aˉ−BˉKˉ=(0−(15+kˉ1)1−(8+kˉ2)).
با برابر قرار دادن درایههای ماتریسها، مقادیر kˉ1=86 و kˉ2=12 به دست میآید. با توجه به این مقادیر، میتوان قانون کنترل را به صورت زیر نوشت:
u=−Kˉxˉ=−KKˉTx.
تا اینجا، قانون کنترل Kˉ را برای فرم کانونی سیستم به دست آوردهایم. تنها کاری که باقی میماند، این است که با استفاده از تبدیل T، فیدبک K را برای نمایش فضای حالت اصلی محاسبه کنیم:
K=KˉT=(8612)(10−11)=(86−74).
در نهایت، قانون کنترل فیدبک حالت مطلوب، برابر است با:
u=(−8674)(x1x2).
جایابی قطب در متلب
فرض کنید سیستمی با فرم کانونی کنترل پذیر زیر در اختیار داریم:
میخواهیم قطبهای حلقه بسته را در مکانهای −2+4i، −2−4i و −10 قرار دهیم. برنامه متلب مربوط به محاسبات فیدبک حالت به صورت زیر است:
1%--------------------------------------------------------------------------2% State Feedback Controller Design Using Pole Placement3% Technique4% By Siddharth Kaul5%--------------------------------------------------------------------------6%
7% x. = Ax + Bu8% y = Cx + Du9%
10% Given -------------------------------------------------------------------11MatrixA =[010;001;-1-5-6];12MatrixB =[0;0;1];13MatrixC =[100];14MatrixD =[0];15initialX =[1;0;0];16% Desired Poles are -------------------------------------------------------17desiredPoles =[-2+4i-2-4i-10];18% Feedback controller K becomes -------------------------------------------19% Note:- Using Ackerman Formula instead of Place to remove mismatching20% -------------------------------------------------------------------------21GainK =acker(MatrixA,MatrixB,desiredPoles);22disp('Feedback Gain Matrix: ');23disp(GainK);24% -------------------------------------------------------------------------25% Using this GainK in formula sI - (A- BK) we will get a new MatrixA. Using26% this new MatrixA finding our new System with this feedback controller27% gain.28% -------------------------------------------------------------------------29newMatrixA = MatrixA -(MatrixB*GainK);30newMatrixB =eye(3);31newMatrixC =eye(3);32newMatrixD =eye(3);33mysys =ss(newMatrixA,newMatrixB,newMatrixC,newMatrixD);34% Now Initial REsponse with the GainK -------------------------------------35timeT =0:.1:10;36x =initial(mysys,initialX,timeT);37x1 =[100]*x';38x2 =[010]*x';39x3 =[001]*x';40% Plotting the response ---------------------------------------------------41plot(timeT,x1,'r',timeT,x2,'b',timeT,x3,'g');42title('Response to initial Condition of State Variables');43xlabel('Time -->');44ylabel('Magnitude -->');45% -------------------------------------------------------------------------46% End of Program. Created By Siddharth Kaul47% -------------------------------------------------------------------------48
خروجی این برنامه، برابر است با:
Feedback Gain Matrix:
199 55 8
همانطور که شکل زیر نشان میدهد، با اعمال فیدبک به سیستم، حالتها پایدار شدهاند.
علاوه بر این، میتوانیم از دستو place متلب نیز به صورت زیر استفاده کنیم:
1K =place(A,B,[p1 p2 p3])
ورودیهای تابع place، ماتریسهای A و B نمایش فضای حالت سیستم و p1، p2 و p3 محل قطبهای مطلوب است. خروجی این تابع، فیدبک حالت K است.
اما در متلب، دستوری به نام ctrb نیز وجود دارد که با استفاده از آن میتوان کنترل پذیری سیستم را بررسی کرد. برای مثال، برنامه زیر را در نظر بگیرید:
برنامه بالا، ماتریس کنترل پذیری Co را محاسبه کرده و رتبه آن را با کمک دستور rank از طول ماتریس A کم میکند. اگر حاصل unco برابر با صفر باشد، یعنی رتبه کامل است و سیستم کنترل پذیر است. با توجه به خروجی برنامه بالا، در این مثال اخیر، سیستم کنترل پذیر نیست:
unco = 1
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
سید سراج حمیدی دانشآموخته مهندسی برق است و به ریاضیات و زبان و ادبیات فارسی علاقه دارد. او آموزشهای مهندسی برق، ریاضیات و ادبیات مجله فرادرس را مینویسد.
۳ دیدگاه برای «جایابی قطب — از صفر تا صد (+ دانلود فیلم آموزش گام به گام)»
Mo
عالی
oveissabzian
عالی
حمیدرضا
سلام
خیلی ممنون بابت سایت فوق العادتون.
امکانش هست فایل پی دی اف درسهایی که تو مجله فرادرس گذاشته میشه رو بذارین که خود فایل ها رو داشته باشیم که بعدا بخواین مطالعه کنیم؟
شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
عالی
عالی
سلام
خیلی ممنون بابت سایت فوق العادتون.
امکانش هست فایل پی دی اف درسهایی که تو مجله فرادرس گذاشته میشه رو بذارین که خود فایل ها رو داشته باشیم که بعدا بخواین مطالعه کنیم؟