Both sides previous revision Previous revision Next revision | Previous revision |
ezeio2:scriptref:pid_new [2020-08-14 23:43] – 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_tune( 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); |
| |