lorenz系统simulink仿真_电力电子系统FPGA实时仿真的那些事(上)

今天小编给大家带来电力电子系统FPGA仿真的一些介绍。话不多说,直接上干货。

ed87605d0f8f46413c78c9da9dc04973.png

为何用FPGA 做电力电子系统的实时仿真

回答这个问题应该从两个方面的来分析。

对于实时仿真而言,大家永远希望可以做到的仿真步长越小越好。步长越小,意味着可以用更多的仿真次数模拟某个工况。这样可以更好的模拟不同时间常数的系统。

对于电力电子系统而言,由于其系统需要接收10khz以上的控制指令,也就是PWM信号.根据采样定律,要比较准确的描述,那一个周期的话至少需要采集50-100次以上才能比较好的模拟出控制信号对电力电子系统的影响,则可以推算出步长就至少是2e-6甚至更小,也就是2us以下的仿真步长。

受限于CPU的串行执行方式,以及实时OS、后台任务、IO端口仿真等任务消耗,CPU可运行的最快周期一般为10~20us(具体根据各产品的操作系统优化情况,配置性能有关,但该情况下模型必须很小了)。像很多国外的基于CPU实时仿真的产品其实技术文档都有说明,仿真步长低于20us的仿真建议放到FPGA中进行。同时,基于CPU实时仿真的时间精度,有时候也叫时间抖动,相对比较大(之后会有文章介绍过测试某些实时系统抖动情况,感兴趣的朋友可以看看),这对于尺度在微妙级甚至纳秒级的仿真是非常致命的。当然,并不是说高于20us以上的仿真步长不能仿真电力电子系统了,那基本是对电力电子进行了特殊处理,采用平均值的等效方式来忽略了一些细节的暂态特性的。这种电力电子系统模型的优缺点介绍的文章比较多,也各有应用领域,这里就不展开说明了。

所以基于CPU的实时性达不到电力电子高精度仿真的需求。因此基于FPGA的“硬”仿真应运而生。借助于FPGA芯片数字电路的并行运算,可以将模型计算压缩到100ns或1us级别,完美实现电力电子期间的超高速仿真。

FPGA电力电子仿真如何实现 那么确定了需要用FPGA 来进行电力电子系统的精确仿真,我们看看如何实现。

1.需要建立你的电力电子系统模型的矩阵方程;

2.需要将方程转化成FPGA的代码,也就是需要了解FPGA 如何实现。

3.两者之间的使用优化问题。

第一条需要用户对专业知识比较清楚,知道如何实现系统模型的节点电压方程,第二条则主要需要用户对FPGA 编程比较熟悉,考虑模型实现的时序,Pipeline,浮点定点转化等问题。第三点则需要考虑以上两个方向的优化问题,通俗点来讲,就是提高性价比。而这一点,恰恰是最重要的。前两点其实对于一些高校的大牛们,花点时间,买点硬件,号召一帮研究生博士生苦心钻研个一年半载也是妥妥可以弄出来的。但大部分是针对固定应用的FPGA 实时仿真的,这样的效率太低,换了一个应用可能又要重新来一遍,会花费大量的学习成本与时间成本。

所以目前业内的商用软件,不管国内还是国外的产品,都是在第三条上做了大量的工作,来提高用户使用的友好度。电力电子仿真的FPGA 软件一般价格都比较昂贵(因为会的人少呀,物以稀为贵呀),只是根据功能的差别,软件使用友好度等方面的差别而价格稍有差别。

FPGA电力电子仿真主流的几条技术路线 1.专门的电 力电子器件建模算法+独立的解算器

2.通用的电力电子器件模型算法+配置型的FPGA编译工具

第一种目前是最多的,代表有RT-LAB ,TYPHOON等;第二种呢 是基于Simscape+Simulink HDL Coder这种,在SIMULINK环境下来进行的,也就是对FPGA编程工具进行了优化,代表有Speedgoat和Dspace(Dspace可能稍有不同,有自己的FPGA库包含了一下电气模型,但是大致的技术路线应该差不多)。

首先我们来看一下Matlab自带的Simscape+Simulink HDL Coder,其实Simulink HDL Coder很早就有了,但是如果要做电力电子系统仿真,还得自己用Simulink来搭建模型,这样做其实也挺花费时间与精力的。而在在MATLAB 2018B及以后版本中,Simscape和Simscape Electrical™支持HDL的生成。使基于Simscape的电力电子模型,在FPGA芯片上实时仿真成为可能。这样就不用自己手动从底层开始写电力电子的模型了。

68e98409eb3a794be18a299a3b268798.png

Simscape模型背后是基于Simscape语言实现,和Simulink模块还不太一样。该语言并不直接支持HDL代码的生成,所以需要先将Simscape模型转化成Simulink的模块,(如果模型里面存在非线性模块,是需要找出来替换掉的)。再将Simulink的程序模型利用Simulink HDL转化成FPGA 的程序。其中,主要用到Simscape HDL Workflow Advisor 先转成Simulink的线性基础模块,然后利用Simulink HDL Workflow Advisor 再转成FPGA的程序,最终在部署到实际的硬件上去。详细的操作方法,请参见如下链接,这里就不做详细介绍了:

0e254cadfbd169493407b4c7feea1f0c.png

https://ww2.mathworks.cn/help/physmod/simscape/ug/generate-hdl-code-using-the-simscape-hdl-workflow-advisor.html

这种方式采用的是Simscape自带的建模方式,也就是电力电子器件的模型用的是detail 模型。所以转化成FPGA之后,需要将电力电子系统模型的状态空间方程的参数因子矩阵组(一般我们也叫导纳矩阵)都给存储下来,然后在求解器算法和开关状态下去切换参数因子矩阵以及来求逆来进行计算。

9cb02b9a0b454b172154ceeb8e27a92f.png

由于FPGA芯片的资源相对来说比较宝贵,所以如果不做任何的优化处理,以上这种方式会造成计算量非常的大。同时,每一个新的模型都会需要编译的过程,这个过程短则十几分钟,长则几个小时。

当然,基于Simscape+SimulinkHDL Coder的FPGA仿真方式已经从一定程度上减轻了用户从底层搭建电力电子系统模型,以及做FPGA算法编程的工作,而且开放性相当不错,不仅仅限于simscape的电力电子模型,用户可以根据自己的需求来自定义自己的电力电子模型。但是整个使用过程相对来说还是比较繁琐复杂,还是需要用户对于Simulink使用以及FPGA编程有比较高的要求。

在后续篇章中,小编将主要介绍另外一种更加主流的方式——基于专门的电力电子器件建模算法+ 独立的解算器的 技术路线模式,继续与大家一起交流与探讨电力电子FPGA仿真的问题。

END

易信高成与你一起零碎片时间学习

扫描关注微信号,更多精彩内容回顾

5ada27e18cd544d7581449ec3160d2d1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值