一文理解电压电流双闭环控制及前馈解耦(入门)(详解)

电压电流双闭环控制作为一种耳熟能详的应用于电力电子、电机驱动和电源管理领域的高性能控制策略。其核心是通过内外环嵌套的闭环结构,实现对系统的快速动态响应和高精度稳态控制。

1.两电平逆变器的电路建模

  • 要研究控制策略,必然和电路结构产生密不可分的联系,所以我们要进行建模。

  • 关于逆变器结构,三电平及多电平的主要区别在于调制策略的不同,我们主要研究其外特性,控制策略方面是一样的,为了便捷性起见,我们针对两电平逆变器进行建模。

  • 下面是一个常见的两电平逆变器的结构示意图:
    在这里插入图片描述

  • 由于复杂性,我采用了建模更为简单的LC型滤波器结构,也是实际低压系统中应用最多的滤波方案。

  • 首先,写出三相电路的方程,E表示逆变器桥臂中点输出电势,U为并网点PCC处的电压,下面是经过L的KVL方程,由于是事先编辑的公式,公式和图片某些字母略有出入。 I a I_a Ia表示图中 i L a i_La iLa,在正式写论文是需要注意,大写一般表示有效值,小写表示瞬时值。
    { L d I a d t = E a − R I a − U a L d I b d t = E b − R I b − U b L d I c d t = E c − R I c − U c \begin{cases} L\frac{\mathrm{d}Ia}{\mathrm{d}t}=Ea-RIa-Ua \\ \\ L\frac{\mathrm{d}Ib}{\mathrm{d}t}=Eb-RIb-Ub \\ \\ L\frac{\mathrm{d}Ic}{\mathrm{d}t}=Ec-RIc-Uc & \end{cases} LdtdIa=EaRIaUaLdtdIb=EbRIbUbLdtdIc=EcRIcUc
    (E和U的表示论文中各式各样,经常混为一谈,也有把E作为电网电压的,由于这几天我在推导VSG的相关模型,将其作为虚拟电动势,也就用E表示。)

  • 经过电容之后的公式:
    { C d U a d t = I a − I o a C d U b d t = I b − I o b C d U c d t = I c − I o c \begin{cases} C\frac{\mathrm{d}Ua}{\mathrm{d}t}=Ia-Ioa \\ \\ C\frac{\mathrm{d}Ub}{\mathrm{d}t}=Ib-Iob \\ \\ C\frac{\mathrm{d}Uc}{\mathrm{d}t}=Ic-Ioc & \end{cases} CdtdUa=IaIoaCdtdUb=IbIobCdtdUc=IcIoc

  • 这里电容电流的参考方向向下流。

  • 接下来经过坐标变换,变化到 α \alpha α β \beta β坐标系,变换的过程不再详解,参考其他博主文章,变化之后的公式如下:
    { L d I α d t = E α − R I α − U α L d I β d t = E β − R I β − U β C d U α d t = I α − I o α C d U β d t = I β − I o β \begin{cases} L\frac{\mathrm{d}I_\alpha}{\mathrm{d}t}=E_\alpha-RI_\alpha-U_\alpha \\ \\ L\frac{\mathrm{d}I_\beta}{\mathrm{d}t}=E_\beta-RI_\beta-U_\beta \\ \\ C\frac{\mathrm{d}U_\alpha}{\mathrm{d}t}=I_\alpha-I_{o\alpha} \\ \\ C\frac{\mathrm{d}U_\beta}{\mathrm{d}t}=I_\beta-I_{o\beta} & \end{cases} LdtdIα=EαRIαUαLdtdIβ=EβRIβUβCdtdUα=IαIoαCdtdUβ=IβIoβ

  • 进一步变换到dq坐标系下:
    { L d I d d t = E d − R I d − U d + ω L I q L d I q d t = E q − R I q − U q − ω L I d C d U d d t = I d − I o d + ω C U q C d U q d t = I q − I o q − ω C U d \begin{cases} L\frac{\mathrm{d}I_d}{\mathrm{d}t}=E_d-RI_d-U_d+\omega LI_q \\ \\ L\frac{\mathrm{d}I_q}{\mathrm{d}t}=E_q-RI_q-U_q-\omega LI_d \\ \\ C\frac{\mathrm{d}U_d}{\mathrm{d}t}=I_d-I_{od} +\omega C U_q\\ \\ C\frac{\mathrm{d}U_q}{\mathrm{d}t}=I_q-I_{oq} -\omega C U_d& \end{cases} LdtdId=EdRIdUd+ωLIqLdtdIq=EqRIqUqωLIdCdtdUd=IdIod+ωCUqCdtdUq=IqIoqωCUd

  • 拉式变换并且合并之后得到得到:
    ( L s + R ) I d = E d − U d + ω L I q (Ls+R)I_{d}=E_{d}-U_{d}+\omega LI_{q} (Ls+R)Id=EdUd+ωLIq
    ( L s + R ) I q = E q − U q − ω L I d (Ls+R)I_{q}=E_{q}-U_{q}-\omega LI_{d} (Ls+R)Iq=EqUqωLId
    C s U d = I d − I o d + ω C U q CsU_{d}=I_{d}-I_{od}+\omega CU_{q} CsUd=IdIod+ωCUq
    C s U q = I q − I o q − ω C U d CsU_{q}=I_{q}-I_{oq}-\omega CU_{d} CsUq=IqIoqωCUd

  • 这里的 ω \omega ω实际上是对Iabc的或者Uabc链式求导得来的耦合项,因为是理想电路模型,所以取理想工频50Hz的 ω \omega ω ω 0 \omega _0 ω0来计算,这样就得到了电路模型。如下图所示,需要注意的是,因为R很小,这里我把LVL中的R相忽略了,用L项近似代替了。
    在这里插入图片描述

  • 根据公式,图片中的电路模型也不难画出,只需要一步一步来即可。在后续的控制中,我们需要倒着来根据输出的UdUq来调整输入的EdEq的值的,也就是控制器实现的功能。有些不明所以的刚入门的同学会以为这就是控制器,实际上这仅仅是电路的模型,控制器是另外的一部分,这张图片是实际电路中的,在simulink中不需要搭建,只需要搭建PI控制环路即可。

2.前馈解耦和控制器的设计

  • 根据图片,我们可以明显看出,出现了交叉耦合,也就是d轴和q轴出现L和C的相互耦合,想要单独控制一项无法实现,因为必然会引入另外一项的耦合,什么是单独控制一项呢,如下图所示:
    在这里插入图片描述
    这里给定是电容电压的指令值,大多数时候即是PCC的电压值,经过电压外环和电流内环即双闭环控制结构,实现某一项的单独控制。
    在这里插入图片描述

  • 什么是前馈解耦?

  • 为了实现我上文说的实现单独某一项的控制,解耦的目的就是为了消除耦合项的影响。

  • 在上图当中,左侧是电流环的控制器,右侧是实际电路的电感模型,在控制器的电流环开头,将实际电路中相互耦合的引入 ω 0 L \omega _0L ω0L先一步放入环路,并且符号与电路模型中的耦合项符号正好相反,这样便可以将耦合项抵消,消除耦合影响。这是电流环的前馈解电感耦合。(看不明白看下一张图比较综合)

  • 引入PI控制,实现无静差控制。
    U d ∗ = ( K i p + K i i s ) ( I d ∗ − I d ) + U d − ω L I q U_{d}^{*}=\left(K_{ip}+\frac{K_{ii}}{s}\right)(I_{d}^{*}-I_{d})+U_{d}-\omega LI_{q} Ud=(Kip+sKii)(IdId)+UdωLIq
    U q ∗ = ( K i p + K i i s ) ( I q ∗ − I q ) + U q + ω L I d U_{q}^{*}=\left(K_{ip}+\frac{K_{ii}}{s}\right)\left(I_{q}^{*}-I_{q}\right)+U_{q}+\omega LI_{d} Uq=(Kip+sKii)(IqIq)+Uq+ωLId
    输出为PCC点电压的指令值。

  • 接下来是解电容耦合,将上面的电流内环部分同时加进来,得到总图:
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/53cb8289d758432489e23956b8375dd8.png

  • 这里将电容也引入电压的前馈,可能有人会问中间经历了两部分,引入的部分到耦合项还是原来的吗?实际上,我们在计算电压环参数的时候,会将电流环等效成一根直线,即根本没有中间的部分,所以可以这样引入前馈。

  • 依然,我们引入PI控制,得到电流指令信号。
    I d ∗ = ( K v p + K v i s ) ( U d ∗ − U d ) + I o d − ω C U q I_{d}^{*}=\left(K_{vp}+\frac{K_{vi}}{s}\right)(U_{d}^{*}-U_{d})+I_{od}-\omega CU_{q} Id=(Kvp+sKvi)(UdUd)+IodωCUq
    I q ∗ = ( K v p + K v i s ) ( U q ∗ − U q ) + I o q + ω C U d I_{q}^{*}=\left(K_{vp}+\frac{K_{vi}}{s}\right)\left(U_{q}^{*}-U_{q}\right)+I_{oq}+\omega CU_{d} Iq=(Kvp+sKvi)(UqUq)+Ioq+ωCUd

到这里,电压电流双闭环的控制器已经呈现在你面前了,就是左边两个匡匡,很多同学学不明白,是因为没有将控制器和实际的电路模型放在一起去观察学习,这样就不容易学会。

3.一些注意的小点

  • 现在已经设计好了双闭环控制结构了,只要给指定的电压指令和实测量逆变器便可以工作,主要是电压指令怎么给?这就回到了我们熟悉的逆变器控制策略,例如PQ控制、VF控制、VSG控制等,通过算法让逆变器具备一定的特性,比如VSG策略让逆变器具备同步发电机的一些属性等等,这个后续再发文章。
  • 关于为什么电压差值经过PI控制器后面的就是电流量,还有电流差值经过PI控制器后面的就是电压量?
    答:我们可以列出电容的微分方程, i c = C d u c d t {i_c} = C\frac{{d{u_c}}}{{dt}} ic=Cdtduc ,对其做拉式变换,得到 I c = C s U c {I_c} = Cs{U_c} Ic=CsUc,即 I c 1 s C = U c {I_c}\frac{1}{{sC}} = {U_c} IcsC1=Uc,即电流经过积分后变成了电压,然后 I c R = U c {I_c}R = {U_c} IcR=Uc电流经过常数也可以变成电压,所以电流指令经过比例和积分的和之后可以变成电压指令。对于电感也可以列微分方程,也可以得到类似的结论。这是我通俗的理解,谢谢大家。
### 电压电流双闭环PI控制中加入电流前馈的原理 在电力电子变换器控制系统设计中,为了提高系统的动态响应速度并减小稳态误差,在传统电压电流双闭环PI控制器基础上引入了电流前馈机制。通过这种方式可以有效降低内外环之间的相互影响,使得整个系统具有更好的鲁棒性和抗干扰能力。 具体来说,在逆变器输出侧加入负载扰动时,如果不采取任何措施,则该变化会直接影响到直流母线电压从而引起波动;而当加入了基于检测得到的实际电流值作为反馈信号之后,便可以在第一时间感知到这种突变情况,并迅速作出调整来抵消其负面影响[^1]。 #### 实现方法 ##### 建立数学模型 首先需要建立被控对象即逆变器及其所连接电路部分精确的小信号传递函数表达式。这一步骤通常涉及到对非线性方程组进行泰勒展开近似处理以及忽略高阶项等操作。最终目的是获得能够描述输入变量(如参考指令)与输出物理量之间关系的一系列微分/差分方程式[^4]。 ##### 设计补偿环节 针对上述建模过程中发现存在的交叉耦合现象,可以通过适当的设计额外附加一些辅助性的计算单元——也就是所谓的“前馈补偿”。这些新增加的部分旨在提前预测可能发生的偏差趋势并对之加以修正,进而达到改善总体性能指标的目的。对于本案例而言,主要是指利用实时测量所得瞬时电流数据去预估即将产生的电磁转矩效应,再据此生成相应的校正值送入主回路之中参与运算过程[^3]。 ##### 编写算法程序 最后就是将理论分析成果转化为实际可用的形式,编写具体的软件代码实现预期功能。考虑到MATLAB/Simulink平台强大的数值模拟能力和丰富的工具箱资源,这里推荐优先选用此环境来进行初步验证测试工作。下面给出了一段简单的Python伪代码用于说明如何构建这样一个带有电流前馈特性的双闭环控制系统框架: ```python def dual_loop_pi_with_current_feedforward(voltage_ref, current_measured): # 初始化参数 kp_v = ... # 电压比例增益 ki_v = ... # 电压积分增益 kp_i = ... # 电流比例增益 ki_i = ... # 电流积分增益 feedforward_gain = ... # 前馈系数 voltage_error_integral = 0 current_error_integral = 0 while True: # 计算误差 voltage_error = voltage_ref - output_voltage # 更新积分项 voltage_error_integral += voltage_error * dt current_error_integral += (current_reference - current_measured) * dt # PID调节律 control_signal = ( kp_v * voltage_error + ki_v * voltage_error_integral - feedforward_gain * current_measured + kp_i * (current_reference - current_measured) + ki_i * current_error_integral ) yield control_signal ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

达瓦里航

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值