PWM比较器功能
本系列文章中仍然采用三相两电平逆变器作为控制对象。下图是采用正弦波调制(SPWM)的三相两电平逆变器的波形。
输入是三相正弦波信号。将三角载波与正弦信号波进行比较。当正弦信号波的值大于三角载波的值时,输出“1”。否则输出“0”; PWM比较器总共产生6A PWM信号,控制6个IGBT的开通和关断。 PWM比较器输出“1”信号控制IGBT导通,“0”信号控制IGBT关断。控制逆变器输出的三相相电压和三相线电压如下图所示。
对于三相两电平逆变器,为了防止上下桥臂同时导通造成短路,PWM比较器还需要插入死区时间。
此外,为了使电流、速度和位置采样与PWM占空比更新以及控制器算法模型的触发操作同步,中断触发信号的产生是必要的。
因此整个PWM比较器由四部分组成:
(1)三角载流子生成;
(2)信号比较,产生PWM控制信号;
(3)插入死区时间;
(4)中断触发信号产生;
正弦波调制(SPWM)三相两电平逆变器波形
三角载波生成
由于三角载波生成的模型是在FPGA中运行的,因此数据类型需要为整数。
最方便的方法是使用Simulink 的HDL Coder 模型库中的HDL Counter 模块。通过控制输入端口dir来控制HDL Counter模块的计数方向。
HDL计数器模块
模型示例如下:
三角载波生成的Simulink 模型
仿真步长为1e-8,Relay模块的Switch on点为10000,Switch off点为0,输出“0”或“1”控制HDL Counter模块的计数方向,生成三角波频率为5kHz、0~10000的波。
三角载波信号
脉宽调制信号生成
将三角载波与信号波进行比较。当信号波的值大于三角载波的值时,输出“1”,否则输出“0”; PWM比较器总共产生6个PWM信号来控制6个IGBT的开通和关断。休息。
该函数的Simulink模型如下:
用于PWM 信号生成的Simulink 模型
死的时间
通常死区时间的插入是通过增加PWM信号的开启延迟来实现的。
简单来说:如果PWM信号从“1”变成“0”,即从开到关,那么就会立即关闭;如果PWM信号由“0”变为“1”,即由关闭变为开启,则Delay T_delay,然后开启;该函数的Simulink模型如下,C_delay端口为输入开启延迟计数值。
死区时间的Simulink 模型
中断触发信号产生
这个功能比较简单。 Simulink模型如下图所示。三角波的底点和顶点都会产生中断。如果只在底点或者只在顶点,可以根据需要修改。
用于中断触发信号生成的Simulink 模型
上述所有模型都可以通过Simulink的HDL Coder工具生成HDL代码,并将其部署到Speedgoat的FPGA板上。