正常PI调节器的控制算法是这样秀的:
u(t)=kp[et+1Ti0te(t)dt]

这个大家应该轻车熟路,一个比例一个积分,在C中要把这玩意离散化,离散化方程如下:
uKT=KPeKT+Kpij=0Ke(j)

这样就可以屁颠屁颠的写程序了,微分的自己想办法加吧,你懂的,不难,
题外话,一般离散化的时候可以先把其s函数写出来,然后再搞一个matlab进行z变换,额,完美,搞定。
式中的积分系数Kpi=KP*TTi

,T就是采样时间了,越高越好
但是在实际应用中会发现,累加的话存储单元大量占用,因此还是需要进行修订的
知:临近的两次采样输出量不同,输出量的变化就可以表示为这样子:
∆uKT=uKT-uKT-T=KpeKT-eKT-T+Kie(KT)

应该都可以理解吧,不行的话,就把公式代入就可以获得了,
这样就可以得到u(KT)了
uKT=uKT-T+KpeKT-eKT-T+Kie(KT)

搞定,收工。。。。