صفحه 1:
Controller Realization
A control algorithm which takes the form of a z-transform polynomial must be realized in the
computer in the form of a program containing unit delays, constant multipliers, and adders
A given controller transfer function can be realized in many different ways. Mathematically
the alternative realizations are all equivalent, differing only in the way they are implemented
Different realizations have different computational efficiencies. different sensitivities to pa-
rameter errors, and different programming efforts are needed in each case. :
صفحه 2:
DIRECT STRUCTURE
The transfer function D(z) of a digital controller can be represented in general by a ratio of
two polynomials
صفحه 3:
R(z) = E(2)
n=
5 زسوارط ر 5 -ه
5
دص
۸۰زا
صفحه 4:
صفحه 5:
صفحه 6:
Direct Noncanonical Structure
io
E@) - د مك
j= j=
te = Saye) — dyin).
صفحه 7:
صفحه 8:
> Uy,
5
صفحه 9:
CASCADE REALIZATION
Uk = Pe + Org.
re = ee — Dire — bore
My = dork + aire + dark.
صفحه 10:
drawn vertically
صفحه 11:
PARALLEL REALIZATION
Dy) =—— = a) 1 ‘Ona
1+ Bz 3
(4)
Tk = ek — Brea 5
Uy = ary.
a, +e
1+ 1 +
< (2)وظ
هط بط به > وه
٩+ ۱۷۸۷۱٩۲۲۰ 00 > لا
صفحه 12:
PID controller as a parallel structure
Ph = ek + Pas
.لدي يهام د وو
ty = we + نج وم
Up
We
صفحه 13:
PID implementation as a direct canonical structure
_ Ky(L—z")4+ KpT/Ti + (KpTa/T) —2'P
=e oo
z+ Ky T/T; + KpTa/T +(K pTal Te
1 اج
_ Ky +K T/T; + KpTa/T — (Kp +2KpTa/T)z-! + (Kp Ta/T)Z7
Ky -K, AK pTa/ Tz!
which is in the form
where
اام مه ay=—Kp(A+2Ta/T), a2 = KpTa/T
and
b=-l, b=
صفحه 14:
PID implementation as a direct canonical structure
hk
Uj
K,A+T/TATp/T)
-K,(1+2Tp/T)
اوآ وه
241
صفحه 15:
Read setpoint, sy
Read output. yy | Input section
Calculate error, &,
1 1
Initialize A/D.
Read reference, s,
(Calculate output, yy) Output section
1 1
Initialize
: Update variables. | Update seetion
Timer 2 ۳
interrupts 1
Return from
rupt
Controller implementation: (a) main program; (b) interrupt service routine
program Various variables, as well as the A/D converter and the mer interrupt mechamsm,
are initialized. The timer is set to interrupt at an interval equivalent to the sampling interval
of the required digital controller, The main program then eniers a Joop wailing for the timer
interrupts to occur. Whenever a timer interrupt occurs the program jumps the interrupt service
صفحه 16:
Implementing Second-Order Modules
مسضوط- مصرط دين = Te
مه
7 ما Uy = gry + Ayr
موه - ورف = My
My = are + ”يه
rh =e + Mi,
ho
Uk = dork + Ma. 2
صفحه 17:
Input seetion
Output section
Update section
Read setpoint, sx
Read output, yy
Calculate error, ملاح يق ح بق
Calculate جح
1
وا + وه ی بالاجاناه Calculate
M=
Mp = ayn + ayn
Return from
interrupt
صفحه 18:
| +5۷
{ 15] 16] 14[
11] م VDD Ri CLR
4K VDD VDDRpo|32 bo
uci RBI 4 01
Rezo 2و
7 23 2
From Output Sensor ی 46
ا 3 ANO وول تووم VoAH?
y 12 ممم Dé To The Plant
31۷5 RB7|40 67 walt!
+ PIC16F877,__ 15 10} we كتيسن
xTL XTL cs GnoGno} Lb
134 q 20) 17]
یه حارط بو Ld
sapF [ante 3p
MICROCONTROLLER D/A CONVERTER
صفحه 19:
/* Interrupt Service Routine. The program jumps here every 10 ms */
void interrupt ISR(void)
{
Read AD-Input () + /* Read A/D input */
ek = sk - yk; /* Calculate error term */
rk = ek + M1;
yk = a0*rk + M2; /* Calculate output */
uk = yk*DA.LSB;
PORTB = uk; /* Send to PORT B */
DAWrite = 0; /* Write to D/A converter */
DAWrite = 1:
xk2 = rki; /* Update variables */
rk1 = rk;
M1 = -bl*rk1 - b2*rk2;
M2 = al*rkl + a2*rk2
TOIP = 0; /* Re-enable timer interrupts */
صفحه 20:
/* Main Program. The main program initializes the variables, A/D converter,
D/A converter etc. and then waits in an endless loop for timer interrupts
to Occur every 10 ms */
main (void)
{
a0 = 1; al = 0.8; 1.2:
bl = 1.85; 0.92;
M1 = 0; M2 = 0 rk = 0 rki = rk2 = 0;
sk = 1.0;
DALSB = 5000.0/1024.0;
TRISA = 1; /* RAO (ANO) is input */
TRISB = 0; /* PORT B is output */
TRISC = 0; /* RCO is output */
DAWrite = 1; /* Disable D/A converter */
Initialize aD); /* Initialize A/D converter */
Initialize Timer (); /* Initialize timer interrupts */
eil); /* Bnable interrupts */
for (1; /* Wait for an interrupt */
صفحه 21:
Implementing First-Order Modules
re = ey — Dita
Uk = ork + Ur k-1
مضه د رلا
سوه ع ولا
بلجي دير
dors + Mo > لا
صفحه 22:
/* Interrupt Service Routine. The program jumps here every 10 ms */
void interrupt ISR (void)
1
20180 - 0 /* Reload TMRO */
Read ADInput (); /* Read A/D input */
sk - yk; /* Calculate error term */
ek + Mi;
a0*rk + M2; /* Calculate output */
yi*DALSB;
PORTB = uk; /* Send to PORT B */
DAWrite = 0; /* Write to D/A converter */
DAWrite = 1;
rk2 = rk1; /* Update variables +/
rk = rk;
ML = -bl*rk1 - ba*rk2;
M2 = al*rkl + a2*rk2;
TOIF = 0; /* Re-enable timer interrupts */
صفحه 23:
Implementing Higher-Order Modules
صفحه 24:
سیستم کنترل دیجیتال سطح مایع
صفحه 25:
سیستم کنترل دیجیتال سطح مایع
إيكها سيستم كتترل سطخ مايع رايع
در این سیستم؛ هدف کترل نرخمایع پمپ شوندهبه تانک جهت قراركيرى سطح مايع در نقظه مطلوب مى باشد
Level
sensor
CONTROLLER |
Setpoint
صفحه 26:
سیستم کنترل دیجیتال سطح مایع
© اين سیستم از بخشهای زیر تشکیل شده است:
© مخزن آب
© بمب آب
© حسكر سطح مايع
© ميكرو BPS
© مبدل 0/09
ese
im A
صفحه 27:
سیستم کنترل دیجیتال سطح مایع
شماتیک سیستم
خزن آب: سطح مايع داخل اين مخزن کنترل می شود. آب از بالای مخزن داخل آن پمپ شده و یک حسگر
J گیری می کند. میکرو کنترلر پمپ را بگوته ای کنترل می کند که مایع در سطح
استفاده یک مخزن پلاستیکی
ابعاد 7 (01])* 7ن 13*07 مى باشد
8 پمپ آب: پمپ مورد استفاده یک پمپ ۱۳ ولتی بوده که در زمان کار در حداکثر ولتاژ خود ۳ آمپر جریان مى كشد.
\
صفحه 28:
سیستم کنترل دیجیتال سطح مایع
شماتیک سیستم
© حسكر سطح: حسكر سطح يكث بتانسيومتر دوار بوده كه شامل يكك بازوى شتاور متصل به بازوى لغزان بتانسيومتر
دوار مى باشد. سطح بازوى شناور و در نتيجه مقاومت با سطح مايع داخل مخزن تغيير مى كند. يكك ولتاز به دو سر
پتانسیومتر اعمال شده و تغیبر این ولتاژ در دو سوی بازوی پتانسیومتر اندازه گیری می گردد. اين مقاومت از ۴۳۰ اهم در
زمانیکه بازوی شناور در انتهای مخزن (مخزن خالی) بوده تا ۴۰ اهم در زمانیکه بازو در بالای مخزن است» تغییر می کند.
صفحه 29:
سیستم کنترل دیجیتال سطح مایع
© میکر و کنترو: از نوع 6۳10016۳۸63۸7۵ بوده که در اين بروزه بعنوان يكك كنترل كتنده ديجيتال مورد استفاده
ار می گیرد. این میکرو شامل یک مبدل آنال وگ به دیجیتال ۱۰ بیتی و ۸ کاناله می باشد.
8 مبدل دیجیتال به آفالوگک: در اين پروژه از مبدل 600720006 که ۸بیتی است استفاده می شود
8 تقویت کننده توان: توان خروجی یک مبدل دیجیتال به آنالوگ به حدود چند صد میلی وات محدود بوده که
برای راهاندازی پمپ کافی تیست. برای این منظور از یک مبدل توان از نوع 60677260 ستفده شدء که توان خروجی
مبدل دیجیتال به آنال وگ را افزوده که قادر به راه اندازی پمپ می باشد. این تقویت کننده تا حدود ۳۰ وات توان قادر به
توليد مى باشد
صفحه 30:
سیستم کنترل دیجیتال سطح مایع
مدل سیستم
8 این سیستم در حالت کلی یک سیستم مرتبه اول بوده که نحوه مدلسازی آن مطایق ذیل می باشد:
Qin = Q+ 20
نرخ فلوى ورودى به مخزن Qin
نرخ ذخیره آب داخل 9
مخزن
نرخ خروج آب مخزن 9۳
ارتفاع آب داخل مخزن h سطح مقطع مخزن ۸
صفحه 31:
سیستم کنترل دیجیتال سطح مایع
فدل تیدیم
نرخ خروجی آب از مخزن بصورت زير بدست آورده می شود:
< ۷
ارتفاع آب داخل مخزن Qout day 2gh,
مقطع خروجی مخزن 8 ضریب تخلیه خروجی Ca
مخزن
ثابت کرانش 8
جایگذاری در معادله قبل ۱
Qin = ae
a CaaV2gh
1
صفحه 32:
سیستم کنترل دیجیتال سطح مایع
مدل سيستم dh
Qin = 4 + ۷۱
© رابطه فوق يك رابطه غيرخطى بين نرخ فلو و ارتفاع آب داخل مخزن می باشد که می توان
آن را خطی کرد
۵ وقتی که نرخ ورودی مقدار ثابت 0-600 باشد. نرخ خروجی نیز در نهایت دارای مقدار 620712000
می گردد و ارتفاع مایع نیز به مقدار ثابت 12 رسیده که دارای ارتباط زیر با یکدیگر می باشند
|
حال اگر یک انحراف کوچک در فلوی ورودی حول مقدار ماند گار بصورت زیر در نظر گرفته شود:
Qin — Qn = ,89
© تغيير ارتفاع0!! - 0 < bh حاصل شده که دارای ارتباط زیر با هم می باشند:
08
1
An + Caay 25h + ho) = 8 Qin + Qo
صفحه 33:
سیستم کنترل دیجیتال سطح مایع
فدل تیدیم
۵ با خطی سازی معادله فوق می توان به معادله زیر دست یافت:
2 ۰0
A 4 22h 9
dt هنة و
his) 1
Qin(s) As + Qo/2ho
صفحه 34:
سیستم کنترل دیجیتال سطح مایع
مدل سیستم
پمپ. حسگر سطح و تقویت کننده توان نیز بهره های تناسبی ساده که فاقد دینامیک می باشند.
روابط ورودی و خروجی این واحدها بصورت زیر می باشند:
@ پمپ:
Qn =KpVp
ولتاژ اعمالی به پمپ
نرخ فلوی پمپ م9۵
< ۷۱
خروجی حسگر سطح Vi
نقویت کننده توان:
۷ 2 ۷
ولتاژ خروجی تقویت کننده Vo
توان
ولتاژ ورودی تقویت کننده 1
توان
صفحه 35:
سیستم کنترل دیجیتال سطح مایع
اس
بلو کت دیاگرام سیستم مدلسازی شده:
DIA Amplifier Pump Water tank
‘Microcontroller est — |
8 20 0,۱ + نا و | و | ها 7
Ki
Level sensor
صفحه 36:
سیستم کنترل دیجیتال سطح مايع
شناسانی سیستم
© شناسانی سیستم: برای شناسانی سیستم از تست پاسخ ضربه استفاده می شود که برای این منظور از
پیکربندی سخت افزاری زیر استفاده می شود
5
و
ما وب
تک 5 ۳ WATER TANK
rel D3 aprsoz
sy —te vane
5 5 ren
oe
er a
13 14 555 =
لد OSes ee POWER AMPLIFIER فم
سم ةهددف om
علس موی
اعمس | عم
صفحه 37:
سیستم کنترل دیجیتال سطح مایع
شناسانی سیستم
۵ خروجی پورت 0 میکرو کنترلر به ورودی های داده مبدل دیجیتال به آتالو ک متصل می گردد
که این مبدل توسط پین 3000 میکرو کنترل می گردد
© خروجی مبدل دیجیتال به آنالوک به تقویت کننده توان 26726 متصل شده که پمپ را
راه اندازی می کند
۵ مقدار پله برابر با ۲۰۰ اختیار شده که متناظر با ولتاژ ۵۰۰۰۲۰۰۱۲۵۲ برابر ۳/٩ ولت از مبدل
6 می باشد
9 ارتفاع آب داخل سطح (خروجی حسکر سطح) بصورت زمان حقیقی توسط ثبت کننده داده از فوع
0 و نرم افزار مطهم ثبت می گردد. 11036 یک کارت الکترونیکی کوچک بوده که
به پورت موازی ۳۵) متصل می گردد.
picolog @ بر روی ۳0 اجرا شده که برای ثبت اندازه گیریهای 120 بصورت زمان
حقیقی استفاده می گردد. این نرم افزار همچنین شامل یت گزینه گرافیکی برای رسم منحنی
داده های اندازه گیری می باشد
صفحه 38:
سیستم کنترل دیجیتال سطح مايع
شناسائى سیستم
8 برنمه میکرو برای ارسال یک پله واحد به مبدل آنالوک به دیجی
STEP RESPONSE TEST
This program sends a STEP input to the D/A converter. The value
of the input is set to 200, which corresponds to a voltage of
5 x 200/256. The output of the D/A is connected to a power
amplifier which has an overall gain of G = 2.5. Thus, the step
voltage applied to the pump is 5 x (200/256) x 2.5 = 9.76V.
The hardware consists of a PICI6P877 microcontroller, where PORT B
is conencted to an AD7302 type D/A converter. The output of the D/A
is connected to an LM675 type DC power amplifier.
File: STEP.c
Date: July 2005
صفحه 39:
سیستم کنترل دیجیتال سطح مایع
شناسائى سیستم
© برنامه میکرو برای ارسال یک پله واحد به مبدل آنالوکت به دیجیتال:
PORTE is output */
CO is output */
Disable داد */
Send the STEP */
Enable D/A */
Disable D/A */
Wait here forever */
۳
7
i
my
7
ye
۳
include <pic.h>
#define AD7302.uR RCO
/* start of main program */
main(void)
1
28388 - 0
TRISC = 0
7302صه 18
/* Send a STEP input to the D/A */
PORTE = 200;
AD7302.4R.
AD7302.NR = 1;
wait: goto wait;
1
صفحه 40:
سیستم کنترل دیجیتال سطح مايع
شناسائى سیستم
8 برنامه میکرو برای ارسال یک پله واحد به مبدل آنالوکت به دیجیتال:
۵ در ابتدای برنامه پورتهای ورودی-خروجی پیکربندی شده و سپس یکث سیگنال پله (۲۰۰) به پورت ظ
ارسال می گردد. سپس با صفر کردن ورودی ۷۷18 از مبدل دیجیتال به آنالو ک, این مبدل فعال شده و
پس از نوشتن, داده ها بر روی این مبدل, غیر فعال شده تا خروجی آن تغییر ناگهانی نداشته باشد. سپس این
برنامه برای ایجاد انتظار در یک حلقه امتناهی قرار می گیرد.
صفحه 41:
سیستم کنترل دیجیتال سطح مایع
شناسائى سیستم
6 نمایش پاسخ پله سیستم: همانطور که ملاحظه می گردد پاسخ پله یک سیستم مرتبه اول نوعی بوده که
البته شامل نويز مى باشد
mV — Voltage
2350
2300!
2250|
2200
250
صفحه 42:
سیستم کنترل دیجیتال سطح مایع
شناسائی سیستم
© با توجه به اينکه ثبت کننده داده 8 10117307 پیتی می باشد با یک ورودی مرجع ۵ ولت. رزولوشن آن
٩ میلی ولت می باشد که منجر به ناپیوستگی های پله ای نشان داده شده در شکل می کردد( برای
حذف این ناپیوستگی ها یا باید از یک ثبت کننده داده با رزلوشن بالاتر استفاده کرده و یا خروجی حسکر
WE ETS میانی پله هاء می توان یک منحنی هموار بصورت زير بدست آورد
my — Vottage
2950
2000 -
صفحه 43:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
@ در این حالت دیاگرام مداری حلقه بسته بصورت زير می باشد
وب
4 ]16 ]15
VOD Ri CLR ۳
bo تجامعم۷۵۵ ۷۵۵ | »ما
Dt هه بو
WATER TANK 9 لحم
sav 2
02 :9 هم 7
ano mae De pm 3 PUMP
ل ise: عد 05 Rese
vss 887 5 7 +
tol) یی ما سس کل
once x oz مک ان 7
۱0۳ + سوت نیون
‘a 744 ce
ra
ی 1 ماه
a مرو 4
هه TS ons converter sen
MICROCONTROLLER
Level feedback PC Data Logger |
Pog Sot) سم
صفحه 44:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
با اتصال خروجی حسکر سطح به بين آنالوک ورودی ۸۱۲0 حلقه؛ بسته شده است
۵ یکی از نیازمندیها دستیابی به خطای حالت دائم صفر می باشد که این مورد با استفاده از یک کنترل کننده
انتگرالی قابل حصول خواهد بود. برای این منظور یک کنترل کننده ۳1[ زیکلر-نیکولز طراحی می کردد
© قبل از طراحی کنترل کننده باید پارامترهای سیستم را با استفاده از پاسخ پله حاصل از بخش قبل بدست
آورد. مطابق شکل پارامترهای مدل سیستم ز یگلر-نیکولز توسط 1-315 و 112-25 داده می شوند و
2150 — 2345
= iO = 0.05
= 500 x 300/256 ~
صفحه 45:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
@ پس مدل سیستم زیر را خواهیم داشت:
Gs) = مش
© با توجه به اينکه ثابت زمانی سیستم ۳۱ ثائیه است. زمان نمونه برداری باید کمتر از یکك دهم ثابت زمانی
سیستم انتخاب گردد که در این پروژه ۱۰۰ میلی انیه و یا ۱۱ ۰ انیه اختیار شده است
1 > 15 T=0.1s
ضرایب کنترل کننده 6/1 زیگلر-نیکولز بر اساس پارامترهای مدل بصورت زیر بدست آورده می شوند:
OT,
Kp=—— and 7, =3.3T
KTp
0.9 x 31
and T;=3.3x2=66 279 = دور
x 2 0.05
صفحه 46:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
8 با در نظر گرفتن ترم مشتق گیر برابر با صفر کنترل کننده زیر را خواهیم داشت که تحقق موازی آن در
شکل نشان داده شده است:
و
Di) = Ky, +
95 ۸۸ 2
صفحه 47:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
نحوه برنامه نویسی کنترل کننده در ادامه ارائه می کردد که خروجی کنترل کننده بر اساس یک تحقق
موازی تولید شده است
۵ در ابتدای برنامه پارامترهای کنترل کننده تعریف می شوند
این برنامه شامل توابع زیر می باشد:
Initialize_AD
nitialize Timer
Read_AD Input
interrupt service routine (ISR)
مبدل ۸/1 برای دریافت داده های داده های آنالوک از کانال ۸0 مقداردهی اولیه می شوند
© تابع cs Read_AD input نمونه را از مبدل ۱/0) خوانده و در متغیر «رذخیره می کند
صفحه 48:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
۵ تایمر برای ایجاد وقفه هر ۱۰ میلی انیه یکبار مقداردهی اولیه می گردد
۵ در ابتدای روتین TSR الگوریتم 1ظ بعد از دهمین وقفه یعنی بعد از ۱۰۰ میلی ثانیه. اجرا می گردد
که تضمین می کند زمان نمونه برداری کنترل کننده ۱۰۰ میلی
۵ روتین 1513 خروجی حستر سطح را خوانده و آن را تبدیل به دیجیتال می کند. پس از آن الگوریتم
0 پیاده سازی شده است
بعد از ارسال خروجی به مبدل 0/0) روتین 1508 مجددا وقفه های تایمر را فعال می کند
صفحه 49:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
پاسخ پله حلقه بسته با ورودی مرجع تنظیم شده در ۲۲۸۰- واضح است که پاسخ سیستم بدون خطای
ماند کار به مقدار مرجع رسیده است که البته پاسخ همراه با نویز است
mV — Voltage
Sec
صفحه 50:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
ادامه:
/* This function reads data from the A/D converter and stores it in
/* Start A/D conversion */
/* Wait until convertion completes */
/* High 2 bytes of converted data */
/* Low byte of converted data */
/* Converted data in yk */
7* Sensor output in mv */
The program jumps here every 10 ms. */
/* Reload TMRO = 100 */
The basic timer rate is 10ms and we
variable yk */
void Read AD-Input (void)
1
ADCONO = 0x45;
while((ADCONO & 4)
y-high = ADRESH;
y-low = ADRESL;
yk = 256.0+y-high + ylow:
yk = yk*AD.LSB;
)
[=>/* Interrupt Service Routine.
void interrupt ISR (void)
1
MRO = 100;
/* Check if 100ms has elapsed.
count 10 interrupts before implementing the controller algorithm */
صفحه 51:
سیستم کنترل دیجیتال سطح مایع
طراحی کنترل کننده
ae
/* Read A/D input */
/* calculate error term */
/* calculate output */
Write to D/A converter */ در
/* Re-enable timer interrupts */
time now++;
Lf (time now
۲
timenow = 0;
Read AD Input (};
10)
ek = عله - yk;
pk = btek + pki;
wk = Kp*ek;
yk = wk + pk;
yk = yk*DALSE;
Lf(yk > 255)
uk=255;
else
uk=(unsigned char)yk;
PORTE = uk;