使用Simulink进行无刷直流电机控制仿真

2023-05-16

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

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

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

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

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

    如上图,这是换相逻辑的模型,其中我采用的是下桥臂恒通,上桥臂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 end
 7 if tmp==6
 8     y1=0;y2=1;y3=0;y4=0;y5=1;y6=0;
 9 end
10 if tmp==2
11     y1=0;y2=1;y3=1;y4=0;y5=0;y6=0;
12 end
13 if tmp==3
14     y1=0;y2=0;y3=1;y4=0;y5=0;y6=1;
15 end
16 if tmp==1
17     y1=1;y2=0;y3=0;y4=0;y5=0;y6=1;
18 end
19 if tmp==5
20     y1=1;y2=0;y3=0;y4=1;y5=0;y6=0;
21 end
22 
23 end  

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

  

转载于:https://www.cnblogs.com/xglove/p/6476684.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Simulink进行无刷直流电机控制仿真 的相关文章

  • Simulink 使用C语言发PWM波 (二)触发采样

    1 定义结构体 2 定义S Function输出端口数量 3 定义采样时间 4 初始化参数 5 用代码实现三角波载波 根据调制波配置占空比并在计数器为0时采样电感电流 6 simulink图 至此实现了电感电流使用C语言采样
  • simulink搭建简单的陷波滤波器

    simulink搭建简单的陷波滤波器 陷波滤波器的设计模型的搭建通过matlab自带软件设计的滤波器与simulink自带滤波器模块对比 陷波滤波器的设计 具体设计方法可参见这篇 xff1a 算法学习笔记之50HZ陷波滤波器设计 下面给出各
  • 自抗扰控制(ADRC)仿真系统(matlab/simulink)的搭建

    一 现在关于自抗扰控制技术方面的研究已经比较成熟了 xff0c 基本上熟悉结构以后都可以找到例子实现 xff0c 今天以一个简单的例子来介绍自抗扰控制的仿真系统搭建 xff0c 不必畏惧 xff0c 熟悉皆可达 1 首先自抗扰控制分为TD
  • simulink bus总线创建方法

    在simulink中创建bus总线 xff0c 主要包含2种方法 xff1a 基于模块创建总线对象 使用模块 xff0c 根据输入信号创建总线 基于 MATLAB 数据创建总线对象 可以使用 Simulink Bus cellToObjec
  • Keil+Simulink生成Xcp标定协议A2L文件

    Keil 43 Simulink生成Xcp标定协议A2L文件 由于最近要为ECU移植XCP协议 xff0c 所以记录一下 xff0c 我使用的MCU为NXP S32K144 IDE选用MDK 官方IDE S32DS无代码联想功能 xff0c
  • 1708_Simulink中取数组元素

    全部学习汇总 xff1a GitHub GreyZhang g matlab MATLAB once used to be my daily tool After many years when I go back and read my
  • Simulink中从Workspace中读取时序数据的方法

    1 首先 xff0c 我从adams得到是时长5秒的500组加速度数据 xff0c 将其存为txt格式 并放入matlab路径中 xff0c 其第一列为时间序号 xff0c 234列为三轴的加速度数据 2 在workspace中使用 tex
  • Boost电压闭环控制及其仿真(PI控制)

    这是自己本科做的一项综合设计作业 自动控制理论的 课程作业题目是 DC DC升压变换单电压环控制器设计 我查了不少资料 硕士论文 文献等 断断续续地花了1个半月解决的 当时老师手中有两个作业 一个是Boost单电压闭环控制仿真 另外一个是B
  • Simulink的U-Y模块(Selector)

    在看官方文档的时候 看到其中一个Simulink系统有一个U Y模块 用于选择输出位 但是在library里面没有找到 经过探索 发现这个模块是selector模块在设置完输出位后的样子 下面说说怎么用selector 选择器块把输入向量或
  • 用simulink 模型自动生成代码之 SPWM

    正弦PWM的信号波为正弦波 就是正弦波等效成一系列等幅不等宽的矩形脉冲波形 其脉冲宽度是由正弦波和三角波自然相交生成的 正弦波波形产生的方法有很多种 但较典型的主要有 对称规则采样法 不对称规则采样法和平均对称规则采样法三种 第一种方法由于
  • Matlab Simulink 常用快捷操作和功能(1)

    1 快速查找library里面的模块 双击左键 然后输入要查询的模块名称 gt 2 block 和 signal 的命名修改 单击block 显示 修改名字 3 Simulink支持从块参数对话框中创建变量 可以在Simulink中创建MA
  • 同步电机模型的SIMULINK仿真

    2 2 坐标变换 坐标变换的目的是简化原有电机模型非线性和多变量等困难 它的基本思路是在保证变换前后的磁动势等效即维持功率不变的情况下 用一组新的方程组来取代原方程组 用一套新的变量来代替原方程组里的旧变量 实现减少变量和简化模型的目的 基
  • simulink半桥逆变电路仿真

    逆变是将直流变为脉冲方波信号 电压是100V的 第一幅为原始直流信号 第二幅是逆变电流 第三幅是逆变电压 参数设置 图3 RC1 图4 RC 图5 晶闸管 图6 脉冲信号的参数
  • simunlink的“Three-Phase V-I Measurement”所测线电压次序问题

    simunlink的 Three Phase V I Measurement 所测线电压次序问题 仿真实例 很多同学在使用simulink进行仿真时可能会用到 Three Phase V I Measurement 这个模块 在该模块par
  • matlab中的mod和rem的异同

    rem和mod是求余的 但是算法不同 差异在哪呢 就在于分别使用了fix和floor 函数fix和floor都是圆整用的 fix是向0的方向圆整 如fix 1 5 1 fix 1 5 1 而floor是向下圆整 如floor 1 5 2 f
  • 分布式驱动电动汽车定速巡航控制

    目录 前言 1 电机模型 1 1电机数学模型 1 2 电机传递函数模型 2 控制器设计
  • 如何将 simulink 文件转换为 XML

    我需要将 Simulink 文件 mdl 转换为 XML 文件 经过任何搜索后 我没有找到任何内容来帮助我解决此问题 您知道 Java 中的某种方法或现成的解决方案吗 从 R2008b 开始 您可以使用以下命令将 mdl 文件导出到 xml
  • 从 M 文件控制 simulink

    我正在尝试从 M 文件控制 simulink 我想要在 M 文件中做的是给 simulink 模型一些输入 运行 simulink 模型 在 0 6 秒时更改一个输入值 然后使用新输入继续运行 simulink 模型 我已经知道通过使用se
  • 如何在不使用绘图的情况下将范围保存到图像文件?

    这个条件非常重要 因为绘图以不可接受的方式拉伸我的图表 如果 MikeT 的评论是正确的 并且您正在尝试保存 Scope 块中显示的图像 则可以通过以下几种方法来执行此操作 打印示波器窗口的内容通过单击Print图标 范围工具栏上最左边的图
  • 以编程方式在 Simulink 中编辑“MATLAB Function”模块的代码

    我想创建一个简单的 Simulink 模型 其中包含 MATLAB 函数 https www mathworks com help simulink slref matlabfunction html以编程方式阻止 即使用 Matlab 代

随机推荐

  • Linux下好用的屏幕录像软件kazam及截图软件shutter

    都是apt直接安装即可使用 其中kazam默认保存的文件格式是avi xff0c 非常大 xff0c 通常录制几十秒就已经好几个G xff0c 导致录制过程太占用资源 xff0c 会出现卡顿的现象 在 首选项 中可以选择输出格式为mp4 x
  • 禁用MOSS2007“我的网站”功能

    转载自 xff1a 禁用MOSS2007 我的网站 功能 建立完Moss2007的SSP服务之后 xff0c 默认会为所有验证用户打开 我的网站 的链接 xff0c 如下图所示 xff1a 并不是所有人都会需要这个功能的 xff0c 我们可
  • Linux搭建waf防火墙,Nginx使用Naxsi搭建Web应用防火墙(WAF),防xss、防注入

    一 说明 Naxsi是一个开放源代码 高效 低维护规则的Nginx web应用防火墙 Web Application Firewall 模块 Naxsi的主要目标是加固web应用程序 xff0c 以抵御SQL注入 跨站脚本 跨域伪造请求 本
  • 程序员、架构师、技术经理、技术总监和CTO有啥区别?

    http www javaranger com archives 1997 程序员 程序员 xff0c 英文名coder programmer xff0c 大家常自嘲叫码农的阶段 这个角色职责是把需求或产品实现为用户可用的软件产品 此职位为
  • 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)

    背景 脚本需要导入pytorch等库才能运行 脚本在windows上运行成功 xff0c 尝试放到linux上运行 linux服务器内存较小 方法一 xff1a 在linux上安装依赖 把脚本放到linux上 xff0c 直接安装依赖 安装
  • ubuntu 16.04 配置静态ip 后默认的网卡eno1变成eth0了不能联网的问题解决

    我这次是在真实机器上面安装的ubuntu16 04 在配置了静态ip后不懂什么原因默认的eno1网卡变回了eth0网卡之后就不能上网 xff0c 同一个网段的其他集群节点也不能ping 通 因为ubuntu16 04的默认网卡不再是eth0
  • 快速测试端口的连通性(HTTP/HTTPS)

    ping 仅限 80 端口 xff0c 命令中无法指定端口 xff1a span class hljs label C span Users Administrator gt span class hljs built in ping sp
  • 支持 UTF-8 中文的串口调试工具

    支持 UTF 8 中文的串口调试工具 最近使用 mdk526 xff0c 编辑设置使用 utf 8 xff0c 编辑窗口中文正常 xff0c 但是编译的时候提示 warning 870 D invalid multibyte charact
  • Linux

    Linux服务 TOC mysql 关系型数据库 关系 就是一个一个的二维表 其中 表中的行 列次序并不重要 行 record 表中的每一行 又称为一条记录 列 column 表中的每一列 称为属性 字段 主键 primary key 是一
  • Eclipse怎么样添加智能感知提示功能(含Windows版和Mac版)

    近日感兴趣于安卓 xff0c 开始学习Android开发 第一次使用Eclipse xff0c 用久了VS xff0c 也习惯了他的智能提示 xff0c 刚转到Eclipse下实在是不习惯 网上有人说按Alt 43 可以实现单词补全功能 x
  • ORB-SLAM2:一种开源的VSLAM方案(译文)

    摘要 xff1a ORB SLAM2是基于单目 xff0c 双目和RGB D相机的一套完整的SLAM方案 它能够实现地图重用 xff0c 回环检测和重新定位的功能 无论是在室内的小型手持设备 xff0c 还是到工厂环境的无人机和城市里驾驶的
  • 双目视觉几何框架详解

    一 图像坐标 xff1a 我想和世界坐标谈谈 A 玉米竭力用轻松具体的描述来讲述双目三维重建中的一些数学问题 希望这样的方式让大家以一个轻松的心态阅读玉米的 计算机视觉学习笔记 双目视觉数学架构系列博客 这个系列博客旨在捋顺一下已标定的双目
  • C#之委托

    委托 xff1a 顾名思义 xff0c 让别人帮你办件事 委托是C 实现回调函数的一种机制 可能有人会问了 xff0c 回调函数是个啥 xff1f xff1f xff1f 举个例子 xff1a 我现在是一家公司的老板 xff0c 公司现在在
  • http://mirrors.163.com/centos/7.6.1810/os/x86_64/repodata/repomd.xml: [Errno 14]

    执行 vi etc yum repos d CentOS Base repo 里面内容都清楚 xff0c 然后把下面的复制粘贴上 CentOS Base repo The mirror system uses the connecting
  • 剑指offer T8跳台阶

    由推导可知 xff0c 递推公式为 f n 61 f n 1 43 f n 2 迭代法 xff1a 递归 xff1a 递归优化 xff08 保存结果 xff0c 剪枝 xff09 xff1a 转载于 https www cnblogs co
  • linux磁盘占用满了,docker日志清理

    磁盘分析命令 xff1a df h 查看当前文件夹所有文件大小 xff1a du sh 查看docker各容器占用的磁盘空间 du d1 h var lib docker containers sort h docker日志文件 xff1a
  • Install gitlab enterprise on ubuntu

    1 Install and configure the necessary dependencies sudo apt get update sudo apt get install y curl openssh server ca cer
  • python-docx 设置标题heading的中文字体类型+设置正文的中文字体类型

    依赖包 xff1a from docx import Document from docx shared import Pt from docx shared import Inches from docx oxml ns import q
  • 单片机显示原理(LCD1602)

    一 xff0e 接口 LCD1602是很多单片机爱好者较早接触的字符型液晶显示器 xff0c 它的主控芯片是HD44780或者其它兼容芯片 与此相仿的是LCD12864液晶显示器 xff0c 它是一种图形点阵显示器 xff0c 能显示的内容
  • 使用Simulink进行无刷直流电机控制仿真

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