| Both sides previous revision Previous revision Next revision | Previous revision |
| ezeio2:scriptref:pid_new [2021-07-23 23:08] – andreh | ezeio2:scriptref:pid_new [2022-03-30 23:44] (current) – andreh |
|---|
| === Description === | === Description === |
| |
| <code>PID_new( pid[], Float:in, Float:out )</code> | <code>PID_new( pid[], Float:set, Float:out ) // set up new PID</code> |
| <code>PID_dir( pid[], direction )</code> | <code>PID_dir( pid[], direction ) // set direction of control</code> |
| <code>PID_set( pid[], Float:set )</code> | <code>PID_set( pid[], Float:set ) // adjust the target value</code> |
| <code>PID_tune( pid[], Float:Kp, Float:Ki, Float:Kd )</code> | <code>PID_tune( pid[], Float:Kp, Float:Ki, Float:Kd ) // set the P, I, D parameters</code> |
| <code>PID_limits( pid[], Float:min, Float:max )</code> | <code>PID_limits( pid[], Float:min, Float:max ) // set the control range</code> |
| <code>PID_update( pid[], Float:in )</code> | <code>PID_update( pid[], Float:in ) // update PID with feedback, and return new control value</code> |
| |
| === Parameters === | === Parameters === |
| |
| | ''in'' | Feedback value | | | ''set'' | setpoint / target | |
| | ''out'' | Initial output value | | | ''out'' | Initial output value | |
| | ''direction'' | 1 (normal) or -1 (reverse) | | | ''direction'' | 1 (normal) or -1 (reverse) | |
| | ''set'' | setpoint / target | | |
| | ''Kp'' | Proportional component | | | ''Kp'' | Proportional component | |
| | ''Ki'' | Integral response component | | | ''Ki'' | Integral response component | |
| main() | main() |
| { | { |
| // Initialize the PID with mid range input and no output | // Initialize the PID with target and no output |
| PID_new(p, 50.0, 0.0); | PID_new(p, 50.0, 0.0); |
| | |