12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE...
-
Upload
meredith-manning -
Category
Documents
-
view
214 -
download
0
Transcript of 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE...
![Page 1: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/1.jpg)
12/6/04 BAE 3023 1
Advanced Embedded Systems Design
Lecture 14 Implementation of a PID controllerBAE 5030 - 003
Fall 2004Instructor: Marvin Stone
Biosystems and Agricultural EngineeringOklahoma State University
![Page 2: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/2.jpg)
12/6/04 BAE 3023 2
Goals for Class Today
• Questions over reading / homework (CAN Implementation)
• Zigbee and 802.14.5 – (Kyle)
• PID implementation (Stone)
![Page 3: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/3.jpg)
12/6/04 BAE 3023 3
Elements of a feedback control system
• Review elements and variables
Gc G2
G3
Error
Manipulated
VariableD
ControlledVariable
out+
+
G1
out
-
+ out
Load
in
Setpoint
set
outout_measured
![Page 4: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/4.jpg)
12/6/04 BAE 3023 4
)1()1( 23
2
23
1
GGG
GG
GGG
G
c
cset
c
inout
)( _measuredoutsetcGD
21 DGGinout 3_ Goutmeasuredout
Output (out) is readily calculated as a function of:Load (in) andSetpoint (set)
Manipulation is a simple function of the controller TF and error.
![Page 5: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/5.jpg)
12/6/04 BAE 3023 5
Digital form of a classic feedback controlled system
• If sampling rate is fast and holds are employed, this system approaches the analog system
Gc G2
G3
Error
ManipulatedVariableD* D
ControlledVariable
out+
+
G1
out
-
+ out
Load
in
Setpoint
set
out
out_measured
out_measured*
Computer based controller
![Page 6: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/6.jpg)
12/6/04 BAE 3023 6
One of the conventional models used to express a PID controller is:
dt
deedteKM d
t
tic
0
1
rateDerivitive
rateReset
signalErrore
gainControllerK
onManipulatiM
d
i
c
Time Domain PID Controller Equation
Where:
![Page 7: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/7.jpg)
12/6/04 BAE 3023 7
Derivitive Form of a PID Controller
A convenient way to implement this equation in a controller is as the derivative of manipulation known as the velocity form of the equation as shown below:
2
2
dt
ede
dt
deK
dt
dMd
ic
In a practical system this equation will work well and does not require
any steady-state references, but eliminating the i and d term
completely results in:
dt
deK
dt
dMc deKdM cor,
This equation has no positional reference and error accumulation is a problem. Use velocity form only for PI or PID modes.
![Page 8: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/8.jpg)
12/6/04 BAE 3023 8
Conversion of the DE to a Difference Equation
To begin the conversion of the PID equation to a difference
equation, the equation is multiplied by dt.
dt
ded
edtdeKdM d
ic
Note that since M is a differential and ess is zero, this equation
conveniently applies to the absolute variables as well as the deviation variables.
For small t, the equation can be approximated as:
t
tKm d
ic
![Page 9: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/9.jpg)
12/6/04 BAE 3023 9
Representation with Discrete Time Variables
Each of the differences () can be expressed as discrete values of
each of the variables ( m and ) at the times 0, 1, and 2 as shown below:
t0 t2t1
M
1 2
0
M 0 M 1M 2
The equation can be simplified with the assumption that t is constant:
t
tKm d
ic
![Page 10: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/10.jpg)
12/6/04 BAE 3023 10
Discrete form of PID controller
Replacement of the differences () with the discrete
variables ( m and ) results in:
12
21212 )(
t
tKmm d
ic
0112
21212 )(
t
tKmm d
ic
012
21212 2)(
t
tKmm d
ic
Note that is assumed to be a constant. If t varies, the equations should be derived with that in mind.
![Page 11: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/11.jpg)
12/6/04 BAE 3023 11
Discrete form of PID controller
This equation can be solved for the current manipulation, m2, in terms
of values known at time t2: m1 , e2 , e1, and e0.
The other parameters in the equation are constants.
01212
211
ttt
tKmm ddd
ic
Where C1,C2, and C3 are constants and the current manipulation is
expressed in terms of known values, the current and past errors.
03122112 cccKmm c or,
![Page 12: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/12.jpg)
12/6/04 BAE 3023 12
Translation of PID Equation into Algorithm
This equation may be translated directly into a computer language, for example:
m2 = m1 + k*(C1*e2 – C2*e1 + C3*e0);
Within a computer program, the current erroris calculated from the current measurement ofthe controlled variable and the setpoint, for example:
e2 = T_setpoint – T_measured;
The current manipulation m2 is then computed using the previous controller equation, and finally, at the end of the time step, each of the variables is shifted forward for the next calculation.
![Page 13: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/13.jpg)
12/6/04 BAE 3023 13
Translation of PID Equation into Algorithm
For example in C, the code might look like:
measure_and_manipulate() //Call once per delta T begin T_measured = measure_T(); //Get the measured temperature e2 = T_setpoint – T_measured //Calculate the current error m2 = m1 + k*(C1*e2 – C2*e1 + C3*e0); //Calculate the manipulation set_manupilation(m2); //Output the manipulation e0 = e1; //Shift the error and manipulation e1 = e2; //forward one time step m1= m2; end;
Note that the time step t is controlled by the time required to execute
the loop. C1,C2 and C3 are all functions of t. The equation will probably be executed as floats! (Or very special care must be taken with scaling.
![Page 14: 12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.](https://reader036.fdocuments.us/reader036/viewer/2022082709/56649d9f5503460f94a89a1b/html5/thumbnails/14.jpg)
12/6/04 BAE 3023 14
Assignment
• Complete CAN message demo• Turn in course portfolio by 5:00 PM Wednesday Dec.
8th