Of Pictures PICs and PIDs
Hi misterT
I probably used the expression 'dont worry' wrongly. Anyway in PIC01_CB the PID execution rate is known; 10, 20 40, 50, 100 or 200mSec. Input can come from a AI or other function block and output can go to another (say a cascade controller) function block or drive the PWM function block. The integer term is limited (for windup) and the integer (I-gain term) you can change to suit loop parameters. Same goes for the P and D terms. The derivative calculation is not based on the usual 3-point differencing method where a 2nd degree polynomial approximation is used. The method i used is more related to a least-squares approach, and much simpler! The attached is an example of the documentation for PIC01_CB function blocks and will explain the derivative algorithm, which uses the error signal to calculate. I plan to later include an option to use PV for this calculation. Also in the pipeline in a controller using the velocity algorithm, then you realy dont need to worry about those integral limits!
You talk about 'serious' control applications - I will not use PIC01_CB for a pace-maker but so far it has served me 'very' well in a couple of applications and i learnt a few things about VB.NET, which is used for the IDE.