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

2023-11-19

这段时间刚开始接触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

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

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

  • Unity3D之Rigidbody

    目录 常用的Rigidbody属性和方法 rigidbody AddForce rigidbody AddTorque rigidbody velocity rigidbody angularVelocity rigidbody Sleep
  • 国家语言对照表

    国家 地区 语言代码 国家 地区 语言代码 简体中文 中国 zh cn 繁体中文 台湾地区 zh tw 繁体中文 香港 zh hk 英语 香港 en hk 英语 美国 en us 英语 英国 en gb 英语 全球 en ww 英语 加拿大
  • Spring源码从入门到精通---@Scope&@Lazy(三)

    上篇文章主要介绍了 ComponentScan的注解 Spring源码从入门到精通 ComponentScan 二 这篇文章主要介绍单例模式 多例模式 懒加载 先上目录结构 这篇文章先创建了beanConfig2文件 1 多例模式 单例模式
  • Compile Options--编译选项

    目的 其主要作用是用于调试跟踪和测试 主要包含 MT TASK MT ZDO FUNC and other MT compile options LCD SUPPORTED LCD SUPPORTED DEBUG BLINK LEDS 且看
  • 【产量预测】BP和GRNN神经网络预测粮食产量【含Matlab源码 1247期】

    一 BP神经网络简介 1 BP神经网络概述 BP Back Propagation 神经网络是1986年由Rumelhart和McCelland为首的科研小组提出 参见他们发表在Nature上的论文 Learning representat
  • 第二章 常用安全工具

    目录 1 Kali系统工具分类 2 Kali Top10工具 1 Kali系统工具分类 信息收集 Information Gathering 主要目的是收集渗透测试目标的基本信息 包括操作系统信息 网络配置信息 应用服务信息等 脆弱性分析
  • Python:读取CSV文件的某几列

    三种读取方式如下 import csv import pandas as pd with open 2 csv r as csvfile reader csv reader csvfile column1 row 1 for row in
  • 【Docker应用篇】GitLab代码私服

    Docker应用篇 GitLab代码私服 什么是GitLab 概述 基于 Docker 安装 GitLab 访问 GitLab 的账户管理 创建用户 设置账户信息 修改用户密码 退出并使用新账户登录 GitLab GitHub 使用 SSH
  • 单例模式的八种写法比较

    单例模式是最常用到的设计模式之一 熟悉设计模式的朋友对单例模式都不会陌生 一般介绍单例模式的书籍都会提到 饿汉式 和 懒汉式 这两种实现方式 但是除了这两种方式 本文还会介绍其他几种实现单例的方式 让我们来一起看看吧 简介 单例模式是一种常
  • Java开发工具

    文章目录 一 Sublime Text 二 IDEA 一 Sublime Text 官网 Sublime Text 说明 文本编辑器 适合初学者练习手写代码 特点 支持多行编辑 二 IDEA
  • Windows powershell添加自定义快捷指令(Linux下对比)

    Windows Powershell 1 创建并修改Windows Powershell 启动执行文件 echo PROFILE 编辑C Users hongyang jia Documents PowerShell Microsoft P
  • QT编程----事件

    QT程序设计进阶 事件 Qt事件 Qt程序是事件驱动的 程序的每个动作都是由幕后某个事件所触发 Qt事件的类型很多 常见的qt的事件如下 键盘事件 按键按下和松开 鼠标事件 鼠标移动 鼠标按键的按下和松开 拖放事件 用鼠标进行拖放 滚轮事件
  • 基于振动传感器数据构建预测性维护AI模型

    预测性维修 Predictive Maintenance 简称PdM 是以状态为依据 Condition Based 的维修 在机器运行时 对它的主要 或需要 部位进行定期 或连续 的状态监测和故障诊断 判定装备所处的状态 预测装备状态未来
  • 1030 完美数列

    给定一个正整数数列 和正整数 p 设这个数列中的最大值是 M 最小值是 m 如果 M mp 则称这个数列是完美数列 现在给定参数 p 和一些正整数 请你从中选择尽可能多的数构成一个完美数列 输入格式 输入第一行给出两个正整数 N 和 p 其
  • 华为校招机试 - 单词重量(Java)

    题目描述 每个句子由多个单词组成 句子中的每个单词的长度都可能不一样 我们假设每个单词的长度Ni为该单词的重量 你需要做的就是给出整个句子的平均重量V 输入描述 无 输出描述 无 用例 输入 Who Love Solo 输出 3 67 说明
  • 算法相关-经典排序算法(goland实现)

    概述 插入排序 将未排序的元素同已排序的元素从后往前比较 带排序元素 a 被比较元素 b 如果a
  • C++内存管理机制

    1 C 内存管理机制 在C 中内存分为5个区 分别是堆 栈 自由存储区 全局 静态存储区和常量存储区 堆 heap 分配方式类似于链表 一般由程序员分配和释放 若程序员不释放 OS可能回收 分配方法 malloc new 释放方法 free
  • LINUX上wireshark无权限问题

    1 查找dumpcap目录 sudo find name dumpcap 2 增加wireshark组 sudo groupadd wireshark 3 将dumpcap目录权限给于wireshark组 并给于相关权限 sudo chgr
  • border-radius使用详解

    我在使用这个属性的时候 一般都是用在给div或者button加上一点圆角弧度 显得好看一点 或者用来画一个圆形div 用的稍微高级一点的 也就是用来画了一个右半圆来做为侧边栏的展开 收缩按钮 一 border radius使用 border

随机推荐

  • Java线程的6种状态及切换(透彻讲解)

    Java中线程的状态分为6种 1 初始 NEW 新创建了一个线程对象 但还没有调用start 方法 2 运行 RUNNABLE Java线程中将就绪 ready 和运行中 running 两种状态笼统的称为 运行 线程对象创建后 其他线程
  • 二进制文件反序列化错误

    二进制文件反序列化 出现错误 SerializationException was unhandled The ObjectManager found an invalid number of fixups This usually ind
  • 两小时快速入门 TypeScript 基础(一)工作流、基本类型、高级类型

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 也会涉及到服务端 Node js 等 个人状态 2023届本科毕业生 已拿多个前端 offer 秋招 未来打算 为中国的工业软件事业效力 n 年 推荐学习 前端面试宝典 Vue2 Vu
  • Splunk 优化之加速报表 Accelerate reports

    1 背景 有些客户的数据比较大 这个时候就会用到 报表的加速功能 Accelerate reports If your report has a large number of events and is slow to complete
  • 蓝桥杯-分巧克力(二分搜索)

    历届试题 分巧克力 时间限制 1 0s 内存限制 256 0MB 问题描述 儿童节那天有K位小朋友到小明家做客 小明拿出了珍藏的巧克力招待小朋友们 小明一共有N块巧克力 其中第i块是Hi x Wi的方格组成的长方形 为了公平起见 小明需要从
  • 程序无法启动ALL_BUILD 拒绝访问

    用cmake编译完opencv3 0后 发现编译没有问题 但尝试调试的时候报错 无法启动 ALL BUILD拒绝访问 调了很久才解决 方法是 卸载所有无关工程 只保留一个你需要的工程 这时候ZERO CHECK以及ALL BUILD都没有必
  • 什么是数字货币、数字金融 和区块链?

    从金融视角来说 区块链和数字货币 其实就是新一代的数字金融体系 数字金融体系 就是建立在区块链数字货币的金融基础设施上的 站在企业的角度 怎么来理解数字经济 我们知道工业经济驱动因素是化石燃料 数字经济驱动因素是数据 那么数据怎么去驱动一个
  • JAVA实习生刚进入公司一般会被安排做什么样的工作?

    新人进公司首先给你配置个人有邮箱和ip clone代码让你熟悉大概有一周左右 再在此之间 可能会有你的同事或者组长来给你大致讲一下项目的模块 架构 数据库 有的 公司让你看 不懂的让你去问他 针对于刚毕业的 还没有相关经验的可能会有所不同
  • 华为服务器bmc怎么传文件,华为服务器bmc配置

    华为服务器bmc配置 内容精选 换一换 通过华为云创建的ECS服务器默认使用华为云提供的内网DNS进行解析 内网DNS不影响ECS服务器对公网域名的访问 同时 还可以不经Internet 直接通过内网DNS访问其他云上服务内部地址 如OBS
  • 如何修改cmd控制台默认编码为utf-8,正确显示汉字

    首先我们打开在运行输入框等方式打开cmd窗口后 在窗口顶部右击选择属性 选中选项后会看到默认编码为gbk 然后我们在默认窗口路径内 输入chcp命令后回车 会输出图中的结果 936就表示gbk编码 然后在窗口中输入chcp 65001 65
  • ECharts 设置折线颜色和小圆点颜色

    ECharts 设置折线颜色只需要设置lineStyle的color即可 设置小圆点颜色只需要设置itemStyle的颜色即可 series name seriesName type line itemStyle normal color
  • Spark性能优化指南——基础篇

    前言 在大数据计算领域 Spark已经成为了越来越流行 越来越受欢迎的计算平台之一 Spark的功能涵盖了大数据领域的离线批处理 SQL类处理 流式 实时计算 机器学习 图计算等各种不同类型的计算操作 应用范围与前景非常广泛 在美团 大众点
  • 高德地图——步行导航

    高德地图 步行导航 插件 plugin AMap Walking 步行导航和驾驶导航几乎是一样的 唯一的不同便是导入的插件不同 步行导航的全程都是蓝色的 而驾驶导航线会有红色拥堵 绿色通畅的颜色
  • 实现java导出文件弹出下载框让用户选择路径

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在实现导出文件时 弹出下载框主要是设置成文件流 stream类型的response 浏览器就会识别 然后弹出下载框让用户选择保存路径 这里总结三个方式 web struts
  • c# asp.net 如何在js文件中使用服务器变量,asp.net中JS,CS 调用后台变量的值多种方法...

    本文章介绍了关于asp net中JS CS 调用后台变量的值多种方法 有需了解的朋友可以参考一下 1 后台 Publicstringstr 123 最好为Public类型 直接在AspX前台页面HTML代码中要放的位置写入如下代码 2 用J
  • 解决${}EL表达式不起作用,无法获取数据,页面显示内容出错

    问题 EL表达式无法获取数据 解决办法 在jsp页面加入 这句话表示 可以使用EL 表达式 效果
  • html标签中src=“图片路径”,怎么用变量替换路径

    div style background image none bg0 gif bg5 gif div
  • C++中std::sort/std::stable_sort/std::partial_sort的区别及使用

    某些算法会重排容器中元素的顺序 如std sort 调用sort会重排输入序列中的元素 使之有序 它默认是利用元素类型的 lt 运算符来实现排序的 也可以重载sort的默认排序 即通过sort的第三个参数 此参数是一个谓词 predicat
  • 转载:IT项目管理-看板管理

    作为一个开发团队的管理者 例如当你是一个团队的项目经理的时候 任务的完成情况通常是你最关心的内容之一 比如说分配的任务是否能够按时间完成 整个项目的进度是否尚在计划之中 团队内的人是不是都在高效地工作 大家有没有什么困难 这些是你经常会关注
  • 无刷直流电机控制MATLAB仿真,使用Simulink进行无刷直流电机控制仿真

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