之前写过有关Boost电路的博客:
【Simulink】电池Boost+PI+无差拍直流母线稳压
【Simulink】电池Boost+PI+FCS-MPC直流母线稳压(附小信号建模)
1. Boost电路
1.1 数学模型
拓扑图:
电感电流 i L i_L iL 和输出电压 u o u_o uo 为控制变量, d d d 为占空比:
{ L d i L d t = u i − ( 1 − d ) u o C d u o d t = ( 1 − d ) i L − u o R \begin{cases}L\frac{\mathrm{d}i_L}{\mathrm{d}t}=u_i-(1-d)u_o\\C\frac{\mathrm{d}u_o}{\mathrm{d}t}=(1-d)i_L-\frac{u_o}{R}\end{cases} {LdtdiL=ui−(1−d)uoCdtduo=(1−d)iL−Ruo
1.2 小信号建模
传递函数计算过程参考我之前的博客 【Simulink】电池Boost+PI+FCS-MPC直流母线稳压(附小信号建模)
从占空比 d ^ \hat d d^ 到输出电压 u ^ o \hat u_o u^o 的传递函数 G u d ( S ) G_{u d}(S) Gud(S):
G u d ( S ) = u o ( s ) d ^ ( s ) ∣ u ^ i ( s ) = 0 = ( 1 − D ) U o − s L I L L C s 2 + L R s + ( 1 − D ) 2 G_{u d}(S)=\frac{u_o\left(s\right)}{\hat{d}\left(s\right)}\Bigg|_{\hat{u}_i(s)=0}=\frac{(1-D)U_o-sLI_L}{LCs^2+\frac LRs+(1-D)^2} Gud(S)=d^(s)uo(s) u^i(s)=0=LCs2+RLs+(1−D)2(1−D)Uo−sLIL
从占空比 d ^ \hat d d^ 对电感电流的传递函数 G i d ( S ) G_{i d}(S) Gid(S):
G i d ( S ) = i L ( s ) d ^ ( s ) ∣ u ^ i ( s ) = 0 = − R C s + 1 R U o + ( 1 − D ) I L s L R C s + 1 R + ( 1 − D ) 2 = − U o C s − 2 U o R L C s 2 + L R s + ( 1 − D ) 2 G_{i d}(S)=\frac{i_L\left(s\right)}{\hat{d}\left(s\right)}\Bigg|_{\hat{u}_i(s)=0}=\frac{-\frac{RCs+1}RU_o+(1-D)I_L}{sL\frac{RCs+1}R+\left(1-D\right)^2}=\frac{-U_oCs-\frac{2U_o}R}{LCs^2+\frac LRs+(1-D)^2} Gid(S)=d^(s)iL(s) u^i(s)=0=sLRRCs+1+(1−D)2−RRCs+1Uo+(1−D)IL=LCs2+RLs+(1−D)2−UoCs−R2Uo
从输入电压 u ^ i \hat u_i u^i 到输出电压 u ^ o \hat u_o u^o 的传递函数 G u u ( S ) G_{u u}(S) Guu(S):
G u u ( S ) = u o ( s ) u i ^ ( s ) ∣ d ^ ( s ) = 0 = 1 − D L C s 2 + L R s + ( 1 − D ) 2 G_{u u}(S)=\frac{u_o\left(s\right)}{\hat{u_i}\left(s\right)}\Bigg|_{\hat d(s)=0}=\frac{1-D}{LCs^2+\frac LRs+(1-D)^2} Guu(S)=ui^(s)uo(s) d^(s)=0=LCs2+RLs+(1−D)21−D
从电感电流 i ^ L \hat i_L i^L 到输出电压 u ^ o \hat u_o u^o 的传递函数 G u i ( S ) G_{u i}(S) Gui(S):
G u i ( S ) = u o ( s ) i L ^ ( s ) ∣ u ^ i ( s ) = 0 = 1 − D L C s 2 + L R s + ( 1 − D ) 2 G_{u i}(S)=\frac{u_o\left(s\right)}{\hat{i_L}\left(s\right)}\Bigg|_{\hat u_i(s)=0}=\frac{1-D}{LCs^2+\frac LRs+(1-D)^2} Gui(S)=iL^(s)uo(s) u^i(s)=0=LCs2+RLs+(1−D)21−D
2. ADRC控制原理
自抗扰控制(Active Disturbance Rejection Control, ADRC)是由韩京清先生于1998年正式提出,其独特之处在于它把作用于被控对象的所有不确定因素归结为“未知扰动”,而用对象的输入输出数据对它进行估计并补偿。
论文链接
PID存在的问题:
1)设定值通常作为阶跃函数给出,不适用于大多数动力学系统,因为它相当于要求输出,从而要求控制信号进行突然跳跃;
2)由于噪声敏感性,PID通常在没有D部分的情况下实现;
3)PID三项的权重总和虽然简单,但基于误差的当前和过去及其变化率,可能不是最佳控制律;
4)积分项虽然对消除稳态误差至关重要,但也引入了其他问题,如饱和和由于相位滞后而降低的稳定裕度。
经典的ADRC框图:
⭐️ ADRC给出的解决方案:
1)a simple differential equation to be used as a transient profile generator(一个简单的微分方程作为瞬态轨迹生成器);
2)a noise-tolerant tracking differentiator (耐噪声跟踪微分器);
3)the nonlinear control feedback law(非线性控制律);
4)the total disturbance estimation and rejection(全扰动估计和抑制,通过构造状态观测器 (Extended state observer, ESO) 解决).
2.1 跟踪微分器(Tracking differentiator)
柔化启动,求出输入信号的微分,同时通过引入过渡过程有效降低输出信号的超调量,使得v1跟踪v,v2是v的微分。
论文具体内容:
在 PID 执行过程中,信号
v
v
v 的微分通常可近似得到如下结果:
y = s τ s + 1 v = 1 τ ( 1 − 1 τ s + 1 ) v y=\frac{s}{\tau s+1}v=\frac{1}{\tau}\left(1-\frac{1}{\tau s+1}\right)v y=τs+1sv=τ1(1−τs+11)v
在时域中:
y ( t ) = 1 τ ( v ( t ) − v ( t − τ ) ) ≈ v ˙ ( t ) y(t)=\frac{1}{\tau}\left(v(t)-v(t-\tau)\right)\approx\dot{v}(t) y(t)=τ1(v(t)−v(t−τ))≈v˙(t)
这种近似方法对 v v v 中的噪声仍然相当敏感,因为噪声被放大了 1 / τ 1/τ 1/τ 倍。也就是说,如果 v ( t ) v(t) v(t) 包含噪声 n ( t ) n(t) n(t),那么 v ′ ( t ) v'(t) v′(t) 在上式中的第一项就包含 n ( t ) / τ n(t)/τ n(t)/τ。为了降低这种扰动放大对系统的造成的不良影响,设计了一种新型的近似微分公式去代替传统的微分提取法:
v ˙ ( t ) ≈ v ( t − τ 1 ) − v ( t − τ 2 ) τ 2 − τ 1 \dot{v}(t)\approx\frac{v(t-\tau_1)-v(t-\tau_2)}{\tau_2-\tau_1} v˙(t)≈τ2−τ1v(t−τ1)−v(t−τ2)
两个延迟信号是由两个惯性环节获取的,可有效降低噪声放大所带来的不利影响。用二阶传递函数近似实现
w ( s ) = 1 τ 2 − τ 1 ( 1 τ 1 s + 1 − 1 τ 2 s + 1 ) = s τ 1 τ 2 s 2 + ( τ 1 + τ 2 ) s + 1 , τ 2 > τ 1 > 0 w(s)=\frac{1}{\tau_2-\tau_1}\left(\frac{1}{\tau_1s+1}-\frac{1}{\tau_2s+1}\right)=\frac{s}{\tau_{1}\tau_{2}s^{2}+(\tau_{1}+\tau_{2})s+1},\quad\tau_2>\tau_1>0 w(s)=τ2−τ11(τ1s+11−τ2s+11)=τ1τ2s2+(τ1+τ2)s+1s,τ2>τ1>0
若式中 τ 1 , τ 2 \tau_1, \tau_2 τ1,τ2 非常接近 τ \tau τ ,则传递函数可近似成:
w ( s ) ≈ s τ 2 s 2 + 2 τ s + 1 = r 2 s s 2 + 2 ξ r s + r w(s)\approx\frac{s}{\tau^{2}s^{2}+2\tau s+1}=\frac{r^{2}s}{s^{2}+2\xi rs+r} w(s)≈τ2s2+2τs+1s=s2+2ξrs+rr2s
式中, ξ \xi ξ 时进入到临界阻尼状态,此时,系统进入稳态的超调量很小。
如果已经有柔化启动的方法,跟踪微分器可以省略。
2.2 误差反馈控制率(Feedback control law)
PID作为一种控制法则,采用了跟踪误差的当前、累积和预测形式的线性组合,忽略了其他组合的可能性。作为替代,提出以下非线性函数:
f a l ( e , α , δ ) = { e δ 1 − α , ∣ x ∣ ≤ δ ∣ e ∣ α s i g n ( e ) , ∣ x ∣ ≥ δ f h a n ( x 1 , x 2 , r , h 0 ) fal(e,\alpha,\delta)=\left\{\begin{array}{ll}\frac{e}{\delta^{1-\alpha}},&|x|\leq\delta\\|e|^{\alpha}\mathrm{sign}(e),&|x|\geq\delta\end{array}\right.\\fhan(x_1,x_2,r,h_0) fal(e,α,δ)={δ1−αe,∣e∣αsign(e),∣x∣≤δ∣x∣≥δfhan(x1,x2,r,h0)
2.3 扩张观测器(Extended state observer)
在系统模型为纯积分串联型的假设基础上,将所有其他项(忽略的模型与外界的扰动(噪声))统一为总扰动,并设计龙贝格观测器对其进行观测。
以一个二阶SISO系统为例子,控制对象变为普通的积分串联型控制对象:
{ x ˙ 1 = x 2 x ˙ 2 = f ( x 1 , x 2 , w ( t ) , t ) + b u y = x 1 \left\{\begin{array}{l}\dot{x}_1=x_2\\\dot{x}_2=f\left(x_1,x_2,w(t),t\right)+bu\\y=x_1\end{array}\right. ⎩ ⎨ ⎧x˙1=x2x˙2=f(x1,x2,w(t),t)+buy=x1
其中 y y y 是输出,需要测量和控制, u u u 是输入, f ( x 1 , x 2 , w ( t ) , t ) f\left(x_1,x_2,w(t),t\right) f(x1,x2,w(t),t) 是状态和外部干扰以及时间的多变量函数。
和普通的状态观测器不同,扩展状态观测器设计了一个扩展的状态量来跟踪模型未知部分和外部未知扰动的影响,然后给出控制量补偿总扰动。
高志强老师提出了简化的线性自抗扰观测器(LESO),并提出了带宽法进行参数整定。
3. 非线性ADRC与线性ADRC
3.1 非线性ADRC
韩京清研究员所提出的自抗扰控制方案中,扩张状态观测器的构造采用了基于函数
f
a
l
fal
fal 的非线性结构,控制器的设计也是采用函数
f
a
l
fal
fal 或者最速控制综合函数
f
h
a
n
fhan
fhan 的非线性组合。这种非线性技术能够有效地补偿未知模型和外扰作用,并且在大误差时采用小增益以减小超调,在小误差时采用大增益以增加快速性,用一组控制参数调和了超调与快速性的矛盾,具有很强的跟踪能力。
但是,这种非线性控制的结构较为复杂,同时控制参数过多,不太利于工程应用。
3.2 线性ADRC
针对非线性ADRC存在的不足,高志强老师提出了简化形式的线性ADRC,将所有控制器和扩张状态观测器都以线性形式实现,并给出了一般场合下控制器带宽与观测器带宽的经验关系,进一步简化了ADRC的参数整定方法,便于工程应用。
3.3 Boost变换器的LADRC设计
将总电流参考值 i L r e f i_{Lref} iLref 作为内部电流控制回路的控制信号 u u u,将 y y y 定义为相当于输出电压 u o u_o uo,则控制对象可以写为:
y ˙ = b 1 u + f \dot{y}=b_1 u+f y˙=b1u+f
其中, b 1 b_1 b1 表示可调补偿因子,可以通过扫频法确定(可参考b站此梦千寻的视频),或者直接设为 ( 1 − d ) / C (1-d)/C (1−d)/C ; f f f 为包括参数不确定性和外部未知干扰在内的总干扰。
以输出电压 u o u_o uo 为状态变量建立如下三阶线性扩张状态观测器 (LESO) ,用以估计 f f f:
{ z ˙ 1 = z 2 − β 11 ( z 1 − u o ) z ˙ 2 = z 3 − β 12 ( z 1 − u o ) + b 1 i L r e f z ˙ 3 = − β 13 ( z 1 − u o ) \begin{cases}\dot{z}_1=z_2-\beta_{11}(z_1-u_o)\\\dot{z}_2=z_3-\beta_{12}(z_1-u_o)+b_1 i_{Lref}\\\dot{z}_3=-\beta_{13}(z_1-u_o)\end{cases} ⎩ ⎨ ⎧z˙1=z2−β11(z1−uo)z˙2=z3−β12(z1−uo)+b1iLrefz˙3=−β13(z1−uo)
其中, β 11 \beta_{11} β11、 β 12 \beta_{12} β12 和 β 13 \beta_{13} β13 是观测器增益, z 1 z_1 z1 是 u o u_o uo 的估计值, z 2 z_2 z2 是 z 1 z_1 z1 的微分, z 3 z_3 z3 是系统总扰动的估计值。
设置线性状态误差反馈控制律 (LSEF) :
u = u 0 − z 3 b 1 u=\frac{u_0-z_3}{b_1} u=b1u0−z3
(注意此 u 0 u_0 u0 不是输出电压 u o u_o uo)
假设 z 3 z_3 z3 对总干扰 f f f 可以很好地跟踪,将上式代入前面的 y ˙ = b 1 u + f \dot{y}=b_1u+f y˙=b1u+f,可得:
y ˙ = u 0 − z 3 + f ≈ u 0 \dot{y}=u_0-z_3+f\approx u_0 y˙=u0−z3+f≈u0
被控系统可以转化为一个双积分串联结构, u 0 u_0 u0 选择PD控制器为:
u 0 = k p 1 ( u r e f − z 1 ) − k d 1 z 2 u_0{=}k_{p1}(u_{ref}-z_1){-}k_{d1}z_2 u0=kp1(uref−z1)−kd1z2
其中, u r e f u_{ref} uref 为输出电压参考值, k p 1 k_{p1} kp1 和 k d 1 k_{d1} kd1 为PD控制器待调参数。
由此可得电压外环控制系统闭环传递函数:
G c l = k p 1 s 2 + k d 1 s + k p 1 G_{cl}=\frac{k_{p1}}{s^2+k_{d1}s+k_{p1}} Gcl=s2+kd1s+kp1kp1
如果系统总扰动能够很好地被LESO估计并补偿,PD控制器能够实现该系统对指令的快速无超调跟踪。
或者把PD控制器改成P控制器也可以,最后仿真用了P控制器。
LESO的特征方程为:
λ ( s ) = s 3 + β 11 s 2 + β 12 s + β 13 \lambda(s)=s^3+\beta_{11}s^2+\beta_{12}s+\beta_{13} λ(s)=s3+β11s2+β12s+β13
经过参数化,可把特征方程的极点放在同一个位置( − ω o 1 -\omega_{o1} −ωo1, − ω o 1 -\omega_{o1} −ωo1为观测器带宽,带宽越大,LESO的扰动估计能力越强,但高带宽会提高噪声敏感性):
s 3 + β 11 s 2 + β 12 s + β 13 = ( s + ω o 1 ) 3 s^3+\beta_{11}s^2+\beta_{12}s+\beta_{13}=(s+\omega_{o1})^3 s3+β11s2+β12s+β13=(s+ωo1)3
则 β 11 = 3 ω o 1 , β 12 = 3 ω o 1 2 , β 13 = ω o 1 3 \beta_{11}=3\omega_{o1}, \beta_{12}=3\omega_{o1}^2, \beta_{13}=\omega_{o1}^3 β11=3ωo1,β12=3ωo12,β13=ωo13
类似的,配置控制器的控制带宽为 ω c 1 \omega_{c1} ωc1:
s 2 + k d 1 s + k p 1 = ( s + ω c 1 ) 2 k p 1 = ω c 1 2 , k d 1 = 2 ω c 1 s^2+k_{d1}s+k_{p1}=\left(s+\omega_{c1}\right)^2\\k_{p1}=\omega_{c1}^2, k_{d1}=2\omega_{c1} s2+kd1s+kp1=(s+ωc1)2kp1=ωc12,kd1=2ωc1
如果用P控制器,则 k p 1 = ω c 1 k_{p1}=\omega_{c1} kp1=ωc1
4. Simulink仿真
4.1 仿真参数
电路:
母线电压 Udc=24V
输入电压 Ui=12V
滤波电感 L=0.1mH
滤波电容 C=2000μF
控制:
开关频率 fs=20kHz
ADRC的参数:
最初是按照理论值/经验值设置(比如
ω
o
=
(
3
∼
5
)
ω
c
\omega_{\mathrm{o}}=(3\sim5)\omega_{\mathrm{c}}
ωo=(3∼5)ωc),但效果不是很好,后面完全手调了。
4.2 仿真原理图
matlab版本:2022b
直流电压源经过boost变换器,与直流母线和阻性负载相连。
外环电压环为LADRC控制(三阶LESO),生成电流参考值。
内环电流环为PI控制。
仿真时间为9s,0-3s时,母线电压参考值为24V,负载电阻为90Ω;3-6s时,母线电压参考值为20V,负载电阻为90Ω;6-9s时,母线电压参考值为20V,负载电阻为45Ω。
4.3 仿真结果
母线电压:
放大:
和PI双环对比:
放大:
相比PI双环,ADRC+PI的过渡时间稍微短一点
仿真下载
传送门 (含与PI双环对比)
参考
HAN J. From PID to active disturbance rejection control[J]. IEEE transactions on Industrial Electronics, 2009,56(3): 900-906. (首次提出ADRC)
朱斌. 自抗扰控制入门[M]. 北京: 北京航空航天大学出版社, 2017.
齐梦梦.Boost变换器的自抗扰控制策略研究与设计[D].安徽工业大学,2022.