0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:Speedgoat实时仿真系统 作者:上海熠速 2023-06-27 15:34 次阅读

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板卡。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IGBT
    +关注

    关注

    1237

    文章

    3519

    浏览量

    243483
  • 三相逆变器
    +关注

    关注

    3

    文章

    81

    浏览量

    18530
  • PWM比较器
    +关注

    关注

    0

    文章

    9

    浏览量

    7932
  • FPGA开发板
    +关注

    关注

    10

    文章

    119

    浏览量

    31325
  • simulink仿真
    +关注

    关注

    0

    文章

    75

    浏览量

    8457
收藏 人收藏

    评论

    相关推荐

    使用LabView SIT工具包链接Simulink模型的方法

    Simulink模型,直接打开VI点运行它会自动打开Simulink模型这样就不报错了。附件是SIT工具包的下载和注册机
    发表于 04-10 14:31

    LabVIEw调用多个simulink模型

    哥哥姐姐们,求助啊,小弟最近才开始看LabVIEW,老师让做个在一个LabVIEW的面板中,通过下拉菜单来选择加入不同的simulink模型的仿真信息,一个面板里面通过下拉菜单可以选择显示多个simulink
    发表于 07-20 10:37

    LabVIEW调用simulink模型

    各位亲,小弟在simulink中做了一个模型 想通过使用SIT工具包在LabVIEW里面调用,但是遇到了些许小问题,一直搞不懂 向各位请教一下~~跪求各位大大不吝赐教!!!!首先就是我已经弄好
    发表于 09-17 13:09

    基于模型的设计(MBD)的深入讨论

    讨论1:2016-6-14-基于模型的设计(MBD)_讨论1主要论述了MBD的自动生成代码的可用性,以及自动生成代买与手写代码的效率讨论2:
    发表于 06-14 18:30

    电动助力转向EPS——理论公式推导及simulink模型

    齿条模型总结EPS本文以转向柱型EPS系统为例,主要介绍下系统的理论公式,并搭建对应的simulink模型。分为如下四个部分1、方向盘动态公式2、扭矩传感
    发表于 06-29 07:26

    Simulink模型生成代码

    本文首先通过一个简单的Simulink模型生成代码,然后将代码copy到一个STM32工程中去编译软件。最后将软件下载到STM32F407中,通过串口输出Simulink计算的结果。阅读本文需要
    发表于 08-11 07:56

    利用MATLAB的simulink建立仿真模型

    利用MATLAB的simulink建立仿真模型,与stm32cubemx搭建数据链,通过simulink搭建的模型生成工程!(基本不用修改底层代码)【转载自】
    发表于 08-17 07:11

    如何搭建simulink模型

    如何搭建simulink模型?EPS系统的工作原理是什么?
    发表于 10-20 07:44

    如何建立一个simulink模型

    模型转嵌入式代码流程,害怕以后忘记了,特记录下来。Step1:建立一个simulink模型Step2:设置求解参数:2.1选择离散型,固定步长,并设置对应步长值。2.2code ge
    发表于 12-17 07:58

    如何从simulink中的FTM模块块生成pwm信号?

    您好,我正在尝试从 simulink 中的 FTM 模块块生成 pwm 信号。该模型的构建没有任何错误,但是当我看到 pwm 输出时,它不是我期望的那样。输出停留在我在块设置中输入的初
    发表于 03-24 06:20

    AD9215 SIMULINK ADIsimADC模型

    AD9215 SIMULINK ADIsimADC模型
    发表于 06-06 16:33 4次下载
    AD9215 <b class='flag-5'>SIMULINK</b> ADIsimADC<b class='flag-5'>模型</b>

    AD9287 SIMULINK ADIsimADC模型

    AD9287 SIMULINK ADIsimADC模型
    发表于 06-06 17:41 4次下载
    AD9287 <b class='flag-5'>SIMULINK</b> ADIsimADC<b class='flag-5'>模型</b>

    AD9461 SIMULINK ADIsimADC模型

    AD9461 SIMULINK ADIsimADC模型
    发表于 06-06 18:38 6次下载
    AD9461 <b class='flag-5'>SIMULINK</b> ADIsimADC<b class='flag-5'>模型</b>

    AD9430 SIMULINK ADIsimADC模型

    AD9430 SIMULINK ADIsimADC模型
    发表于 06-06 18:42 7次下载
    AD9430 <b class='flag-5'>SIMULINK</b> ADIsimADC<b class='flag-5'>模型</b>

    模型调参:CANape与Simulink的强强联手

    CANape推出新功能Simulink XCP Server,针对Simulink模型以及ECU内部数据的参数化和可视化,让模型调参变得简单。
    的头像 发表于 08-01 15:00 729次阅读
    <b class='flag-5'>模型</b>调参:CANape与<b class='flag-5'>Simulink</b>的强强联手