【HiL-Speedgoat】1.电路数学模型:三相并网逆变器

#“八股文”在实际工作中是助力、阻力还是空谈?#

0. 什么是电路的数学模型?

这里说的数学模型,是指根据电路状态方程,并且仅用简单模块搭建的模块,具体来说,是利用 HDL Coder 库内的模块。

在这里插入图片描述

包含常见的数学操作(加减乘除)等等。

1. 为什么要搭建电路的数学模型?

之前写过如何查找常用的电力仿真模块 👉 【Simulink】电力系统仿真常用模块位置

1.1 以前如何搭建三相逆变器?

1️⃣ 用一个通用桥 Universal Bridge 模块:
在这里插入图片描述

设置桥臂数量和 IGBT/Diodes 模式,即可得到一个三相逆变器:

在这里插入图片描述

这种方式搭建三相并网逆变器的应用详见 👉 【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Matlab Function)

在这里插入图片描述

2️⃣ 拆解元件,用6个 IGBT/Diode 模块组合:
在这里插入图片描述

设置默认就行

这种方式搭建三相并网逆变器的应用详见 👉 【Simulink】采用延时补偿的三相并网逆变器FCS-MPC

在这里插入图片描述

3️⃣ 用蓝库搭建,即 simscape 库的模块

写到这里,有小伙伴可能会有疑问,Matlab/Simulink不是自带了逆变器 / IGBT模块吗?为什么还要自己搭建数学模型?这里就不得不提一下我们实验室正在使用的 硬件在环仿真(Hardware-in-the-loop simulation, HILS) 平台——Speedgoat

1.2 什么是硬件在环?

关于这个问题,上海熠速信息技术有限公司(Speedgoat在中国的独家代理)的官网以及熠速的工程师们已经给出了比较详细的解释:
熠速:电力系统中实时仿真技术的应用
熠速:仿真应用场景及解决方案:硬件在环
知乎:永磁同步电机控制与仿真系列文章

1.3 为什么要对电路进行数学建模?

关于这个问题,许老师的书/知乎也已经给出了非常好的答案:
知乎:永磁同步电机控制与仿真系列文章 | 电路拓扑式建模与数学建模

总的来说,如果要把模型放在Speedgoat的FPGA里面进行实时仿真,需要经过HDL编译,而HDL编译对模型使用的模块有一定要求。

下面进入正题~

2. 三相并网逆变器的数学模型

许老师已经提供过三相逆变器的建模思路,后面连接RLC负载:
熠速:永磁同步电机控制系统仿真系列文章——逆变器模型(1)
熠速:永磁同步电机控制系统仿真系列文章——逆变器模型(2)

个人觉得写得很好,也是尽可能地还原物理模型,考虑了IGBT压降等参数。
之前我和师兄也试过仿真复现了一下,大体上是能用的,但是好像有个电流还是电压波形看着不太对,有可能是我自己搭建的问题。此外我这里是并网的,也就是加了个电压源,后面接RL负载。

我在实际应用的时候,直接用理想的数学模型了 🐶

在这里插入图片描述

设逆变桥输出端相对于直流侧电源负极性端N间的电压为 v x N , ( x = a , b , c ) v_{xN},(x=a,b,c) vxN,(x=a,b,c),直流侧电源负极性端N与电网中性点n之间的电压为 v n N v_{nN} vnN,逆变器的开关状态 S x , ( x = a , b , c ) S_x,(x=a,b,c) Sx,(x=a,b,c),当 S a = 1 S_a=1 Sa=1 ,表示S1导通,S2关断, v a N = u d c v_{aN}=u_{dc} vaN=udc;当 S a = 0 S_a=0 Sa=0 ,表示S2导通,S1关断, v a N = 0 v_{aN}=0 vaN=0。其他桥臂类似。

逆变器输出电压方程:

{ v a N = S a u d c = R i a + L d i a d t + e a + v n N v b N = S b u d c = R i b + L d i b d t + e b + v n N v c N = S c u d c = R i c + L d i c d t + e c + v n N \begin{cases} v_{aN}=S_{{a}}u_{dc}=Ri_{{a}}+L\frac{di_{a}}{{d}t}+e_{{a}}+v_{nN}\\ v_{bN}=S_{b}u_{dc}=Ri_b+L\frac{di_b}{dt}+e_{b}+v_{nN}\\ v_{cN}=S_{c}u_{dc}=Ri_c+L\frac{di_c}{dt}+e_{c}+v_{nN}\end{cases} vaN=Saudc=Ria+Ldtdia+ea+vnNvbN=Sbudc=Rib+Ldtdib+eb+vnNvcN=Scudc=Ric+Ldtdic+ec+vnN

在三相对称系统中,三相电压与电流瞬时值和为零:

{ e a + e b + e c = 0 i a + i b + i c = 0 \begin{cases}e_a+e_b+e_c=0\\i_a+i_b+i_c=0\end{cases} {ea+eb+ec=0ia+ib+ic=0

联立上面两个公式可得:

v n N = u d c 3 ( S a + S b + S c ) v_{nN}=\frac{u_{dc}}{3}(S_{a}+S_{b}+S_{c}) vnN=3udc(Sa+Sb+Sc)

逆变器交流侧输出端与电网中性点n间的电压 v x n , ( x = a , b , c ) v_{xn},(x=a,b,c) vxn,(x=a,b,c) 满足的关系式为:

{ v a n = v a N − v n N v b n = v b N − v n N v c n = v c N − v n N \begin{cases}v_{an}=v_{aN}-v_{nN}\\ v_{bn}=v_{bN}-v_{nN}\\ v_{cn}=v_{cN}-v_{nN} \end{cases} van=vaNvnNvbn=vbNvnNvcn=vcNvnN

代入之前的式子,得到:

{ v a n = S a v d c − v d c 3 ( S a + S b + S c ) = ( 2 S a − S b − S c ) v d c 3 v b n = S b v d c − v d c 3 ( S a + S b + S c ) = ( − S a + 2 S b − S c ) v d c 3 v c n = S c v d c − v d c 3 ( S a + S b + S c ) = ( − S a − S b + 2 S c ) v d c 3 \begin{cases}v_{{an}}={S}_{{a}}v_{dc}-\frac{v_{dc}}{3}\left({S}_{{a}}+{S}_{{b}}+{S}_{{c}}\right)=\left(2{S}_{{a}}-{S}_{{b}}-{S}_{{c}}\right)\frac{v_{dc}}{3}\\v_{{bn}}={S}_{{b}}v_{dc}-\frac{v_{dc}}{3}\left({S}_{{a}}+{S}_{{b}}+{S}_{{c}}\right)=\left(-{S}_{{a}}+2{S}_{{b}}-{S}_{{c}}\right)\frac{v_{dc}}{3}\\v_{{cn}}={S}_{{c}}v_{dc}-\frac{v_{dc}}{3}\left({S}_{{a}}+{S}_{{b}}+{S}_{{c}}\right)=\left(-{S}_{{a}}-{S}_{{b}}+2{S}_{{c}}\right)\frac{v_{dc}}{3}\end{cases} van=Savdc3vdc(Sa+Sb+Sc)=(2SaSbSc)3vdcvbn=Sbvdc3vdc(Sa+Sb+Sc)=(Sa+2SbSc)3vdcvcn=Scvdc3vdc(Sa+Sb+Sc)=(SaSb+2Sc)3vdc

整理可得:

{ L d i a d t = ( S a − S a + S b + S c 3 ) v d c − R i a − e a = v a n − R i a − e a L d i b d t = ( S b − S a + S b + S c 3 ) v d c − R i b − e b = v b n − R i b − e b L d i c d t = ( S c − S a + S b + S c 3 ) v d c − R i c − e c = v c n − R i c − e c \begin{cases}L\frac{{d}i_{{a}}}{{d}t}=({S}_{{a}}-\frac{{S}_{{a}}+{S}_{{b}}+{S}_{{c}}}{3} ) v_{dc}-Ri_{{a}}-e_{{a}}=v_{{an}}-Ri_{{a}}-e_{{a}}\\L\frac{{d}i_{{b}}}{{d}t}=({S}_{{b}}-\frac{{S}_{{a}}+{S}_{{b}}+{S}_{{c}}}{3} ) v_{dc}-Ri_{{b}}-e_{{b}}=v_{{bn}}-Ri_{{b}}-e_{{b}}\\L\frac{{d}i_{{c}}}{{d}t}=({S}_{{c}}-\frac{{S}_{{a}}+{S}_{{b}}+{S}_{{c}}}{3} ) v_{dc}-Ri_{{c}}-e_{{c}}=v_{{cn}}-Ri_{{c}}-e_{{c}} \end{cases} Ldtdia=(Sa3Sa+Sb+Sc)vdcRiaea=vanRiaeaLdtdib=(Sb3Sa+Sb+Sc)vdcRibeb=vbnRibebLdtdic=(Sc3Sa+Sb+Sc)vdcRicec=vcnRicec

后面Simulink模型搭建都是基于上述公式。

3. 仿真测试

本篇博客的电路部分采用数学模型,控制部分采用FCS-MPC控制策略。之前的博客已经介绍过基于FCS-MPC的三相并网逆变器电流控制:
【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Matlab Function)

3.1 模型内部:

逆变器交流侧输出端与电网中性点n间的电压 v x n , ( x = a , b , c ) v_{xn},(x=a,b,c) vxn,(x=a,b,c) 生成:

在这里插入图片描述

并网电压源和相角生成,以及 v x n − e x v_{xn}-e_x vxnex

在这里插入图片描述

这一步困扰了我一段时间,因为之前不知道 sin 模块不能正常编译,一直以为是累加器的问题,导致后面实时仿真的时候波形有很大的尖峰。请教煜速的工程师之后,用了 Direct Lookup Table(n-D) 生成正弦波。

注意:转Single格式是因为编译的时候不支持Double

RL负载,输出电流:

在这里插入图片描述

3.2 仿真结果:

电网电压:

在这里插入图片描述

标准正弦。

相角:

在这里插入图片描述

相对于用了锁相环了。

输出电流:

在这里插入图片描述

电流波形好坏一般和控制有关,可以尝试将FCS-MPC换成其他控制策略。目前离线仿真的波形看起来和以为模块输出结果略有不同,但是在实时仿真(HiL)的时候,没有这种奇怪的波形(虽然噪声也增多了很多)。

以上模型在实时仿真中也是得到了验证的。

4. 其他模型搭建方式

上述模型是基于数学公式搭建的,由于我们的对象是三相并网逆变器,数学模型相对简单。如果是复杂电路,也可以用蓝库(Simscape库)搭建,然后经过状态空间转换(多一步编译),但是仿真步长有限制,而用本文的方式相对来说可以跑快一点。

不知道后续Speedgoat有没有优化更新HDL编译的方式,但目前在Speedgoat FPGA里面仿真电力电子模型还是需要使用本文的方法的。

参考:
[1] 郑文帅. 三相并网逆变器有限控制集模型预测控制研究[D]. 辽宁工程技术大学控制理论与控制过程, 2021.

不好意思这篇博客外链比较多,但是确实有很多问题在其他地方已经详细介绍过的,所以直接引用超链接了~

另外推荐一下Speedgoat,很好的硬件在环仿真平台,已用一年多,答疑也很nice(无广🐶)~

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不雨_亦潇潇

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

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

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

打赏作者

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

抵扣说明:

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

余额充值