无刷直流电机simulink模型(ansoft电机仿真教程)

这段时间刚开始接触Matlab中的Simulink仿真,我就结合自己的专业,利用Simulink进行了无刷直流电机的仿真,因为Simulink工具箱里面有很多可用的模块,所以建模过程变得非常简单。在Matlab界面中new->model之后,找到SimulinkLibraryBrowser,这里面有系统自带的很多模块,接下来我们就需要找到自己所需要的模块了,了解无刷直流电机的工作原理以后…

大家好,又见面了,我是你们的朋友全栈君。

这段时间刚开始接触Matlab中的Simulink仿真,我就结合自己的专业,利用Simulink进行了无刷直流电机的仿真,因为Simulink工具箱里面有很多可用的模块,所以建模过程变得非常简单。

在Matlab界面中new->model之后,找到Simulink Library Browser,这里面有系统自带的很多模块,接下来我们就需要找到自己所需要的模块了,了解无刷直流电机的工作原理以后,接下来就是找到直流电源、三相逆变桥、无刷直流电机模型。而Simulink中也有这些模型,可以直接通过搜索关键字找到它们,分别是DC Voltage Source、Universal Bridge、Permanent Magnetic Synchronous Machine。接下来就是需要将相应的信号连接起来,如下图

da00fdb3c3c92c3ec1157165e1cfc6ce.png

其中,直流端电压可以设置电压大小,逆变桥可以选择开关器件类型,我们这里选择Mosfet,PMSM中我们将反电势波形选择trapezoidal即梯形波,电机参数相电阻、相电感、反电势常数、极对数按实际值设置。Universal Bridge对应如下桥式拓扑结构。

d94e80b735dac71f5251964b8c49cf20.png

然后就是添加相应的负载Tm,这里可以模拟突加负载和突减负载以及任意变化的负载,通过给定一个函数就可以。然后就是开关信号g,下面会详细介绍。模型搭建完成后如下图。

8c041355b1a4b28b6852fe01fbdfd830.png

PMSM输出端给的信号通过Bus Selector选择,我们需要使用的是三相霍尔信号得到相应的开关逻辑,这也是该仿真的关键所在,其中整个模型中Subsystem1就是实现开关逻辑的算法。我们可以根据霍尔换相真值表,通过相应的逻辑门实现,但是这样搭建模型显得不灵活而且很累赘,并且不能模拟超前或者滞后换相。所以我这里才用的是通过Matlab Function来实现的。

98743f579e57e1a1bb1aff93dee0345f.png

如上图,这是换相逻辑的模型,其中我采用的是下桥臂恒通,上桥臂PWM调制的方式导通Mosfet,目前占空比的给定方式采用的是常数,后续可以根据转速环进行PI给定。换相便是根据换相真值表而来。

霍尔信号

Mosfet导通真值表

导通相

Ha

Hb

Hc

Q1

Q2

Q3

Q4

Q5

Q6

0

0

1

0

0

0

1

1

0

CB

0

1

0

0

1

1

0

0

0

BA

0

1

1

0

1

0

0

1

0

CA

1

0

0

1

0

0

0

0

1

AC

1

0

1

1

0

0

1

0

0

AB

1

1

0

0

0

1

0

0

1

BC

接下来就是按照真值表编写相应开关逻辑代码,

1 function [y1,y2,y3,y4,y5,y6] =fcn(ha,hb,hc,theta)2 y1=0;y2=0;y3=0;y4=0;y5=0;y6=0;3 tmp=hc*4+hb*2+ha;4 if tmp==4

5 y1=0;y2=0;y3=0;y4=1;y5=1;y6=0;6 end7 if tmp==6

8 y1=0;y2=1;y3=0;y4=0;y5=1;y6=0;9 end10 if tmp==2

11 y1=0;y2=1;y3=1;y4=0;y5=0;y6=0;12 end13 if tmp==3

14 y1=0;y2=0;y3=1;y4=0;y5=0;y6=1;15 end16 if tmp==1

17 y1=1;y2=0;y3=0;y4=0;y5=0;y6=1;18 end19 if tmp==5

20 y1=1;y2=0;y3=0;y4=1;y5=0;y6=0;21 end22

23 end

代码添加完成以后,就可以配置Mosfet上下桥臂的导通模式了,我这里采用了上桥臂PWM调制,下桥臂导通的模式,即H_PWM-L_ON方式。一切准备就绪,下面来看仿真结果,A相电流,霍尔信号以及转子机械角度如下图。

2c3027f4f333c0020abd78100e837a72.png

9ab6c80eeb4686ffa82f18291a95a448.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128090.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月11日 上午7:40
下一篇 2022年4月11日 上午7:40


相关推荐

  • CSS 都有哪些选择器?

    CSS 都有哪些选择器?CSS 都有哪些选择器 1 标签选择器 如 body div p ul li 2 类选择器 如 class head class head logo 3 ID 选择器 如 id name id name txt 4 全局选择器 如 号 5 组合选择器 如 head head logo 注意两选择器用空格键分开 6 继承选择器 如 divp 注意两选择

    2026年3月17日
    3
  • 我国人工智能上市企业超300家

    我国人工智能上市企业超300家

    2026年3月15日
    9
  • zabbix mysql trapper_zabbix的trapper(补获器)使用

    zabbix mysql trapper_zabbix的trapper(补获器)使用Zabbix 采集器 捕获器 这种获取数据的方式是 agent 端通过 zabbix sender 命令发送数据 一般情况下 我们在创建监控项的时候 我们选择的类型是 zabbix 客户端 是每隔多长时间 主动或被动的 发送数据给 server 当脚本执行时间过长的时候 在选用 zabbix 客户端 这种类型的监控项 会影响 server 的性能 所以当脚本执行时间过长时 我们选择 zabbix 采集器 的方式

    2026年3月19日
    2
  • Linux Shell经典面试题

    Linux Shell经典面试题

    2021年11月23日
    46
  • APP启动流程解析

    APP启动流程解析前言当我们点击手机屏幕上的软件图标时 就可以打开这个软件 看似很简单的过程其实包含了许多的底层交互 看了还不明白 欢迎来打我 一 启动流程简介首先要知道的是 手机屏幕其实就是一个 Activity 我们专业点将其称为 Launcher 相信做过车载设备开发的朋友肯定不会陌生 Launcher 是手机厂商提供的 不同的手机厂商比拼的就是 Launcher 的设计 当然我们自己也可以去编写 Lau

    2026年3月18日
    2
  • “undefined reference to“ 问题汇总及解决方法 ——非常非常好的一篇文章

    “undefined reference to“ 问题汇总及解决方法 ——非常非常好的一篇文章转载地址:https://segmentfault.com/a/1190000006049907?utm_source=tuicool&utm_medium=referral在实际编译代码的过程中,我们经常会遇到”undefinedreferenceto”的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几

    2022年5月31日
    101

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号