嵌入式
返回首页

主要讨论PWM比较器的Simulink模型

2024-08-23 来源:elecfans

PWM 比较器的功能

还是以本系列文章中,用到的三相两电平逆变器为控制对象。下图是正弦波调制(SPWM)的三相两电平逆变器的波形。

输入的是三相的正弦波信号,三角载波与正弦信号波进行比较,当正弦信号波的值大于三角载波的值,输出“1”,否则,就输出“0”;PWM比较器一共生成6个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 Counter模块

示例模型如下:

图片

三角载波生成的Simulink模型

仿真步长为1e-8,Relay 模块的Switch on point为10000,Switch off point为0,输出“0”或者“1” 控制HDL Counter模块的计数方向,生成0~10000的三角波,频率为5kHz。

图片

三角载波信号

PWM 信号生成

三角载波与信号波进行比较,当信号波的值大于三角载波的值,输出“1”,否则,就输出“0”;PWM比较器一共生成6个PWM信号,控制6个IGBT的开通和关断。

此功能的Simulink模型如下:

图片

PWM信号生成的Simulink模型

死区时间

通常死区时间的插入通过增加PWM信号的开通延时实现的。

简单说就是:如果PWM信号由“1”变“0”,即由开通变为关断,则马上关断;如果PWM信号由“0”变“1”,即由关断变为开通,则延时T_delay再开通;此功能的Simulink模型如下,C_delay端口为输开通延时计数值。

图片

死区时间的Simulink模型

中断触发信号生成

此功能比较简单,Simulink模型如下图所示,在三角波的底点和顶点都产生中断,如果只在底点或者只在顶点,可以根据需要修改即可。

图片

中断触发信号生成的Simulink模型

以上模型皆可以通过Simulink的HDL Coder工具生成HDL代码,部署至Speedgoat的FPGA板卡。


进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • PIC单片机控制的遥控防盗报警器电路

  • 红外线探测报警器

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • RS-485基础知识:处理空闲总线条件的两种常见方法

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章