PID (Proportional Integral Derivative) Proportional Action (P): Makes the system more reactive (piu’ pronto) Reduces disturbances on G: goes toward: for high G values Can lead to overshoot Integral Action (I): Reduces error at regime Can lead to oscillations Can move poles to the right (i.e. instability) Derivative Action (D): It acts as a damper It works against high slopes in the controller action
Shannon Sampling Theorem 45Hz < signal bw 55Hz > signal bw 50Hz fsample = 100Hz = 2fsignal fsample = 110Hz > 2fsignal fsample = 90Hz < 2fsignal
Nyquist Criterion I theorem: II theorem: Hp) The GH open loop transfer function has every pole with negative real part (I.e. stable) with the exception of one or two poles in the origin (O). Th) For asynthotic stability of G/(1+GH) is necessary and sufficient that the polar diagram of GH(jω) does not go around or touch the point (-1,j0) leaving it to the left (increasing the frequencies). II theorem: Hp) The GH open loop transfer function does not have pure imaginary poles with the exception of one or two in the origin (O). Th) For asynthotic stability of G/(1+GH) is necessary and sufficient that the polar diagram of GH(jω) does go around counter-clockwise the point (-1,j0) as many times as the number of poles with positive real part.
Polar Diagram: representation of GH with respect to ω. Root Locus (Luogo delle radici): path of the roots (solutions) of 1+GH with varying k (i.e. the PID) of GH.
PID Note: with only the proportional gain the control would oscillate around the set point The transfer function is: kp kD kI + Plant H - Set point e feedback G
The PID gain is: H(s) introduces poles and, sometimes, zeroes. Representing the root locus For the characteristic equation (1+GH), for different PIDs we can observe the different gains effect.
Matlab Commands: tf, bode, nyquist, rlocus, … kD kp kI Matlab Commands: tf, bode, nyquist, rlocus, …
Matlab Commands: tf, bode, nyquist, rlocus, … PI PID with P and I dominant and kI>>kD Example: Root Locus: Matlab Commands: tf, bode, nyquist, rlocus, …
PI: Nyquist Diagram: (integral 1/jω delays) Matlab Commands: tf, bode, nyquist, rlocus, …
Matlab Commands: tf, bode, nyquist, rlocus, … PD PID control with P and D dominant and kD>>kI Example: Root Locus: Matlab Commands: tf, bode, nyquist, rlocus, …
PD: Nyquist Diagram: (derivative jω anticipates) Forward (anticipo) Matlab Commands: tf, bode, nyquist, rlocus, …
Kp low narrow bandwidth f limited poor performances PID M E Set point + - Lag error Kp*Lag error low current peak Real profile bw Low steepness f low narrow bw
Kp high wide band width high f good performances PID M E Set point + - Lag error Kp*Lag error high current peak Real Profile High steepness high f wide bw bw
Notch Filter x y Characteristics: 2nd order recursive digital filter it does remove a pair of poles not well dampened and it does substitute them with a pair adequately dampened These high (with respect to the denominator) make the system more reactive but oscillating with high k b0 a2 a1 b1 b2 Z-1 + - x y These high (with respect to the numerator) make the system more oscillating (and high k it dampen it) but more reactive (high k slows it)
Basic Filtering Equation: z-2b2 z-1b1 b0 z-2a2 z-1a1 x y + - + With these blocks it’s a IIR (Infinite Impulse Response) Without it’s a FIR (Finite Impulse Response, doen’t use its past outputs to determine actual output) Basic Filtering Equation:
Matlab Commands: tf, bode, nyquist, rlocus, …
Error at Regime (ear) Number of GH poles in O
PID (closed loop) and FeedForward (open loop)
PID time response to a step: Time continuous version: Proportional Action Integral Action Derivative Action (it does derivate only the feedback to avoid Dirac impulse)
Digital-Analog border Digital World
Motion Profiles
Socapel Parallel Regulator (position lag proportional to torque) Command Velocity Command PID Torque Command
Rockwell Serial Regulator (position lag proportional to velocity) PI Velocity Command Torque
Torque step response
Motion Profile Implementation
Position Regulator
Controller Architecture
Drive Architecture Drive Architecture Main Processor Intel i960 Interface handling Data conversions Motion Functions Application Handler Digital Signal Processor (DSP) Regulation Loops (position, speed, current) Feedback Measurement (position, speed) Power Stage Set-Points Hardware User Interface (Display) I/O’s Fibre Optic Interface (EasyBus) Brake Control Option Safety Functions Power Stage Service Interface RS232 Connection to PC Test Board Option
Drive Architecture (cont’d)
Drive - Power Side - Architecture
HW Layout
Current Signals to the Motor Regulator Structure Position Controller Power Stage Components PI Current Regulator Current Signals to the Motor Digital Current (Torque) Regulator Safety Value limiting Torque Limitation Digital PID Position Regulator + PID Regulator - Feedback Signals + Set- Points Feed-Forward System Feed-Forward
Parallel PID Regulator Description The Input Value for the PID Regulator is the Position Lag (difference between the requested position and the real position) The Torque Set-Point is the Output Value of the PID Regulator P + PID Regulator S - Position Feedback Torque Set-Point Position Lag I D The PID Regulator has three Paths (parts) Proportional Part Integral Part Derivative Part For the Proportional Part the Position Lag Value is multiplied with the P-Gain Parameter For the Integral Part the Position Lag Value is integrated and then multiplied with the I-Gain Parameter For the Derivative Part the Speed (velocity) Lag Value (same as the first derivative of the Position Lag) is multiplied with the D-Gain Parameter
S Feed-Forward System Description External Force Static / Dry Friction Four different Feed-Forward Components are available for the SAM Regulator External Force Static / Dry Friction Viscous Friction Inertia The External Force Component is independent on the Motion and creates a constant Torque value (e.g. Gravity Compensation of a vertical axis) The Static or Dry Friction Component uses only the sign of the Speed Set-Point to create a constant Torque value, whenever the speed is not zero The Viscous Friction Component is always proportional to the Speed Set-Point The Inertia Component is always proportional to the Acceleration Set-Point and compensates the mechanics Inertia during acceleration and deceleration (M = J * a) External force time speed torque + Static/Dry friction Viscous friction S Inertia Torque Feed-Forward =
Measuring the External Force and Friction Values Run the motor in positive direction with a low speed (S1 = 10%) and measure the mean value of the needed Torque (Tp1) for several samples S1 Tp1 Then run the axis with the machine’s nominal speed (S10 = 100%) and measure the Torque as before (Tp10) Do the same in negative rotating direction (Tn1 and Tn10) viscous friction torque + - dry friction external force S10 Tp10 Tn10 Tn1 Ext.force = |Tp1| -|Tn1| 2 visc = |Tp10|+|Tn10| - |Tp1|+|Tn1| S10 - S1 dry = |Tp1| + |Tn1| - visc * S1 speed
Parallel PID Regulator Details 1 AMPLI max min POS_REF POS_MES POS_LAG TORQ_REG TORQ_QUIET TORQ_REF R_MaxPosLag R_PGain R_MaxTorq BIT 0 StatusB VEL_REF VEL_MES VEL_LAG R_MaxVelLag R_DGain -F ACC_REF FLOW TORQ_FLOW TORQ_FEEDF R_StatFriqTorq R_ViscFriqTorq R_ExtTorq R_Inertia +F R_IGain dt
Regulator Tuning Deactivate the PosLag Error Clear the Regulator’s Gain and Feed-Forward Parameters Start with small but positive P, D-Gains Enable the Drive (power_on) and run the axis at constant speed Increase D-Gain step by step, until vibration starts or the audible noise is too high Reduce D-Gain to 50% of the found value Stop the axis, reset the PosLag (power_off and then power_on) Go through the last four steps for P-Gain (instead of R_DGain) trying to improve step response performances Set the I-Gain so to reduce the Error At Regime (ear) Set Feed Forward Gains TuneLearn link Note: Here we refer to a parallel control; the same rule are Anyhow valid for a serial control substituting the word “velocity-P-Gain” to “D-Gain”
Optimise the PD Regulator Step Response Observe (trace) the System’s Step Response (PosLag) while performing a Torque Step Disturbance (with nominal motor torque) Modify the D-Gain and P-Gain Parameters until a critically damped system is reached Step Response (PosLag) for a critically damped system Step Response (PosLag) for an over damped system Step Response (PosLag) for an under damped system Increase P-Gain Decrease P-Gain
Adjust the Feed-Forward Parameters Perform positioning movements (relative_move), using the machine’s nominal values for acceleration, deceleration and speed and observe (trace) the resulting PosLag Adjust the Inertia, ViscFricTorq, StatFricTorq and ExtTorq parameters until a minimum Range (depending on the application) for PosLag is reached Speed Speed proportional PosLag Adjust Inertia Acceleration proportional PosLag Adjust ViscFricTorq Properly adjusted Feed-Forward Parameters Adjust StatFricTorq Sign of Speed proportional PosLag
I-Gain Observe (trace) the System’s Step Response (PosLag) while performing a Torque Step Disturbance (with nominal motor torque) Modify the I-Gain Parameter until a critically damped system is reached Step Response (PosLag) for an over damped system Step Response (PosLag) for an under damped system Increase I-Gain Decrease I-Gain Step Response (PosLag) for a critically damped system
PD, no FF
PID, no FF
PD, with FF
Notes on D-Gain In practice, Kd is limited by several factors including the Drive current loop bandwidth which is directly related to the PWM frequency selected for the drive (standard: 8 kHz; optional: 4 kHz) resonance frequency of the axis mechanics, signal-to-noise-ratio of the speed measurement (to avoid to derivate white noise) In practice Kd is increased to the point where the axis goes into sustained oscillation, then reduced by a factor of 2 to obtain good speed loop stability. Kp is then determined with the step response performance.