PID Algorithm Question

I ran the math on the ISA and Velocity algorithm, and the tuning parameters are the same. Feed forward is the only thing that works completely different, and I can’t think of a use for it on the velocity algorithm, as implemented.

I haven’t seen this behavior. What I have found is that the integral is recalculated so the PID output matches the output from the previous scan of the PID. This means if you are in manual and change the output of the PID, you must wait for a scan to complete before setting the PID to Auto, which is super annoying and I think Opto22 should change this behavior if possible.
Fortunately the velocity algorithm doesn’t suffer from this behavior.

My PID bug list:

  1. Changing the output on a non-velocity PID should trigger an integral recalculation immediately, or the algorithm should look at the current value of the output at scan time, and not the output from the last scan (wherever that is stored).

  2. Feed forward for the velocity algorithm doesn’t work as it should. There needs to be a TempOutput for OutputChange calculation and then this should be used with the feed forward for a final output:

TempOutput = (LastTempOutput + OutputChange)
Output = OutputChecks(TempOutput + FeedFwd * TuneFF)

This would allow the feed forward to work consistently across all the algorithms.

  1. This equation in PAC Control Help is incorrect/misleading:
    DOutput = Span * Gain * ( DTermP + DTermI + DTermD )

There is no DTermP, DTermI or DTermD - just TermP, TermI and TermD. The delta on the “Terms” is not used. The same mistake is in 1465 OptoMMP Protocol Guide on page 58.

1 Like