این مثال نشان میدهد که چگونه میتوان جبرانکنندههای فیدبک و پیشخور را برای تنظیم دمای یک سیستم شیمیایی از طریق یک مبدل حرارتی طراحی کرد.
فرآیند مبدل حرارتی
یک راکتور شیمیایی به نام "مخزن همزن دار " در زیر به تصویر کشیده شده است. ورودی بالایی مایعاتی را که باید در تانک مخلوط شوند، تأمین میکند. دمای مایعات درون تانک باید با تنظیم مقدار بخار تأمین شده به مبدل حرارتی (لوله پایینی) از طریق شیر کنترل، ثابت نگه داشته شود. نوسانات دمای جریان ورودی، منبع اصلی اختلالات در این فرآیند هستند.
استفاده از دادههای اندازهگیریشده برای مدلسازی دینامیک مبدل حرارتی
برای استخراج مدل اول-مرتبه بهعلاوه زمان مرده از ویژگیهای مبدل حرارتی، یک اختلال گامدار در ولتاژ شیر V وارد کنید و تأثیر آن را بر دمای مخزن T در طول زمان ثبت کنید. پاسخ اندازهگیریشده در واحدهای نرمالشده در زیر نشان داده شده است:
heatex_plotdata
; title('Measured response to step change in steam valve voltage')
مقادیر t1 و t2 زمانهایی هستند که پاسخ به 28.3% و 63.2% از ارزش نهایی خود میرسد. میتوانید از این مقادیر برای برآورد ثابت زمان tau و زمان مرده theta در مبدل حرارتی استفاده کنید:
; t1 = 21.8; t2 = 36.0
tau = 3/2 * ( t2 - t1 )
theta = t2 - tau
دستورات به شکل زیر نمایان می شوند :
tau =
21.3000
theta =
14.7000
این محاسبات را با مقایسه پاسخ مرتبه اول به علاوه زمان مرده با پاسخ اندازهگیری شده، تأیید کنید:
; s = tf('s')
Gp = exp(-theta*s)/(1+tau*s)
به صورت زیر در متلب می آید :
= Gp
تابع انتقال پیوسته زمان
hold on, step(Gp), hold off
; title('Experimental vs. simulated response to step change')
پاسخ مدل و دادههای تجربی در توافق خوبی با یکدیگر هستند. آزمایش مشابهی به نام آزمون شوک میتواند برای تخمین پاسخ مرتبه اول به یک اختلال ناگهانی در دمای ورودی انجام شود. با مدلهای موجود برای تبادل حرارت و اختلال ورودی، ما آماده طراحی الگوریتم کنترل هستیم.
کنترل فیدبک دار
مدل بلوکی نمایشی از فرایند باز-کنترل در زیر نشان داده شده است.
شکل ۲: فرایند حلقه باز
تابع انتقال :
مدلسازی میکند که چگونه تغییر در ولتاژ V محرک باز شدن شیر بخار بر دمای مخزن T تأثیر میگذارد، در حالی که تابع انتقال
مدلها نشان میدهند که چطور تغییر دما در ورودی بر دمای T تأثیر میگذارد. برای تنظیم دمای مخزن T در اطراف یک نقطه تنظیم مشخص Tsp، میتوانیم از معماری بازخورد زیر برای کنترل باز شدن شیر (ولتاژ V) استفاده کنیم.
در این پیکربندی، کنترلکننده تناسبی-انتگرالی (PI)
ولتاژ V را بر اساس اختلاف دما بین دمای مورد نظر و دمای اندازهگیری شده (Tsp-T) محاسبه میکند. میتوانید از فرمولهای ITAE برای انتخاب مقادیر مناسب برای پارامترهای کنترلکننده استفاده کنید.
ولتاژ V را بر اساس فاصله Tsp-T بین دماهای مورد نظر و اندازهگیری شده محاسبه میکند. میتوانید از فرمولهای ITAE برای انتخاب مقادیر مناسب برای پارامترهای کنترلکننده استفاده کنید.
Kc = 0.859 * (theta / tau)^(-0.977)
tauc = ( tau / 0.674 ) * ( theta / tau )^0.680
; C = Kc * (1 + 1/(tauc*s))
برای بررسی عملکرد کنترلگر ITAE، حلقه بازخورد را ببندید و واکنش سیستم را به تغییر نقطه تنظیم شبیهسازی کنید:
; Tfb = feedback(ss(Gp*C),1)
step(Tfb), grid on
title('Response to step change in temperature setpoint T_{sp}')
ylabel('Tank temperature')
پاسخ نسبتاً سریع است و مقداری overshoot دارد. با بررسی حاشیههای پایداری تأیید میشود که حاشیه افزایش ضعیف است.
margin(Gp*C), grid
کاهش کنترل تناسبی Kc، ثبات را در عوض عملکرد تقویت میکند.
C1 = 0.9 * (1 + 1/(tauc*s)); % reduce Kc from 1.23 to 0.9
margin(Gp*C1), grid
step(Tfb,'b', feedback(ss(Gp*C1),1),'r')
legend('Kc = 1.23','Kc = 0.9')
کنترل پیشخور
به یاد داشته باشید که تغییرات در دمای ورودی، منبع اصلی نوسانات دما در مخزن هستند. برای مقابله با این اختلالات، گزینهای غیر از کنترل بازخورد، معماری پیشخور است که در زیر نشان داده شده است:
شکل ۴: کنترل پیشخور.
در این پیکربندی، کنترلکننده پیشبینی F از اندازهگیریهای دمای ورودی برای تنظیم باز شدن شیر بخار (ولتاژ V) استفاده میکند. کنترل پیشبینی بدین ترتیب تأثیر تغییرات دمای ورودی را پیشبینی و پیشدستی میکند.
محاسبات ساده نشان میدهد که انتقال کلی از اختلال دما d به دمای مخزن T بهصورت زیر است.
در واقع، نادرستیهای مدلسازی مانع از حذف دقیق اختلالات میشود، اما کنترل پیشخور به کاهش نوسانات دما ناشی از اختلالات ورودی کمک خواهد کرد. برای درک بهتر عملکرد طرح پیشخور، تأخیر ایدهآل پیشخور را ۵ ثانیه افزایش داده و واکنش به تغییر ناگهانی دما در ورودی را شبیهسازی کنید.
Gd = exp(-35*s)/(25*s+1);
F = -(21.3*s+1)/(25*s+1) * exp(-25*s);
Tff = Gp * ss(F) + Gd; % d->T transfer with feedforward control
step(Tff), grid
title('Effect of a step disturbance in inflow temperature')
ylabel('Tank temperature')
کنترل ترکیبی فیدفوروارد و فیدبک
کنترل فیدبک به طور کلی برای دنبالکردن نقطه هدف مناسب است، در حالی که کنترل فیدفوروارد میتواند در رد کردن اختلالات اندازهگیریشده کمک کند. در ادامه به مزایای ترکیب هر دو روند میپردازیم. معماری کنترل مربوطه در زیر نشان داده شده است:
شکل 5: کنترل پیشخور-بازخورد.
از connect برای ساخت مدل حلقه بسته مرتبط از Tsp,d به T استفاده کنید. ابتدا کانالهای ورودی و خروجی هر بلوک را نامگذاری کنید، سپس بگذارید connect به طور خودکار دیاگرام را متصل کند.
Gd.u = 'd'; Gd.y = 'Td';
Gp.u = 'V'; Gp.y = 'Tp';
F.u = 'd'; F.y = 'Vf';
C.u = 'e'; C.y = 'Vc';
Sum1 = sumblk('e = Tsp - T');
Sum2 = sumblk('V = Vf + Vc');
Sum3 = sumblk('T = Tp + Td');
Tffb = connect(Gp,Gd,C,F,Sum1,Sum2,Sum3,{'Tsp','d'},'T');
برای مقایسه پاسخهای حلقه بسته با و بدون کنترل فیدفوروارد، تابع انتقال حلقه بسته مربوط به پیکربندی تنها با بازخورد را محاسبه کنید:
C.u = 'e'; C.y = 'V';
Tfb = connect(Gp,Gd,C,Sum1,Sum3,{'Tsp','d'},'T');
حالا دو طراحی را مقایسه کنید:
step(Tfb,'b',Tffb,'r--'), grid
title('Closed-loop response to setpoint and disturbance step change')
ylabel('Tank temperature')
legend('Feedback only','Feedforward + feedback')
دو طراحی در ردیابی نقطه تنظیم عملکرد یکسانی دارند، اما افزودن کنترل پیشبین به وضوح برای ردگیری اختلالات مفید است. این موضوع همچنین در نمودار باده حلقه بسته قابل مشاهده است.
bodemag(Tfb,'b',Tffb,'r--',{1e-3,1e1})
legend('Feedback only','Feedforward + feedback','Location','SouthEast')
شبیهسازی تعاملی
برای کسب بینش بیشتر و تنظیم تعاملی ضرایب پیشخور و پسخور، از رابط کاربری گرافیکی (GUI) و مدل سیمولینک® همراه استفاده کنید. برای راهاندازی رابط کاربری، دستور زیر را اجرا کنید .
heatex
دیدگاه خود را بنویسید