TI的 InstaSPIN-foc的电流环采用传统pid控制器,pid参数自整定方法归纳总结:
这里以串级式pid探讨:G(s)= Kp + Kp*Ki/s ------------------------------------------------------------------------------------------------(1)
简化电机数学模型,有电机输出电流I和输入电压V之间的传递函数:I(s)/ V(s)= (1/R) / (1+(L/R)*s)----------------------(2)
根据控制理论中控制器设计原则上讲,希望pid的零点能够消除掉电机传递函数中的极点:有 Ki = R/L,可见辨识电阻和电感直接影响积分增益的值;
采用零极点对消后,系统的开环传递函数变为:G(s)= 1/((L/Kp)*S +1) ----------------------------------------------------------(3)
Just a beautiful single-pole low-pass roll off response! 就是一个 一阶低通滤波器;
以一阶惯性环节为例。G(s)= 1 /(Ts+1),将s = jw带入G(s),可知一阶惯性环节的转折频率w = 1/T,注意这里w的单位为rad/s;
可知(3)式的转折频率为w = Kp/L,TI的手册中写到Kp/L = Bandwidth。其实这里的Bandwidth就是我们这里说的转折频率w,单位都为rad/s;
TI将转折频率w定义为 Bandwidth,其实就是转折频率w一阶低通滤波器的-3dB带宽,具体可以去看看他的幅频曲线。
好,言归正传!我们这里是要确定电流环的比例增益Kp = L * Bandwidth;
这里TI将Bandwidth(rad/s) = 2*pi*CurrentControlFrequency/20;就是说将电流环的带宽定义为电流环采样频率的1/20;注意单位转换;
这样就确定电流环的比例增益Kp = L * Bandwidth = L*2*pi*CurrentControlFrequency/20
至此就完成了FAST电流环pid参数的自整定工作。当然我们也可以看到这里的pid参数依赖于电机参数辨识结果,可以进行适当的微调;
至于Bandwidth为什么定义为电流环采样频率的1/20,还望请教大家给解惑!