implementing pid on a microcontroller bj furman me 190 mechatronics engineering design 11nov2015...

25
Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from: http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduc tion/ )

Upload: chloe-wells

Post on 18-Jan-2016

222 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Implementing PID on a microcontroller

BJ FurmanME 190 Mechatronics Engineering Design

11NOV2015

(adapted from: http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/)

Page 2: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

PID equation

Standard form

Parallel form

๐พ ๐‘=๐พ ๐พ ๐‘–=๐พ๐‘‡ ๐‘–

๐พ ๐‘‘=๐พ๐‘‡ ๐‘‘let

๐‘‚๐‘ข๐‘ก๐‘๐‘ข๐‘ก=๐พ ยฟ

Figure from Matlab Help (Designing PID Controllers with the PID Tuner)

u=

u=

= r(t) โ€“ y(t)

Page 3: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Important considerations

o Sample Timeo Derivative Kicko On-The-Fly Tuning Changeso Reset Windup Mitigationo On/Off (Auto/Manual)o Initialization (bump-less transfer)o Controller Direction

Page 4: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

(Way too) simple algorithm

Page 5: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Sample Time

o Need to call at a regular intervalo Use millis() or an interrupt

(cont.)

Page 6: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Sample Time, cont.

Page 7: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Derivative Kick

The problem

๐‘‚๐‘ข๐‘ก๐‘๐‘ข๐‘ก=๐พ ยฟ

dttdy

dttde

dttdy

dttde

dttdy

dttdr

dttde

)()(

)(0

)(

constant is r(t) if

)()()(

Derivative Spikes

Page 8: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Derivative Kick, cont.

Page 9: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Derivative Kick, cont.

Page 10: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On-the-fly tuning changes

When things go โ€˜bumpโ€™โ€ฆ

Page 11: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On-the-fly tuning changes, cont.

Calculate the contribution for the integral term differently:

โ€ข Before

โ€ข After

Page 12: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On-the-fly tuning changes, cont.

Page 13: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Integrator windup

The problem

Page 14: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Integrator windup, cont.

Page 15: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Integrator windup, cont.(same as before)

Page 16: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Integrator windup, cont.

The result

Page 17: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On/Off (automatic or โ€˜manualโ€™)

The problem

Page 18: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On/Off, cont.

Page 19: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

On/Off, cont.(same as before)

Page 20: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Initialization

The problem

Page 21: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Initialization, cont.(same as before)

Page 22: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Initialization, cont.โ€˜Bumplessโ€™ transfer

Page 23: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Direction

The problem: should an increase in y (the output) lead to an increase or a decrease in the manipulating variable (u, the output of the controller)?

Direct acting (Kp, Ki, Kd should be positive) Reverse acting (Kp, Ki, Kd should be negative)

Page 24: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Direction, cont.

Page 25: Implementing PID on a microcontroller BJ Furman ME 190 Mechatronics Engineering Design 11NOV2015 (adapted from:

Direction, cont.(same as before)