永磁同步电机PI控制器设计

前言

电机控制中,使用最多的就是PI控制器了,因为D参数通常使用不多。我打算以PMSM双环控制为例,对传统的PI控制进行分析。
下面是看到的一段PI控制器的介绍

按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系统动态品质校正的一种有效方法,它的参数整定方式简便,结构改变灵活(PI、PD、…)。

PI控制器具有一定的鲁棒性,因为它本身的定义上看,可以对误差校正,且校正本身不依赖于电机参数,只是PI控制器自身参数不合适的情况下,PI调节的动态性会不满意,最终稳态值可能也会有震荡。
PI控制器因为用的较多,参数设计方法很成熟。在使用FOC控制电机的情况下,电拖书里的直流电机双环参数设计方法可以被用于永磁同步电机的参数设计。当然,各家厂商对PI控制器的参数设计都提出过相应的设计方法,我个人是比较倾向于使用它们的设计方法,毕竟电拖书中要求PI控制器设计为I型和II型系统时,需要已知系统本身的延迟时间等参数,而这些参数比较难获得,厂商提供的电流环设计是按照一阶惯性环节设计的,还是比较简单的。

芯片厂商方案PI控制设计

ST的双环设计

电流环设计

设计时首先考虑进行电流环参数设计。当电机处于中低速运行时,可以忽略电流环输出的电压耦合项,电机的电流环PI参数配置,应当将PI调节器与电机构成一个闭环系统来看。
假设现在反电势电压为常数(因为通常相对于电流来说反电势电压变化缓慢),可将从电机电压到电机电流的小信号传输函数定义为:
I(s)V(s)=1RS1+LSRSs\frac{{I(s)}}{{V(s)}} = \frac{{\frac{1}{{{R_S}}}}}{{1 + \frac{{{L_S}}}{{{R_S}}}s}}
永磁同步电机PI控制器设计
在这个系统中,按照零极消除的原则来配置PI参数,可以使得系统稳定。其中的AB为采样系数,这里可以认为都是1,即用真实值计算。
永磁同步电机PI控制器设计
根据ST等官方的参考手册,
使 KpKI=LsRs\frac{{{K_p}}}{{{K_I}}} = \frac{{{L_s}}}{{{R_s}}} ,则有可能实现零极消除;
在此情况下,闭环系统被还原成一阶系统;
可使用适当的KI值达到闭环系统要求的动态特性。

永磁同步电机PI控制器设计
永磁同步电机PI控制器设计
这样设计完成后,电机的电流环控制系统如上,此时,系统等效于一个一阶低通滤波器。并且有
G(s)=1τs+1=1RsKIs+1=1LsKPs+1\begin{array}{l} G(s) = \frac{1}{{\tau s + 1}}\\ = \frac{1}{{\frac{{{R_s}}}{{{K_I}}}s + 1}}\\ = \frac{1}{{\frac{{{L_s}}}{{{K_P}}}s + 1}} \end{array}
那么,PI参数应该按照下面来配置,同时为了方便积分因子的计算,把采样频率SAMPLING_FREQ包含在KI表达式中(这一点非常重要,KI参数设计必须要考虑离散化)
Kp=LsωcKI=Rsωcfk\begin{array}{l} {K_p} = {L_s}{\omega _c}\\ {K_I} = \frac{{{R_s}{\omega _c}}}{{{f_k}}} \end{array}
ωc{\omega _c}为闭环带宽。比如使 ωc=1500rad/sec{\omega _c} = 1500{\rm{ }}rad/sec,则电流控制系统的时间常数为0.66ms。
关于加入采样频率的具体推导是
ki0te(τ)dτ=kiTsk=1ne(kTs)=KIk=1ne(kTs){k_i}\int\limits_0^t {e(\tau )} d\tau = {k_i}{T_s}\sum\limits_{k = 1}^n {e(k{T_s}) = } {K_I}\sum\limits_{k = 1}^n {e(k{T_s})}
式中采样周期就是采样频率的倒数。
总结下来,这一方法把电流环设计变为了单参数ωc{\omega _c}的调节,简化了电流环的设计。

速度环设计

转速环PI调节器的参数整定难度很大,关于电拖所用的参数整定方法,《现代永磁同步电机控制原理及MATLAB仿真》一书的评价是

采用自动控制理论中的典型II系统进行PI参数整定。虽然该方法具有一定的实际价值,但是Pl调节器参数整定的设计过程中涉及的中间变量较多。并且很多情况下是基于特定假设条件得到的近似结果。

所以我也不太推荐用II型系统法来进行速度环参数的设计。
ST早期的库说明中没有对速度环的参数设计介绍,但是在5.0的库中,我看到了参数设计。
永磁同步电机PI控制器设计

这个整定方法和有功阻尼法很像,所以我后面都是按照《现代永磁同步电机控制原理及MATLAB仿真》里面的有功阻尼法讲速度环参数设计
为了便于转速环PI调节器的参数整定,重写三相PMSM的电机运动方程为
Jdωmdt=TeTLBωmTe=32pniq[id(LdLq)+ψf]\begin{array}{l} J\frac{{d{\omega _m}}}{{dt}} = {T_e} - {T_L} - B{\omega _m}\\ {T_e} = \frac{3}{2}{p_n}{i_q}[{i_d}({L_d} - {L_q}) + {\psi _f}] \end{array}
其中:ωm{\omega _m}为电机的机械角速度;J为转动惯量;B为阻尼系数;TL{T_L}为负载转矩。
定义有功阻尼为
iq=iqBaωm{i_q} = i_q^* - {B_a}{\omega _m}
当采用id=0的控制策略,并假定电机在空载(TL=0)情况下启动时,由上面三式子可以得到
dωmdt=1.5pnψfJ(iqBaωm)BJωm\frac{{d{\omega _m}}}{{dt}} = \frac{{1.5{p_n}{\psi _f}}}{J}(i_q^* - {B_a}{\omega _m}) - \frac{B}{J}{\omega _m}
将式中的极点配置到期望的闭环带宽,可以得到转速相对于q轴电流的传递函数为
ωm(s)=1.5pnψf/Js+βiq(s){\omega _m}(s) = \frac{{1.5{p_n}{\psi _f}/J}}{{s + \beta }}i_q^*(s)
计算有功阻尼的系数Ba:
Ba=βJB1.5pnψf{B_a} = \frac{{\beta J - B}}{{1.5{p_n}{\psi _f}}}
若采用传统的PI调节器,则转速环控制器的表达式为
iq=(Kpω+Kiωs)(ωmωm)Baωmi_q^* = ({K_{p\omega }} + \frac{{{K_{i\omega }}}}{s})(\omega _m^* - {\omega _m}) - {B_a}{\omega _m}
因此,PI调节器的参数Kpw、Kiw可由下式整定
{Kpω=βJ1.5pnψfKiω=βKpω\left\{ \begin{array}{l} {K_{p\omega }} = \frac{{\beta J}}{{1.5{p_n}{\psi _f}}}\\ {K_{i\omega }} = \beta {K_{p\omega }} \end{array} \right.
其中:β\beta是转速环期望的频带带宽。相对于采用典型II系统进行PI调节器参数整定的方法,这一参数整定方法简单,并且参数调整与系统的动态品质关系明确。

永磁同步电机PI控制器设计
当然了,实际用的时候,I参数要除以速度环执行频率,现在的设计都是连续域下的。

TI参数设计方法

电流环设计

永磁同步电机PI控制器设计
TI的设计方法中,电流环的设计与ST的差不多,电流环 作为速度环PI调节器的内环。
有区别的是,PI的环路结构,注意TI里面的从上面的表达式可以看到, KP{K_P}用于设定闭环系统响应的带宽, KP{K_P}越大,电流环路带宽越大。后面将分析如何选择合适的带宽。无论选择的带宽频率是多少,都可能会出现等于感抗的情况。
同时,KIKP\frac{{{K_I}}}{{{K_P}}} 的配置是用于设定PI 控制器的零点。当控制自身传输函数中只有一个实极点的设备参数时(如电机中的电流), KIKP\frac{{{K_I}}}{{{K_P}}}应将设为该实极点的值。这样可消除极点/零点并生成同样只有单个实极点的闭环响应。即非常稳定、不含谐振峰的响应。
目前,更常采用的是类似ST的PI控制器结构,故实际使用需要注意换算。

速度环设计

TI的速度环设计更像电拖的II型系统设计,分析得比ST的也全面多了。
基于前面中低速下的电流环PI参数,此时,PI 电流控制器作为内部环路的级联PI 速度环路。
速度环比电流环的设计更为复杂一些。另外,要正确设计速度环,还需要在电流环的基础上了解更多的系统参数。下图显示了构成级联速度控制环路的全部组件。所谓“级联”是指控制系统由具有一个或者更多内部环路的外部环路组成。
永磁同步电机PI控制器设计
Gcurrent(s)=1Lkpseriess+1{G_{current}}(s) = \frac{1}{{\frac{L}{{k_p^{series}}}s + 1}}
用该传递函数代替电流环。
对于速度环,传递函数为
PIspeed(s)=spdkpseries×spdkiseriess+spdkpseries=spdkpseries×spdkiseries(1+sspdkiseries)s\begin{array}{l} P{I_{speed}}(s) = \frac{{spdk_p^{series} \times spdk_i^{series}}}{s} + spdk_p^{series}\\ \begin{matrix} {}&{ = \frac{{spdk_p^{series} \times spdk_i^{series}(1 + \frac{s}{{spdk_i^{series}}})}}{s}} \end{matrix} \end{array}
对PMSM, iq{i_q}与电机转矩的传递函数为
Mtr(s)=32pψfMtr(s) = \frac{3}{2}p{\psi _f}
那么,整个系统的开环传递函数为
GH(s)=(spdkpseries×spdkiseries(1+sspdkiseries)s)(1Lkpseriess+1)(32pψf)(1J1s)GH(s) = \left( {\frac{{spdk_p^{series} \times spdk_i^{series}(1 + \frac{s}{{spdk_i^{series}}})}}{s}} \right)\left( {\frac{1}{{\frac{L}{{k_p^{series}}}s + 1}}} \right)\left( {\frac{3}{2}p{\psi _f}} \right)\left( {\frac{1}{J}\frac{1}{s}} \right)
简化式子
GH(s)=K×spdkpseries×spdkiseries(1+sspdkiseries)s2(Lkpseriess+1)K=3pψf2J\begin{array}{l} GH(s) = \frac{{K \times spdk_p^{series} \times spdk_i^{series}(1 + \frac{s}{{spdk_i^{series}}})}}{{{s^2}\left( {\frac{L}{{k_p^{series}}}s + 1} \right)}}\\ K = \frac{{3p{\psi _f}}}{{2J}} \end{array}
这里存在三个极点
两个极点位于s=0s = 0 处,因此低频衰减率为每十倍频40Db.
另一个极点为 s=KpseriesLs = - \frac{{K_p^{series}}}{L}(电流控制器的极点)
还有一个零点 s=spdKiseriess = - spdK_i^{series}处。
为了保持稳定运行,s=KpseriesLs = - \frac{{K_p^{series}}}{L} 极点的频率应高于s=spdKiseriess = - spdK_i^{series}零点频率。除此之外,还可以使用PI参数的无数种组合得到不同的系统响应,具体取决于是要更高的带宽还是要更高的稳定性。可以定义与系统稳定性成正比、与带宽成反比的单个参数,可使用该参数自动设置PI参数,从而产生所选带宽下的最大相位裕度。
s=KpseriesLs = - \frac{{K_p^{series}}}{L}的频率高于 s=spdKiseriess = - spdK_i^{series}时,并且单位增益频率介于上述两个频率之间,则得到的波特图应类似下图
永磁同步电机PI控制器设计

曲线形状之所以重要的原因是0dB 频率处的相移决定着系统稳定性。在极点频率与零点频率之间分离已确定的情况下,为使相位裕度最大化(相移:180°),0dB 频率的位置应恰好在对数刻度上极点频率与零点频率之间的中点位置。即,
ω0dB=δ×ωzeroωpole=δ×ω0dBωpole=δ2×ωzero\begin{array}{l} {\omega _{0dB}} = \delta \times {\omega _{zero}}\\ {\omega _{pole}} = \delta \times {\omega _{0dB}}\\ {\omega _{pole}} = {\delta ^2} \times {\omega _{zero}} \end{array}
那么,spdKiseries=Kpseriesδ2LspdK_i^{series} = \frac{{K_p^{series}}}{{{\delta ^2}L}}

其中, δ\delta为阻尼因子。δ\delta值越大,零点角频率与电流环路极点频率之间的分离程度越大。分离程度越大,两个频率之间所能够达到的相位裕度峰值越大。这种稳定性的提升建立在牺牲速度环路带宽的基础上。δ=1\delta= 1 时,零点角频率与电流环路极点频率相等,这样能够消除极点/零点并且系统将变得不稳定。由于相位裕度> 0,因此理论上只要δ>1\delta>1 时,系统都是稳定的。但是,δ\delta 的值接近1 会导致性能上表现出严重的欠阻尼。
速度环路的开环传输函数在频率等于零点拐点频率与δ 的乘积时为单位增益
GH(s)=K×spdkpseries×spdkiseries(1+sspdkiseries)s2(Lkpseriess+1)K=3pψf2J\begin{array}{l} GH(s) = \frac{{K \times spdk_p^{series} \times spdk_i^{series}(1 + \frac{s}{{spdk_i^{series}}})}}{{{s^2}\left( {\frac{L}{{k_p^{series}}}s + 1} \right)}}\\ K = \frac{{3p{\psi _f}}}{{2J}} \end{array}

K×spdkpseries×spdkiseries(1+sspdkiseries)s2(sδ2×spdkiseries+1)s=j×δ×spdKiseries=1{\left| {\frac{{K \times spdk_p^{series} \times spdk_i^{series}(1 + \frac{s}{{spdk_i^{series}}})}}{{{s^2}\left( {\frac{s}{{{\delta ^2} \times spdk_i^{series}}} + 1} \right)}}} \right|_{s = j \times \delta \times spdK_i^{series}}} = 1

对上面式子 “s”进行指定替换和整理后,得到:
δ×K×spdKpseriesδ2(Kpseriesδ2×L)=1\frac{{\delta \times K \times spdK_p^{series}}}{{{\delta ^2}(\frac{{K_p^{series}}}{{{\delta ^2} \times L}})}} = 1
最终,可得
spdKpseries=KpseriesL×δ×K=δ×spdKiseriesKspdK_p^{series} = \frac{{K_p^{series}}}{{L \times \delta \times K}} = \frac{{\delta \times spdK_i^{series}}}{K}
据此,可以得到最后的速度环PI参数。
这种方法不用根据经验调整四个看似与系统性能相关性很小的PI 系数,而是只需要定义两个有意义的系统参数:电流控制器带宽和速度环路阻尼系数。同时,需要结合电机的模型获得电机的几个参数。
阻尼因子是代表系统稳定性与系统带宽之间权衡的一个数字。现在,已经对双环控制器的设计完成了简化,即四个PI 系数简化为两个“系统”参数。其中一个参数是电流控制器带宽。另一个是阻尼因子(δ)。这里的参数调节仅针对只考虑仅含转矩和惯性组件(即,无扭转谐振或粘滞阻尼)的负载。
永磁同步电机PI控制器设计

速度控制器开环幅度和相位响应是δ 的函数
由于电流带宽值的作用只是为频率轴提供参考点,因此其数值并不重要。但无论电流带宽是多少,曲线形状都不会改变。阻尼因子在1.5 至70 范围内扫描,分为8 个离散段,以显示如何对系统响应产生影响。值为1.0 时所对应的条件是:开环增益截距为0dB 且刚好在电流控制器带宽的频率处。这会导致在该频率处极点/零点消除且相位裕度为零。很明显,相位裕度为零对系统来说并不是件好事情。
阻尼因子方程的一个目标是在给定带宽条件下获得最大稳定性。对于上图中的某个频率,当开环相位曲线中的相位裕度峰值达到自身最大值时,开环增益曲线恰好通过0db。随着稳定性因子增加,最终会在信号相移接近-90 度时达到下降点。但是,增益裕度会继续增加,其结果是大幅降低系统响应速度。
根据TI的手册建议,得到以下计算电流环带宽的公式
BWc=KpseriesL=BWS(δ+2.16×eδ2.81.86)B{W_c} = \frac{{K_p^{series}}}{L} = B{W_S}(\delta + 2.16 \times {e^{\frac{\delta }{{2.8}}}} - 1.86)
BWsB{W_s}是速度控制器带宽,单位是rad/s。
永磁同步电机PI控制器设计
实际控制系统中,还存在速度滤波的环节。它会影响传递函数。
永磁同步电机PI控制器设计
同时,速度PI 控制器需要考虑的参数:电流限制、钳位和惯性。这些都会对PI参数的配置产生影响。
此外,矢量控制中,两个电流环相互之间存在的耦合影响,对此的解耦方案有前馈解耦等。
永磁同步电机PI控制器设计
id(R+pLs)=Ud+ωLsiqiq(R+pLs)=Uqω(Lsiq+ψf)\begin{array}{l} {i_d}(R + p{L_s}) = {U_d} + \omega {L_s}{i_q}\\ {i_q}(R + p{L_s}) = {U_q} - \omega ({L_s}{i_q} + {\psi _f}) \end{array}
注:国际标准单位下
永磁同步电机PI控制器设计
同时,采样和数据处理格式对PI调节器也有影响。
永磁同步电机PI控制器设计

在上图所示的数字控制系统中,系统在PWM 周期开始时通过ADC 对电机信号进行采样并执行相应的控制计算,然后将得到的控制电压存入双缓冲PWM 寄存器。上述值在PWM 模块中保持未使用状态,直到下一个PWM 周期开始时才会将其作为PWM 输出的时钟信号。从系统建模的角度看,这就相当于采样频率等于PWM 更新频率时的采样和保持功能。采样和保持功能的固定时间延迟表现为滞后相位角,频率越高时滞后情况越严重。
下图显示了采样和保持功能的标准化频率曲线图,假设采样频率为1。相位曲线是最重要的图形,因为它显示了采样和保持功能的相位延迟频率能够达到远低于采样频率的水平。例如,即使在采样频率的十分之一处,采样和保持(S&H) 功能仍然会产生-18 度的相移。
永磁同步电机PI控制器设计

针对低载波比下的数字控制系统,尽管不存在完美比率,但通常倾向于使用经验法则,即采样频率应至少为电流控制器带宽(BWc) 的10 倍。这样可确保S&H 相位延迟的影响仅从电流控制器的相位裕度中减去18 度,从而得到非常稳定的72 度相位裕度。当然,如有需要还可设置更高的采样频率,但这通常需要使用具有更高MIPS 的更加昂贵的处理器。
假如系统响应迟缓且电机输出似乎未达到额定转矩,则可能是系统中粘滞阻尼过大。

总结

目前有许多新的控制算法,像滑模控制、模型预测控制等,这些算法可能会有更好的控制效果,但是PI控制的参数设计还是有必要学习的,毕竟PI控制器在普通性能的单片机上都能跑,而且它的经典性也是毋庸置疑的。