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 电机最大磁通
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种情况,当每一拍的时间过长时,也就是这里仿真图上的结果,转子会转动到每一拍的平衡位置然后停下来直到下一拍的通电状态改变才会再进行转动,这里就解释了扇区选择种为什么后面的采样时间会变长的原因,在于使得电机有足够的时间转动到对应位置然后停下来。对于每一拍时间过短那些就要实时的检测步进电机的位置了这里就不再介绍了(内容比较多了)。
对于转速为什么起到抛物线形状,就是磁场一定时可以分析一下转子转动过程中的受力情况就可以得出了。