建议看到最后
0. 引言
【HiL-Speedgoat】1.电路数学模型:三相并网逆变器
上一篇博客提到了什么是HiL(硬件在环),为什么需要对电路进行数学建模,当然,如果这些部署在Speedgoat的CPU而不是FPGA,可以不经过HDL编译的,也就是说对Simulink中使用的模块要求没有那么严苛,但如果是要部署在FPGA,则需要用HDL Coder库内的模块搭建数学模型,或者是通过蓝库Simscape搭建模型然后进行状态空间转换。部署在CPU还是FPGA的一个区别就是仿真步长范围不同,前者大部分是μs级别(比如电池包),后者大部分是ns级别(比如电力电子拓扑)。
一般而言,实时仿真系统包括两个部分,一个是被控对象,一个是控制系统。在电力电子和电机的实时仿真应用中,被控对象一般是电力电子变流器(从仿真步长考虑),而控制系统可以是 PI、PR、无差拍、FCS-MPC、CCS-MPC、ADRC 等等(相关控制方法在我的博客都能找到应用)。上一篇博客主要围绕电路拓扑建模,本篇博客主要针对控制系统的建模。
1. 为什么需要控制系统建模?
首先,“控制系统建模”这一表述不一定准确,笔者想表达的是把控制系统部署在Speedgoat的FPGA时,利用HDL Coder库的模块实现控制算法的意思。一般来说,控制算法在Simulink会用 Matlab Function、S-Function、Stateflow 来实现,在这些工具中,控制主要是采用文本类型的程序实现,比如在单相并网逆变器的FCS-MPC控制中,利用Matlab Function实现:
...
for j = 1: 4
i1 = (