User Tools

Site Tools


en-us_commands:reference:ipidset

This is an old revision of the document!


IpidSet()

IpidSet() sets PID coefficients, calculation interval and output range.

IpidSet command operation flow

bool IpidSet(uint8_t id, float kp, float ki, float kd, unsigned long sampleMs, float outMin, float outMax)

Commands

Command Arguments Return Value Operation
IpidSet(id, kp, ki, kd, sampleMs, outMin, outMax) uint8_t id — PID loop number. Supports 0 ~ 255
float kp — Proportional gain. Negative inputs are treated as 0
float ki — Integral gain. Integration based on seconds
float kd — Derivative gain. Differentiation based on seconds
unsigned long sampleMs — PID calculation interval in ms. 0 is not allowed
float outMin
float outMax
bool Sets PID coefficients, calculation interval and output range.

Example

void setup() {
  IpidSet(2, 4.0, 0.2, 0.0, 100, 0, 255);  // Set PID coefficients, calculation interval and output range.
  IpidReverse(2, true);  // Select direct or reverse PID action.
}
 
void loop() {
  float pv = ntcRead(4) / 10.0;  // Return the NTC 3950 10kΩ sensor temperature as an integer in 0.1°C units.
  float sv = 25.0;
  int output = (int)IpidRun(2, pv, sv);  // Calculate the PID output from the current value and setpoint.
 
  analogWrite(11, output);
}

Precautions

  • PID output can directly affect field equipment. Begin testing with a low output range and small gains.
  • IpidRun() retains the previous output until the sampleMs interval has elapsed. It may be called repeatedly in loop().
  • The integral term is automatically constrained by the output limits to reduce windup. Use IpidItermLimit() if additional limits are needed.
  • The derivative term is calculated from the PV change to reduce abrupt jumps caused by setpoint changes.
  • IpidReset() resets the integral term, previous PV and previous output value.
  • Use the same id for only one control loop.

← Built-in Command List

en-us_commands/reference/ipidset.1788791734.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki