- 只证明三个串级pid等于新串级PID输出之和;
- 新PID 与原有pid参数有数量关系,如果一个为0,则的参数都不用计算;
- 用python的符号数学库sympy计算
import sympy as sp
kp1,ki1,kd1,e1,ep1,sigmae1,kp2,ki2,kd2,e2,ep2,sigmae2,kp3,ki3,kd3,e3,ep3,sigmae3 = sp.symbols("kp1,ki1,kd1,e1,ep1,sigmae1,kp2,ki2,kd2,e2,ep2,sigmae2,kp3,ki3,kd3,e3,ep3,sigmae3")
outPut1,outPut2,outPut3 = sp.symbols("outPut1,outPut2,outPut3")
input2,input3 = sp.symbols("input2,input3")
outPut1 = kp1*e1 + ki1*sigmae1 + kd1*(e1-ep1)
input2 = outPut1 + e2
outPut2 = kp2*input2 + ki2*sigmae2 + kd2*(e2-ep2)
input3 = outPut2 + e3
outPut3 = kp3*input3 + ki3*sigmae3 + kd3*(e3-ep3)
KP1 = kp1*kp2*kp3
KI1 = ki1*kp2*kp3
KD1 = kd1*kp2*kp3
KP2 = kp2*kp3
KI2 = ki2*kp3
KD2 = kd2*kp3
KP3 = kp3
KI3 = ki3
KD3 = kd3
OutPut1 = KP1*e1 + KI1*sigmae1 + KD1*(e1-ep1)
OutPut2 = KP2*e2 + KI2*sigmae2 + KD2*(e2-ep2)
OutPut3 = KP3*e3 + KI3*sigmae3 + KD3*(e3-ep3)
totalOutPut = OutPut1 + OutPut2 + OutPut3
sp.expand(outPut3) == sp.expand(totalOutPut)
输出结果:
True