步进电机控制原理

只是简单记录一下个人认为重要的控制原理。

知识点

电机转动

通过__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_4, tmp);不停的设置比较值来实现,这个值决定了管脚下一次翻转电平的时间。如设置定时器频率为20M,若此值设置为500,输出脉冲频率为20*106/500 / 2 = 20K.为什么要除2,是因为一高一低两个电平变化才构成一个完整驱动脉冲。
要是步进电机转动一圈需要4K个脉冲的话,那么这个驱动频率可以让电机每秒转5圈。

控制

这个操作一般都是在定时器中断中完成的,也就是定时器中断完成比较值的更新,根据不同加速度状态,可设置不同的值和状态。以此完成梯形或s形速度的设置。

加减速原理

加减速,都是由基础频率(低于电机启动频率)与跳变频率(在基础频率上逐渐提高的频率)
加减速曲线,一般为梯形,指数或s形曲线,对不同的负载,不同转速,需要选择合适的基础频率与跳变频率,才能达到最佳的控制效果。
完成步进电机的加减速时间为300ms以上,过短的时间,对绝大多数步进电机来说,很难实现高速旋转。

梯形加速度的实现原理

一个非常重要的步骤就是计算电机转动所需要定时器输出的脉冲频率;它的大小决定着电机的转速。如下图所示:

在这里插入图片描述

加速的过程就是将脉冲的发送间隔时间逐渐变短。减速可直观理解成加速的逆过程。

精确计算时间间隔

脉冲时间间隔表达

δ t = c t t = c f t \delta t=ct_t=\frac{c}{f_t} δt=ctt=ftc

ft:表示定时器的频率,倒数的话,就是定时器的计数周期,也就一个时间,如定时器频率采用3分频,那么就是80M/(3+1)=20M

c:以tt为单位的完整的脉冲,所代表的定时器的计数值。如:设定定时器计到500次,才翻转一下电平,c=500.

步距角

α = 2 π s p r \alpha= \frac{2\pi}{spr} α=spr2π

spr:步进电机转一圈的脉冲数,这个其实是常数。确定好细分数之后,这个就定了。
步距角对应的控制含义为:转1o弧度所需要的脉冲数。步数的确定要看电机,如电机标定一步为1.8o,那么转一圈所需要步数为360/1.8=200步。200步X控制器细分数=转一圈所需要脉冲数。

位置

Θ = n α \Theta= n\alpha Θ=nα,也可以由速度来表示: θ ( t ) = ∫ τ = 0 t ω ( t ) d τ = 1 2 ω ˙ t 2 = n α \theta(t)=\int_{\tau=0}^{t} \omega(t) d \tau=\frac{1}{2} \dot{\omega} t^{2}=n \alpha θ(t)=τ=0tω(t)dτ=21ω˙t2=nα
一定时间内,电机所转过角度,也就是电机的位置
变形后,可以求得到当前位置,电机所需要的时间: t n = 2 n α ω ˙ t_{n}=\sqrt{\frac{2 \mathrm{n} \alpha}{\dot{\omega}}} tn=ω˙2nα ,两边平方,得到 n = ω ˙ t n 2 2 α \mathrm{n}=\frac{\dot{\omega} t_{n}^{2}}{2 \alpha} n=2αω˙tn2,又因为tn=速度/加速度,将tn代入公式,可得: n ω ˙ = ω n 2 2 α \mathrm{n} \dot{\omega}=\frac{\omega_{n}^{2}}{2 \alpha} nω˙=2αωn2

用运动到n+1个脉冲位置所花时间减去tn,就可以得到第n个脉冲的时间间隔,cn*tt。(cn是定时器比较值,tt为定时器计数间隔)

n:脉冲数: c n t t = t n + 1 − t n = 2 α ω ˙ ( n + 1 − n ) c_{n} t_{t}=t_{n+1}-t_{n}=\sqrt{\frac{2 \alpha}{\dot{\omega}}}(\sqrt{n+1}-\sqrt{n}) cntt=tn+1tn

卓立汉光步进电机控制器SC300的控制程序 sc300help_ch.chm为控制器附带应用软件之帮助,内含通讯协议与OCX控件调用说明。 Sc300编程控件文件夹内为进行二次开发所需要的文件及说明。 Sample为在Visual Basic中使用OCX控件进行开发的示例程序。 LabView为在LabView中使用OCX控件进行开发的示例程序。 Sample_VC在VC中使用OCX控件进行开发的示例程序 SC300系列位移台控制箱使用说明书.pdf为控制箱说明书,包括控制器使用及通讯协议,注意事项等。 setup2.2.2SC300_20121108为标准控制软件。安装完毕后如果在WIN7或WIN8系统下运行程序,需要点击右键选择兼容模式再运行。 控件调用和安装方法: 1、如果电脑已经安装配套的控制软件,可以打开示例直接运行,直接调用OCX控件中函数。 2、如果电脑没有安装配套的控制软件,就需要将OCX文件夹中的.lic和.ocx文件放在指定的路径下。 32位操作系统放在C:\WINDOWS\system32,64位操作系统放在C:\WINDOWS\SysWOW64。 同时需要注册一下,在开始运行里输入regsvr32 C:\WINDOWS\system32\ZOLIXSC300.ocx(32位), regsvr32 C:\WINDOWS\SysWOW64\ZOLIXSC300.ocx(64位),点击确定提示成功后即可调用。 如果出现提示dllregisterserver调用失败,可在程序 - 附件 - 命令提示符,在”命令提示符“上点击鼠标右键,选择”以管理员身份运行“命令, 这个时候将打开Dos命令窗口,然后按正常写法输入上述语句,就能够注册成功了。 如果已成功注册但调用不了,可尝试反注册一下:regsvr32 /u C:\WINDOWS\system32\ZOLIXSC300.ocx(32位),regsvr32 /u C:\WINDOWS\SysWOW64\ZOLIXSC300.ocx(64位)。 然后重新注册即可。 3、如果需要重新建立新的工程,按照上述1或2完成之后, VC环境下: Project-Add to Project-Components and Controls Gallery-Registered ActiveX Controls-ZolixSC300.lnk 此路径下插入即可,此时出现OCX图标,拖入即可调用。 labview环境下: 工具-导入-ActiveX控件至选板-ZolixSC300 Control 点击确定即出现图标,拖入即可调用。 4、在64位操作系统下注册控件,如果出现“对dllregisterserver的调用失败,错误代码为0x80040200”,可以以管理员身份运行:所有程序-附件-命令提示符,再输入注册指令即可。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guangod

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值