Presentation is loading. Please wait.

Presentation is loading. Please wait.

12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems.

Similar presentations


Presentation on theme: "12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems."— Presentation transcript:

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 and Agricultural Engineering Oklahoma State University

2 12/6/04BAE 30232 Goals for Class Today Questions over reading / homework ( CAN Implementation ) Zigbee and 802.14.5 – (Kyle) PID implementation (Stone)

3 12/6/04BAE 30233 Elements of a feedback control system Review elements and variables

4 12/6/04BAE 30234 Output (  out ) is readily calculated as a function of: Load (  in ) and Setpoint (  set ) Manipulation is a simple function of the controller TF and error.

5 12/6/04BAE 30235 Digital form of a classic feedback controlled system If sampling rate is fast and holds are employed, this system approaches the analog system

6 12/6/04BAE 30236 One of the conventional models used to express a PID controller is: Time Domain PID Controller Equation Where:

7 12/6/04BAE 30237 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: 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: or, This equation has no positional reference and error accumulation is a problem. Use velocity form only for PI or PID modes.

8 12/6/04BAE 30238 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. Note that since M is a differential and e ss 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:

9 12/6/04BAE 30239 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: The equation can be simplified with the assumption that  t is constant:

10 12/6/04BAE 302310 Discrete form of PID controller Replacement of the differences (  ) with the discrete variables ( m and  ) results in: Note that  is assumed to be a constant. If  t varies, the equations should be derived with that in mind.

11 12/6/04BAE 302311 Discrete form of PID controller This equation can be solved for the current manipulation, m 2, in terms of values known at time t 2 : m 1, e 2, e 1, and e 0. The other parameters in the equation are constants. Where C 1, C 2, and C 3 are constants and the current manipulation is expressed in terms of known values, the current and past errors. or,

12 12/6/04BAE 302312 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 error is calculated from the current measurement of the 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.

13 12/6/04BAE 302313 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.

14 12/6/04BAE 302314 Assignment Complete CAN message demo Turn in course portfolio by 5:00 PM Wednesday Dec. 8th


Download ppt "12/6/04BAE 30231 Advanced Embedded Systems Design Lecture 14 Implementation of a PID controller BAE 5030 - 003 Fall 2004 Instructor: Marvin Stone Biosystems."

Similar presentations


Ads by Google