步进电机加速段、匀速段、减速段脉冲控制方法

电机的S加速、减速曲线,可以实现速度和加速度的平滑; 

使用Sigmoid函数,y=\frac{1}{1+e^{-x}}

total = 1000;%脉冲数

max = 400;%间隔时间最大值
min = 100;%间隔时间最小值

step1_start = 0;
step1_end = fix(total/3.0);
step2_start = fix(total/3.0);
step2_end = fix(total/3.0) * 2;
step3_start = fix(total/3.0) * 2 + 1;
step3_end = total;

x1 = step1_start:0.01:step1_end;
y1 = 1./(1+exp(0.05*(x1-fix(step1_end/2)*ones(1,length(x1)))));

speed_avg = 1/(1+exp(0.2*(step1_end-fix(step1_end/2))));

x2 = step2_start:0.01:step2_end;
y2 = speed_avg * ones(1,length(x2));

x3 = step3_start:0.01:step3_end;
%y3 = 1./(1+exp(0.05*(fix(step1_end/2)*4*ones(1,length(x3))-x3)));
y3 = 1./(1+exp(-0.06*(x3 - 5*fix(step1_end/2)*ones(1,length(x3)))));

x = [x1,x2,x3];
y = [y1,y2,y3];

y = y .* (max - min) + min .* ones(1,length(y));

plot(x,y)

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2019/11/11增加:

如果要在硬件上实现,有两种方式,第一种是具有硬件pwm发生器的,相对比较方便;但我手中用的一块物联网芯片,没有硬件pwm,所有只能用GPIO来模拟,特别注意,脉冲发生器的代码,运行过程中不能被其它线程或是任务中断,否则会导致步进电机出现丢步的问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值