个人感觉
out(1)-vout(0)=kp(e(1)-e(0)) [1]
... ... ...........
out(k)-out(k-1)=kp(e(k)-e(k-1)) [k]
所有式子想加,out(k)=kp*e(k) (out(0)=0)
所以楼主,你这个本质上还是位置式的PID。
增量式的PID:out(k)=kp*(e(k)-e(k-1)),这种方式更多的是用在一些输入量需要累加的执行器,例如步进电机。
回归正题,首先说明楼主使用的还是位置式PID,即效果和Vout=kp*e(k)完全一样,直流电机两端电压和转速是近似线性关系,可以当线性来处理,即n=Vout楼主试想,如果你设定的转速ni,你只加比例环节,如果输出转速no=ni,则e(k)=0,那Vout=kp*e(k)=0,按理n=0,这与no=ni矛盾,所以你只加比例环节,电机进入稳定状态后,必然会存在偏差。而这个e*kp应该与你的稳态转速近似成比例。所以你只加比例环节,稳定后的转速n,必然会与输入ni偏差detn=ni-n。你增大比例环节,只能减小这detn,而从原理上不可能消除这个detn,而且kp过大还会使系统震荡,如果你想消除这个偏差,必须引入匠人所说的积分环节,因为引入积分环节之后,即使no-ni=0,即e(k)=0,但是积分作用是ki*(e(0)+e(1)+...+e(k)),通过积分累积效果,便可使Vout=no=ni。建议楼主去看一下数字PID文档,网上很多,也不难。 |