无刷直流电机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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • c++怎么把小写字母变成大写字母_int能直接转化为char类型吗

    c++怎么把小写字母变成大写字母_int能直接转化为char类型吗1、输出uint32_tuint32_ta=888;printf(“ais%ld”,a);2、输出uint64_tuint64_tb=888;printf(“bis%lu”,b);printf(“bis%lld”,b);3、输出16进制intc=16;printf(“cis0x%08x”,c)

    2022年9月7日
  • Degenerate_generate动词

    Degenerate_generate动词22. Generate Parentheses C++回溯法

    2022年4月20日
  • AVC1与H264的区别

    AVC1与H264的区别今天上网时偶尔发现这个在我脑海里疑惑的问题的答案。H.264VideoTypesThefollowingmediasubtypesaredefinedforH.264video.SubtypeFOURCCDescri

    2022年6月17日
  • pycharm2022.01.12激活码 linux_在线激活

    (pycharm2022.01.12激活码 linux)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~4KDD…

    2022年4月1日
  • leetcode-189. 旋转数组

    leetcode-189. 旋转数组原题链接给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]题解

    2022年8月8日
  • 无偏估计(Unbiased Estimator)「建议收藏」

    无偏估计(Unbiased Estimator)「建议收藏」无偏估计是参数的样本估计量的期望值等于参数的真实值。一个简单的例子(https://www.zhihu.com/question/22983179/answer/23470969):比如我要对某个

    2022年8月2日

发表回复

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

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