خطای حالت ماندگار — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

۸۳۸۹ بازدید
آخرین به‌روزرسانی: ۱۸ اردیبهشت ۱۴۰۲
زمان مطالعه: ۵۰ دقیقه
دانلود PDF مقاله
خطای حالت ماندگار — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

در آموزش‌های پیشین مجله فرادرس، مباحث مربوط به نمایش سیستم‌های کنترل را بیان کردیم. تحلیل و طراحی سیستم‌های کنترل، مبتنی بر سه ویژگی مهم پاسخ گذرا، پایداری و خطای حالت ماندگار است. در این آموزش، درباره خطای حالت ماندگار بحث خواهیم کرد.

997696
محتوای این مطلب جهت یادگیری بهتر و سریع‌تر آن، در انتهای متن به صورت ویدیویی نیز ارائه شده است.

تعریف خطای حالت ماندگار

«خطای حالت ماندگار» (Steady-State Error)، اختلاف بین ورودی و خروجی سیستم در زمان طولانی (t t \to \infty ) برای یک ورودی آزمون است.

ورودی‌های آزمون متداول در جدول زیر آورده شده‌اند.

ورودی‌های پله

خطای حالت ماندگار را با esse _ {s s } نشان می‌دهیم و با استفاده از قضیه مقدار نهایی، داریم:

ess=limte(t)=lims0E(s) \large e _ { s s } = \lim _ { t \to \infty } e ( t ) = \lim _ { s \to 0 } E ( s )

که در آن E(s) E (s ) تبدیل لاپلاس سیگنال خطای e(t) e ( t ) است.

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

خطای حالت ماندگار برای سیستم با فیدبک واحد

نمودار بلوکی سیستم کنترل حلقه‌بسته زیر را در نظر بگیرید که فیدبک واحد منفی دارد.

سیستم با فیدبک واحد

در نمودار بلوکی بالا، R(s) R(s ) تبدیل لاپلاس سیگنال ورودی مرجع r(t) r(t)، و C(s)C(s) تبدیل لاپلاس سیگنال خروجی c(t)c(t) است.

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

C(s)R(s)=G(s)1+G(s) \large \frac { C ( s ) } { R ( s ) } = \frac { G ( s ) } { 1 + G ( s ) }

در نتیجه، خروجی سیستم برابر است با:

C(s)=R(s)G(s)1+G(s) \large C ( s ) = \frac { R ( s ) G ( s ) } { 1 + G ( s ) }

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

E(s)=R(s)C(s) \large E ( s ) = R ( s ) - C ( s )

با جایگذاری خروجی C(s) C(s) در معادله خطای اخیر، داریم:

E(s)=R(s)R(s)G(s)1+G(s)E(s)=R(s)+R(s)G(s)R(s)G(s)1+G(s)E(s)=R(s)1+G(s) \large E ( s ) = R ( s ) - \frac { R ( s ) G ( s ) } { 1 + G ( s ) } \\ \large \Rightarrow E ( s ) = \frac { R ( s ) + R ( s ) G ( s ) - R ( s ) G ( s ) } { 1 + G ( s ) } \\ \large \Rightarrow E ( s ) = \frac { R ( s ) } { 1 + G ( s ) }

با استفاده از قضیه مقدار نهایی، مقدار خطای حالت ماندگار برابر است با:

ess=lims0sR(s)1+G(s) \large e _ { s s } = \lim _ { s \to 0 } \frac { s R ( s ) } { 1 + G ( s ) }

جدول زیر، مقدار خطای حالت ماندگار و ثابت انتگرال را برای سیگنال‌های ورودی استاندارد مانند پله واحد، شیب واحد و سهمی واحد نشان می‌دهد.

سیگنال ورودیخطای حالت ماندگار ess \large e _{ss} ثابت خطا
پله واحد 11+Kp \large \frac{1}{1+K_p}  Kp=lims0G(s) \large K_p=\lim_{s \to 0}G(s)
شیب واحد 1Kv \large \frac{1}{K_v}  Kv=lims0sG(s) \large K_v=\lim_{s \to 0}sG(s)
سهمی واحد 1Ka \large \frac{1}{K_a}  Ka=lims0s2G(s) \large K_a=\lim_{s \to 0}s^2G(s)

که در آن Kp K_p، KvK_v و KaK_a به ترتیب، ثابت خطای موقعیت، ثابت خطای سرعت و ثابت خطای شتاب هستند. این ثابت‌ها، ثابت خطای استاتیکی نام دارند.

نکته ۱: اگر هر یک از ورودی‌های بالا مقدار دامنه‌ای بیشتر از یک داشته باشد،‌ خطای حالت ماندگار متناظر را در آن ضرب می‌کنیم.

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

مثال

می‌خواهیم خطای حالت ماندگار سیگنال ورودی r(t)=(5+2t+t22)u(t) r ( t ) = \left ( 5 + 2 t + \frac { t ^ 2 } { 2 } \right ) u ( t ) را برای سیستم کنترل حلقه‌بسته‌ای با فیدبک واحد منفی و تابع تبدیل حلقه‌باز G(s)=5(s+4)s2(s+1)(s+20) G ( s ) = \frac { 5 ( s + 4 ) } { s ^ 2 ( s + 1 ) ( s + 2 0 ) } محاسبه کنیم.

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

سیگنال ورودیثابت خطاخطای حالت ماندگار
r1(t)=5u(t) \large r _ 1 ( t ) = 5 u ( t ) Kp=lims0G(s)= \large K _ p = \lim _ { s \to 0 } G ( s ) = \infty ess1=51+kp=0 \large e _ { s s 1 } = \frac { 5 } { 1 + k _ p } = 0
r2(t)=2tu(t) \large r _ 2 ( t ) = 2 t u ( t ) Kv=lims0sG(s)= \large K _ v = \lim _ { s \to 0 } s G ( s ) = \infty ess2=2Kv=0 \large e _ { s s 2 } = \frac { 2 } { K _ v } = 0
r3(t)=t22u(t) \large r _ 3 ( t ) = \frac { t ^ 2 } { 2 } u ( t ) Ka=lims0s2G(s)=1 \large K _ a = \lim _ { s \to 0 } s ^ 2 G ( s ) = 1 ess3=1ka=1 \large e _ { s s 3 } = \frac { 1 } { k _ a } = 1

خطای حالت ماندگار کل، از مجموع خطاهای حالت ماندگار به دست می‌آید:

ess=ess1+ess2+ess3ess=0+0+1=1 \large e _ { s s } = e _ { s s 1 } + e _ { s s 2 } + e _ { s s 3 } \\ \large \Rightarrow e _ { s s } = 0 + 0 + 1 = 1

بنابراین، خطای خالت ماندگار ess e_ {ss}، برابر با یک است.

خطای حالت ماندگار برای سیستم‌های فیدبک غیر واحد

نمودار بلوکی سیستم کنترل حلقه‌بسته زیر را در نظر بگیرید که فیدبک غیر واحد منفی دارد.

فیدبک غیرواحد منفی

برای جلوگیری از تکرار محاسبات طولانی و استفاده از فرمول‌هایی که در بالا به دست آوردیم، سیستم فیدبک غیر واحد را به سیستم فیدبک واحد تبدیل می‌کنیم.

برای این کار، یک مسیر فیدبک واحد مثبت و یک مسیر فیدبک واحد منفی را به نمودار بلوکی اضافه می‌کنیم. نمودار بلوکی جدید، به صورت زیر درخواهد آمد:

نمودار بلوکی جدید

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

نمودار بلوکی معادل

نمودار بلوکی شکل بالا، یک سیستم کنترل حلقه‌بسته با فیدبک واحد منفی با تابع تبدیل  G(s)1+G(s)H(s)G(s) \frac{G(s)}{1+G(s)H(s)-G(s)} به‌جای G(s) G(s) است. اکنون می‌توانیم خطای حالت ماندگار را با استفاده از فرمول‌هایی که بیان شد محاسبه کنیم.

نوع سیستم و خطای حالت ماندگار

با دانستن ثابت‌های خطای استاتیکی و نوع سیستم، می‌توان خطای حالت ماندگار را مشخص کرد. «نوع سیستم» (System Type)، به عنوان تعداد انتگرال‌گیرهای خالصی تعریف می‌شود که در مسیر پیش‌ِروی یک سیستم فیدبک واحد قرار دارند.

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

نوع سیستم

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

سیستم نوع صفرورودی پلهورودی شیب ورودی سهموی
فرمول خطای حالت ماندگار 1/(1+Kp) \large 1/(1+K_p)1/Kv\large 1/ K_v 1/Ka \large 1/K_a
ثابت خطای استاتیکی ثابت Kp= \large K_p =  Kv=0 \large  K_v = 0 Ka=0 \large K_a = 0
خطا  1/(1+Kp) \large  1 / (1+K_p ) بی‌نهایتبی‌نهایت
سیستم نوع یکورودی پلهورودی شیب ورودی سهموی
فرمول خطای حالت ماندگار 1/(1+Kp) \large 1/(1+K_p)1/Kv\large 1/ K_v 1/Ka \large 1/K_a
ثابت خطای استاتیکی بی‌نهایت Kp= \large K_p = ثابت Kv= \large K_v = Ka=0 \large K_a = 0
خطا  0\large 01/Kv \large 1/ K_vبی‌نهایت
سیستم نوع دوورودی پلهورودی شیب ورودی سهموی
فرمول خطای حالت ماندگار 1/(1+Kp) \large 1/(1+K_p)1/Kv\large 1/ K_v 1/Ka \large 1/K_a
ثابت خطای استاتیکی بی‌نهایت Kp= \large K_p = بی‌نهایت Kv= \large K_v = ثابت Ka= \large K_a =
خطا 0\large 0 0\large 01/Ka \large 1/K_a

مثال

نمودار بلوکی زیر را در نظر بگیرید.

نمودار بلوکی

که در آن، تابع تبدیل GG به صورت زیر است:

G(s)=K(s+3)(s+5)s(s+7)(s+8) \large G(s) = \frac { K (s+3) ( s + 5 ) } { s ( s + 7 ) ( s + 8 )}

از آن‌جایی که سیستم نوع یک است، خطای حالت ماندگار برای ورودی پله وجود ندارد و برای ورودی سهمی، خطا بی‌نهایت خواهد بود. تنها ورودی که با اعمال آن به سیستم، خطای حالت ماندگار محدود خواهیم داشت، ورودی شیب است. می‌خواهیم KK را به گونه‌ای تعیین کنیم که خطای حالت ماندگار سیستم حلقه‌بسته برای ورودی مرجع شیب، برابر با 0.10.1 باشد. ابتدا بهره K=1K=1 را با استفاده از نرم‌افزار متلب بررسی می‌کنیم:

1s = tf('s');
2G = ((s+3)*(s+5))/(s*(s+7)*(s+8));
3T = feedback(G,1);
4t = 0:0.1:25;
5u = t;
6[y,t,x] = lsim(T,u,t);
7plot(t,y,'y',t,u,'m')
8xlabel('Time (sec)')
9ylabel('Amplitude')
10title('Input-purple, Output-yellow')

خطای حالت ماندگار

همان‌طور که می‌بینیم، خطای حالت ماندگار این سیستم بسیار بزرگ است، زیرا در زمان ثانیه 2020، خروجی تقریباً 1616 و ورودی 20 20 است (خطای حالت ماندگار تقریباً برابر با 44 است). مسئله را به شکل دیگری حل می‌کنیم.

همان‌طور که می‌دانیم،‌ خطای حالت ماندگار باید برابر با 0.10.1 باشد. بنابراین، برای حل مسئله داریم:

e()=1Kv=0.1 \large e ( \infty ) = \frac { 1 } { K _ v} = 0.1

Kv=10=lims0sG(s)=15K56K=37.33 \large K_v = 10 = \lim_{s \to 0} sG(s) = \frac{15K} { 56 } \Rightarrow K = 37.33

اکنون پاسخ به ورودی شیب را برای K=37.33 K = 37.33 بررسی می‌کنیم:

1K = 37.33 ;
2s = tf('s');
3G = (K*(s+3)*(s+5))/(s*(s+7)*(s+8));
4sysCL = feedback(G,1);
5t = 0:0.1:50;
6u = t;
7[y,t,x] = lsim(sysCL,u,t);
8plot(t,y,'y',t,u,'m')
9xlabel('Time (sec)')
10ylabel('Amplitude')
11title('Input-purple, Output-yellow')

خروجی

برای آنکه دید بهتری داشته باشیم، بزرگ‌نمایی پاسخ را می‌بینیم. بدین منظور، پاسخ را بین زمان‌های 39.939.9 و 40.140.1 ثانیه انتخاب می‌کنیم:

1axis([39.9,40.1,39.9,40.1])

بزرگ‌نمایی پاسخ

اگر محاسبات مربوط به شکل بالا را انجام دهیم، می‌بینیم که خطای حالت ماندگار، دقیقاً همان مقدار 0.10.1 مطلوب است.

اکنون مسئله را به صورت زیر تغییر می‌دهیم:

سیستم کنترل

اکنون می‌خواهیم C(s)C(s) را به گونه‌ای تعیین کنیم که برای یک ورودی پله، به خطای حالت ماندگار صفر برسیم.

با توجه به جدول‌هایی که ارائه کردیم، مي‌توان گفت که خطای حالت ماندگار سیستم نوع دو به ورودی شیب، برابر با صفر است. بنابراین، می‌توان با اضافه کردن یک انتگرال‌گیر (یک قطب در مبدأ)، به سادگی خطای حالت ماندگار را صفر کرد.

1s = tf('s');
2P = ((s+3)*(s+5))/(s*(s+7)*(s+8));
3C = 1/s;
4sysCL = feedback(C*P,1);
5t = 0:0.1:250;
6u = t;
7[y,t,x] = lsim(sysCL,u,t);
8plot(t,y,'y',t,u,'m')
9xlabel('Time (sec)')
10ylabel('Amplitude')
11title('Input-purple, Output-yellow')

پاسخ سیستم

اگر مقداری بزرگ‌نمایی کنیم، می‌بینیم که اندکی نوسان وجود دارد. البته در حالت ماندگار، خطا مطابق انتظار برابر با صفر است. شکل زیر، پاسخ حول ثانیه 240240 را نشان می‌دهد.

1axis([239.9,240.1,239.9,240.1])

پاسخ

همان‌طور که می‌بینیم، خطای حالت ماندگار صفر است.

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

در صورتی که مباحث بیان‌شده برای شما مفید بوده و می‌خواهید درباره موضوعات مرتبط، مطالب بیشتری یاد بگیرید، پیشنهاد می‌کنیم به آموزش‌های زیر مراجعه کنید:

^^

فیلم‌ های آموزش خطای حالت ماندگار — به زبان ساده (+ دانلود فیلم آموزش گام به گام)

فیلم آموزشی خطای حالت ماندگار برای سیستم با فیدبک واحد

دانلود ویدیو

فیلم آموزشی خطای حالت ماندگار برای سیستم‌های فیدبک غیر واحد

دانلود ویدیو

فیلم آموزشی خطای حالت ماندگار با متلب

دانلود ویدیو
بر اساس رای ۱۸ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Tutorialspoint(Control Tutorials for MATLAB and Simulink (CTMS
۲ دیدگاه برای «خطای حالت ماندگار — به زبان ساده (+ دانلود فیلم آموزش گام به گام)»

سلام خسته نباشید.ممنون از مطالب مفیدتون.ممنونتون میشم اگه بفرمایید کدام حالت offsetخطای بیشتری داره؟واینکه برای جلوگیری از آن باید چیکار کنیم؟

بسیار عالی و مفید

نظر شما چیست؟

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