两相混合步进电机(简单驱动器)simulink仿真

2023-11-02

1.目的

主要是控制步进电机的正反转以及周期性的转动一个步距角度,驱动模式为整步4拍不涉及到对转速的控制!比较基础。其次比较着重于对模型的分析,如有错误,这里欢迎大佬们指出。

推荐先看一下以下的论文:

基于simulink的步进电机控制系统仿真      周一飞

链接:基于simulink的步进电机控制系统仿真 - 豆丁网

2.仿真图与来源

来源于matlab自身的help中的示例如下图所示:

①首先打开help界面并搜索stepper motor:

 ②然后点击示例:

③选择以下的示例并打开:

 3.数学模型

 非常重要!模型搭建的基础在上面论文中有我这里截一下图

 

 4.模块搭建:

4.1电机模块

 内部的参数解释如下:

Motor type:有两个选项一个是PM型永磁或HB混合型;另一个是VR反应型区别,由于混合式HB经常使用所以这里采用的则为混合式来介绍可以参考(电机分类章节):

一文搞懂步进电机特性、原理及驱动器设计_步进电机驱动原理_不脱发的程序猿的博客-CSDN博客

Number of phases为电机相数P

Winding Inductance 各相绕组电感L

Winding resistance 各相绕组电阻R

Step angle 步距角(每一步对应的角度)

Maximum Flux Linkage 电机最大磁通\Psi m

Total inertia   电机与负载的转矩惯量J

Total friction   电机与负载的粘滞阻尼系数 B

Initial speed/position初始的速度/位置

Sample time   采样时间,-1则采用默认的仿真时间

4.2信号产生模块

这里step指的是电机是否转动(1代表转动,0代表静止);DIR代表方向(1为正转,0为反转)

4.3驱动模块: 

这里是采用的是逆变桥的驱动方式来控制A+,A-,B+,B-的

关于逆变桥原理可以参考下面大佬的链接:

FOC——9.三相逆变桥_Cc1924的博客-CSDN博客

仿真图:

drive驱动器内部

外部

为什么要用2个Universal Bridge模块那?

因为一个模块最多只能控制3路,而我们需要对4路输出进行控制所以需要2个。

电流测量模块Current Measurement在后面进行分析。

4.4扇区选择

 

 这里深色的模块是为了防止输入输出模块仿真时间不同导致运算出错而添加的,点击这个模块前后的模块对比仿真时间即可看出前面的仿真时间为Ts后面的仿真时间则为转一圈的步数*Ts,为什么这么设计那可以看一下后面的仿真结果分析:

用法可以参考链接:关于对Rate Transition模块的简要总结_ratetransition_YUN9的博客-CSDN博客

 这里左侧的开关图分析一下:

当STEP取0时,右侧开关始终取下面的0,通过离散积分器可知恒定为0;这里通过math函数的求余,个人认为不应该时取模的,原示例是取模(取整数部分),结果仿真结果和取余结果一致,有懂得大佬可以告知一下感谢。

下面这个位置为什么要除4取余,这里积分器可知是不断的进行+1操作,因为这里采用的是整步4拍驱动,电机转一圈,A相与B相绕组通电状态有4种变换。所以要筛选出4种状态需要求余数。

参考链接:两相四线步进电机的驱动方法/驱动芯片用法_两相四线步进电机驱动_zd845101500的博客-CSDN博客

math函数的使用参考下面大佬的:

Math Function模块-每天一个MATLAB小技巧(11) - 知乎 (zhihu.com)

这里的查表模块就是为了确认A相绕组与B相绕组的通电状态,这里采用双极性单相控制所以带有正负,1代表正向,-1代表负向,0代表不通电,初始角度位置为0,整步通电次序为A->B->A-->B-

所以A相状态为:1,0,-1,0;B相为0,1,0,-1;

查表模块使用:Simulink 查表模块2-D Lookup Table的使用方法-百度经验 (baidu.com)

4.5电流环控制与PWM生成

这里控制绕组电流为2A,采用滞环控制的方式进行控制,并对反馈的电流进行低通滤波处理。

低通滤波可以参考:

 一阶RC低通滤波器的离散化 - 知乎 (zhihu.com)

这张图也就解释了为什么后面输出的桥臂需要对电流计算用于电流控制。

5.仿真结果分析

先看电压吧,电压基本就是稳定在±28V范围,原因就是DC电路的电压就是28V,而我们控制开关器件的通断来控制电机的,所以电压在±28V。

对于AB两相绕组电流来说电流环控制,给定的电流根据电机转动的步数改变值为【1 0 -1】*【2】所以有±2A,0A三种状态出现的次序按照之前分析的查表法来分析即可。为什么波动很大,这就是滞环控制的缺陷了,没有积分的积累。

接下来就是对转子角度随时间变化的分析,这个也比较简单,由于是按照4拍依次通电,并且电流恒定,那么的话分为2种情况,当每一拍的时间过长时,也就是这里仿真图上的结果,转子会转动到每一拍的平衡位置然后停下来直到下一拍的通电状态改变才会再进行转动,这里就解释了扇区选择种为什么后面的采样时间会变长的原因,在于使得电机有足够的时间转动到对应位置然后停下来。对于每一拍时间过短那些就要实时的检测步进电机的位置了这里就不再介绍了(内容比较多了)。

对于转速为什么起到抛物线形状,就是磁场一定时可以分析一下转子转动过程中的受力情况就可以得出了。

 

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

两相混合步进电机(简单驱动器)simulink仿真 的相关文章

  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 为什么matlab的mldivide比dgels好这么多?

    Solve Ax b 真正的双 A是超定的 Mx2 其中 M gt gt 2 b是MX1 我运行了大量的数据mldivide 并且结果非常好 我用 MKL 写了一个 mex 例程LAPACKE dgels但它远没有那么好 结果有大量噪音 并
  • 频域和空间域的汉明滤波器

    我想通过在 MATLAB 中应用汉明滤波器来消除一维信号中的吉布斯伪影 我所拥有的是k1这是频域中的信号 我可以通过应用 DFT 来获取时域信号k1 s1 ifft ifftshift k1 该信号具有吉布斯伪影 现在 我想通过 A 乘以汉
  • 在 MATLAB 中定义其他中缀运算符

    有没有办法在 MATLAB 中定义额外的中缀运算符 具体来说 我想定义两个中缀运算符 gt and lt gt 这些符号是理想的 但如果需要 它可以是单个字符 它调用函数implies and iff以同样的方式 calls and and
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 定义自定义 Mupad 程序的一般相对搜索路径

    假设我有一个 mupad 笔记本myMupadNotebook mn在路径上 C projectFolder ABC abc 它调用程序MyMupadProcedure mu它位于 C DEF GHI 现在我有一个 Matlab 脚本mai
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 使用 R2010b 中的符号工具箱来求解和/或 linsolve

    我前几天问了一个问题here https stackoverflow com questions 20317038 matlab linear congruence solver that supports a non prime modu
  • matlab部署工具到java包javac错误

    我正在尝试将我的程序包装为与 java 一起使用 我首先尝试了一个简单的 hello world 你好世界 m disp 你好世界 我使用了deploytool并选择了java包 当它到达这一行时 执行命令 javac verbose cl
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 在 Matlab 的命令窗口中获取旧式帮助

    问题的简短版本 在最新版本的 Matlab 中 我在 Windows 上的 R2014b 和 R2015a 中看到过 当您键入help foo你得到一个简要描述 简介函数及其签名 例如 输入help bsxfun产生类似这样的东西 只有更好
  • 如何在向量中的所有点之间绘制线?

    我有一个包含二维空间中一些点的向量 我希望 MATLAB 用从每个点到每个其他点绘制的线来绘制这些点 基本上 我想要一个所有顶点都连接的图 你能用情节来做到这一点吗 如果可以 怎么做 一种解决方案是使用该函数为每个点组合创建一组索引MESH
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • MATLAB 除法...29/128 应该返回 0 吗?

    我真的不认为这是一个精度问题 答案应该是0 226左右 这是确切的代码 val I i j bucketSize pos val bucketSize I只是我从中获取值的矩阵 以下是 MATLAB 的输出 val 29 bucketSiz
  • 如何在 MATLAB 中将矩阵元素除以列总和?

    有没有一种简单的方法可以将每个矩阵元素除以列和 例如 input 1 4 4 10 output 1 5 4 14 4 5 10 14 以下是执行此操作的不同方法的列表 使用bsxfun https www mathworks com he
  • 更新:随机将行添加到矩阵中,但遵循严格的规则

    以下是一个更大的矩阵的一部分 0 1 0000 1 0000 77 0000 100 0000 0 0 2500 0 1 0000 1 0000 72 0000 100 0000 0 2500 0 2500 0 1 0000 1 0000
  • MATLAB 变量传递和惰性赋值

    我知道在 Matlab 中 当将新变量分配给现有变量时 会进行 惰性 评估 例如 array1 ones 1 1e8 array2 array1 的价值array1不会被复制到array2除非元素array2被修改 由此我推测Matlab中
  • 通过颜色渐变修补圆

    我正在尝试绘制一个颜色渐变 我希望它沿轴均匀 在下图由角度定义的情况下 pi 7 当我使用patch命令 绘图与所需的梯度方向匹配 但沿其方向并不均匀 沿圆的点之间形成各种三角形 这是代码 N 120 theta linspace pi p

随机推荐

  • 2020-6次面试阿里,持续一个多月,终于拿到offer了!

    从3月开始准备 一直到5月22号 终于拿到阿里的实习offer 这一路 真的是一把辛酸泪 下面细说之 在这一路上 坎坎坷坷 跌跌宕宕 期间 面了阿里 腾讯 百度 今日头条 小米 笔试网易 美团 携程 爱奇艺 不得不说 阿里是持续周期最长的
  • 视频爬虫逆向简单入门级

    严禁用于学习交流之外的任何用途 侵删 只能说这个比较简单 没什么难度 很适合做js逆向入门 下面就开始解析一下这个网站吧 aHR0cHM6Ly93d3cubWlndXZpZGVvLmNvbS9tZ3Mvd2Vic2l0ZS9wcmQvZGV
  • python中的爬虫基础工具介绍

    一 引入什么是爬虫 网络爬虫 按照一定的规则 自动地抓取互联网信息的程序 通俗的来讲 模拟用户端向服务器发送请求 批量获取数据的一种程序或 工具 方式 二 爬虫的分类 1通用爬虫 通用网络爬虫是捜索引擎抓取系统 Baidu Google S
  • 二进制部署k8s集群

    二进制部署k8s集群 1 安装要求 在开始之前 部署 Kubernetes 集群机器需要满足以下几个条件 一台或多台机器 操作系统 CentOS7 硬件配置 2GB 或更多 RAM 2 个 CPU 或更多 CPU 硬盘 30GB 或更多 集
  • 【JavaSE】常用类库1

    常用类库 1 对象清理 对象的清理 JDK1 9以前 使用Object中的finalize 方法 JDK1 9后 java lang ref Cleaner类 基于AutoCloseable接口资源释放 对象释放前 启动对象清理线程 pub
  • 20220128学习记录- 北交opencv基础

    1 模拟图像 空间采样与亮度量化 数字图像 空间分辨率 与采样间隔有关 亮度分辨率 与灰度级有关 2 图像存储 比特数 面积x灰度级的量化级别 注意是256灰度级不是乘256而是乘8 2的8次方 3 各类图像格式的特点与区别 4 灰度直方图
  • 什么是数据挖掘技术,基本概念是什么?

    随着计算机技术的发展 各行各业都开始采用计算机及相应的信息技术进行管理和运营 这使得企业生成 收集 存贮和处理数据的能力大大提高 数据量与日俱增 企业数据实际上是企业的经验积累 当其积累到一定程度时 必然会反映出规律性的东西 对企业来 堆积
  • JavaWeb-使用cookie完成两周内免登录功能

    欢迎页面 h2 欢迎页面 h2 br
  • 一文看懂异步 FIFO 架构(三) 双时钟的异步 FIFO

    目录 工作原理 方向标志 方向标志的实现 计算满和空 结论 往期系列博客 在本系列的第一篇文章中 我们看到了 FIFO 的一般架构 并分析了一个时钟的简单情况 该系列的第二部分描述了一种可能的双时钟设计的架构 在第三部分中 我们将探索另一种
  • Window操作系统基本知识

    windows系统 kernel32 dll是Windows 系统中非常重要的32位动态链接库文件 属于内核级文件 它控制着系统的内存管理 数据的输入输出操作和中断处理 当Windows启动时 kernel32 dll就驻留在内存中特定的写
  • 【CSS】滚动条样式详解

    只总结webkit的 IE与firefox暂不做记录 呼出与关闭滚动条 1 如果是浏览器的滚动条 其依赖的是html标签 我们不需要设置 内容溢出会自动出现 对html标签的溢出样式隐藏即可 html overflow x hidden 隐
  • 集合竞价规则及集合竞价的产生条件

    了解一下集合竞价规则 对于股民来说 是非常重要的 否则连一些基本的定义都了解不清楚的话 那么就麻烦了 下面为你介绍一下集合竞价规则以及集合竞价的产生条件 如果想要了解更多集合竞价方面的知识 敬请关注QR量化投资社区 下面让我们了解一下集合竞
  • 引入flutter module,运行时flutter_webview_plugin报错:Unhandled Exception: MissingPluginException

    异常信息 Android原生项目引入了一个flutter module flutter module用到了一个flutter写的sdk sdk需要使用webview来执行js代码 因此sdk引用了flutter webview plugin
  • mysql 分区表合并_MySQL 合并表、分区表

    合并表 合并表示一种早期的 简单的分区实现 在未来可能被淘汰 不推荐使用 限制 合并表和子表的字段 索引要完全相同 即使子表上有主键限制 合并表中仍然会出现重复值 如果删除其中一个子表 表可能还存在 带只能通过合并表访问 视操作系统而定 合
  • @GetMapping 接多个参数的写法

    后面拼接接着拼接上去就行了 此上方面针对于 接收多个未知参数 但是针对有很多需要模糊查询的方面 如果 我们所需要的接收的参数 是我们实体类对象的话 就不需要这么麻烦了 直接带入实体类对象 用即可
  • qt 串口通信

    qt串口通信 需要用到QSerialport类 1 pro文件中添加QT serialport 2 获取当前有哪些串口设备 QSerialPortInfo availablePorts 3 设置要打开的串口 setPortName 然后打开
  • 前端人员学习postman

    前端人员使用postman postman介绍 下载安装 posman的基本操作 主要进的是如何新建一个文件夹 然后新建请求 postman发送不同请求 讲的是如何发送不同类型的请求 发送get请求 发送post请求 body里面数据类型的
  • 人工智能科技成熟的11个Github上免费开源项目,很多电影中才有的场景应用到现实颠覆普通人的认知和想象

    人工智能科技成熟的11个Github上免费开源项目 很多电影中才有的场景应用到现实颠覆普通人的认知和想象 全文大纲 PULSE 该开源项目可以通过给图片增加像素点来实现去马赛克或高清化 Depix 给打了马赛克的文字去码 TecoGAN 给
  • Wireshark数据抓包分析之ARP协议

    目录 预备知识 1 知识储备 2 什么是ARP 3 ARP工作流程 4 ARP缓存表 实验目的 实验环境 实验步骤一 实验步骤二 实验步骤三 预备知识 1 知识储备 推荐两本好书 TCP IP详解卷1 http www pc6 com so
  • 两相混合步进电机(简单驱动器)simulink仿真

    1 目的 主要是控制步进电机的正反转以及周期性的转动一个步距角度 驱动模式为整步4拍不涉及到对转速的控制 比较基础 其次比较着重于对模型的分析 如有错误 这里欢迎大佬们指出 推荐先看一下以下的论文 基于simulink的步进电机控制系统仿真