打印
[牛人杂谈]

那么占空比对于步进电机有什么意义呢

[复制链接]
8501|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
643757107|  楼主 | 2018-2-27 18:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
选用的程序是固高开发板的PWM模块的程序,当我按照程序(PWM频率为5KHz)驱动步进电机是,只有嗡嗡的声音,电机不转,于是我将频率调为上图的1.6KHz,电机可以运转。通过调节,我发现,只有频率在1.3KHz-1.8KHz时,电机才可以运转。
1、不是说可以通过调节频率来调节步进电机的转速吗,可是现在只有这么窄的范围,可以实现转速调节吗?
而且我发现在这些频率内,电机转速都差不多,是不是我理解错了?
2、当我调节PWM占空比的时候,发现也没有什么实际作用,电机转速也不会改变,那么占空比对于步进电机有什么意义呢?
3、我该如何利用PWM模块来调节步进电机不同的转速?
沙发
643757107|  楼主 | 2018-2-27 18:42 | 只看该作者
开发板中的PWM模块的程序如下:
#define CPU_CLK   100e6
#endif
#define PWM_CLK   1.6e3                 // If diff freq. desired, change freq here.
#define SP        CPU_CLK/(2*PWM_CLK)
#define TBCTLVAL  0x200E              // Up-down cnt, timebase = SYSCLKOUT


void EPwmSetup()
{
    InitEPwm1Gpio();
EPwm1Regs.TBSTS.all=0;
EPwm1Regs.TBPHS.half.TBPHS=0;
EPwm1Regs.TBCTR=0;

EPwm1Regs.CMPCTL.all=0x50;        // Immediate mode for CMPA and CMPB
EPwm1Regs.CMPA.half.CMPA =SP/2;
EPwm1Regs.CMPB=0;

EPwm1Regs.AQCTLA.all=0x60;        // EPWMxA = 1 when CTR=CMPA and counter inc
                                  // EPWMxA = 0 when CTR=CMPA and counter dec
EPwm1Regs.AQCTLB.all=0;
EPwm1Regs.AQSFRC.all=0;
EPwm1Regs.AQCSFRC.all=0;

EPwm1Regs.DBCTL.all=0xf;//b;          // EPWMxB is inverted
EPwm1Regs.DBRED=1000;
EPwm1Regs.DBFED=1000;

EPwm1Regs.TZSEL.all=0;
EPwm1Regs.TZCTL.all=0;
EPwm1Regs.TZEINT.all=0;
EPwm1Regs.TZ**.all=0;
EPwm1Regs.TZCLR.all=0;
EPwm1Regs.TZFRC.all=0;

EPwm1Regs.ETSEL.all=9;            // Interrupt when TBCTR = 0x0000
EPwm1Regs.ETPS.all=1;                  // Interrupt on first event
EPwm1Regs.ET**.all=0;
EPwm1Regs.ETCLR.all=0;
EPwm1Regs.ETFRC.all=0;

EPwm1Regs.PCCTL.all=0;

EPwm1Regs.TBCTL.all=0x0010+TBCTLVAL;        // Enable Timer
EPwm1Regs.TBPRD=SP;

}

使用特权

评论回复
板凳
643757107|  楼主 | 2018-2-27 18:42 | 只看该作者
------解决方案--------------------
1、不是说可以通过调节频率来调节步进电机的转速吗,可是现在只有这么窄的范围,可以实现转速调节吗?
而且我发现在这些频率内,电机转速都差不多,是不是我理解错了?
我印象中,伺服电机才是PWM调速的,步进电机用的是步进脉冲的频率调速.也有可能是不同的驱动器采用的方式不一样...

2、当我调节PWM占空比的时候,发现也没有什么实际作用,电机转速也不会改变,那么占空比对于步进电机有什么意义呢?
不知道是不是驱动器的特殊要求.

3、我该如何利用PWM模块来调节步进电机不同的转速?
同上
要不LZ好好查查~

使用特权

评论回复
地板
643757107|  楼主 | 2018-2-27 18:43 | 只看该作者
------解决方案--------------------
1、不是说可以通过调节频率来调节步进电机的转速吗,可是现在只有这么窄的范围,可以实现转速调节吗?
而且我发现在这些频率内,电机转速都差不多,是不是我理解错了?
转速和PWM的频率没关系,和绕线的通电方向的切换速度有关

2、当我调节PWM占空比的时候,发现也没有什么实际作用,电机转速也不会改变,那么占空比对于步进电机有什么意义呢?
PWM占空比会影响步进电机的力矩但不会影响速度,占空比太小了其力矩无法推动自身的惯性就会出现转不动的现象

3、我该如何利用PWM模块来调节步进电机不同的转速?
没用过你那个PWM模块,
以4节拍为例
A+:A线组正向通电
B+:B线组正向通电
A+ -> B+ -> A- -> B- ->A+ ->.....
该循环越快电机转速越快,但注意是有上限的

使用特权

评论回复
5
643757107|  楼主 | 2018-2-27 18:43 | 只看该作者
------解决方案--------------------
楼主要确认你用的是单纯的PWM模块还是步进电机的驱动模块
------解决方案--------------------
看来下20403的PDF,的确是靠频率控制速度的,
引用
脉冲信号输入
共阳极时该脉冲信号下降沿被驱动器解释为一个有效脉冲,并驱动电机运行一步。为了确保脉冲信号的可靠响应,共阳极时脉冲低电平的持续时间不应少于10μs。本驱动器的信号响应频率为70KHz,过高的输入频率将可能得不到正确响应

你是不是接错线了?
引用
错相保护
  两相电机与驱动器连接时,用户极易接错相,从而严重损坏驱动器。本驱动器设计了错相保护电路。用户即使接错相,驱动器也不会损坏,不过电机运行会不正常,主要表现在出力极小。遇此情况,应检查电机接线是否正确

使用特权

评论回复
6
643757107|  楼主 | 2018-2-27 18:43 | 只看该作者
------解决方案--------------------
先把电机断掉,拿示波器看看驱动器输出的频率是多少
看你贴的半步下最大空载起动频率是1.6Khz

再看看驱动器编码开关是怎么配置的
确定是半步?
------解决方案--------------------
引用:
Quote: 引用:

先把电机断掉,拿示波器看看驱动器输出的频率是多少
看你贴的半步下最大空载起动频率是1.6Khz

再看看驱动器编码开关是怎么配置的
确定是半步?

电机我已经调好了,现在可以正常运转,而且起动PWM频率也可以高至5KHz,我按照你说的拿示波器测了一下,步进驱动器输出的频率为187Hz,我不太清楚是怎么从PWM频率计算过来的...那个空载起动频率1.6KHz,指的是进入步进驱动器的频率吧?
你说的很对,我没有设置成半步,以为都一样呢...现在已经改过来了。半步的起动频率是1.6KHz,那整步起动频率是多少啊?

1. 你要找点步进电机基础知识的书看看,我没深入玩过,上一次玩都是5年前的事情了,用的是一个细分驱动芯片,确认受控就直接扔在一边不管。现在乱说就是误人子弟。可以去看看这个
http://www.ti.com.cn/solution/cn ... tepper_motor?247SEM
2. 1.6khz是电机本身的响应最大频率,而不是驱动器的。你还要看看驱动器本身的响应,这个要查datasheet了,就是SH-20403本身的。我看到最大响应是70Khz,这个信号进去之后驱动器会加以转换,在特定的细分下才能推动电机。
3. 你那个187hz信号是什么样的?你用哪里当参考点的?是每一相对地的?还是相和相之间的?
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

先把电机断掉,拿示波器看看驱动器输出的频率是多少
看你贴的半步下最大空载起动频率是1.6Khz

再看看驱动器编码开关是怎么配置的
确定是半步?

电机我已经调好了,现在可以正常运转,而且起动PWM频率也可以高至5KHz,我按照你说的拿示波器测了一下,步进驱动器输出的频率为187Hz,我不太清楚是怎么从PWM频率计算过来的...那个空载起动频率1.6KHz,指的是进入步进驱动器的频率吧?
你说的很对,我没有设置成半步,以为都一样呢...现在已经改过来了。半步的起动频率是1.6KHz,那整步起动频率是多少啊?

使用特权

评论回复
7
643757107|  楼主 | 2018-2-27 18:44 | 只看该作者
呵呵,原来占空比影响的是力矩,是不是很神奇。

使用特权

评论回复
8
643757107|  楼主 | 2018-2-27 18:44 | 只看该作者
当然也好理解了,就是占空比大的时候,系统输出功率大,这反应到力矩上

使用特权

评论回复
9
643757107|  楼主 | 2018-2-27 18:48 | 只看该作者
PWM的占空比决定输出到直流电机的平均电压,所以通过调节占空比,可以实现调节输出电压的目的,而且输出电压可以无级连续调节。在使用PWM控制的直流无刷电动机中,PWM控制有两种方式:
(1)使用PWM信号,控制三极管的导通时间,导通的时间越长,那么做功的时间越长,电机的转速就越高。
(2)使用PWM控制信号控制三极管导通时间,改变控制电压高低来实现。
    调速不只是改变电压(电源电压或者控制电压),改变电流也可以(控制回路的电流,而不是PWM信号的电流)。PWM信号是一个矩形的方波,他的脉冲宽度可以任意改变,改变其脉冲宽度控制控制回路输出电压高低或者做功时间的长短,实现无级调速。

使用特权

评论回复
10
643757107|  楼主 | 2018-2-27 18:48 | 只看该作者
因此PWM在不同电机上的作用是不同的

使用特权

评论回复
11
jiekou001| | 2018-2-27 19:03 | 只看该作者
之前没永个这个,都是IO控制的。。原来PWM也可以做步进电机控制。

使用特权

评论回复
12
xinpian101| | 2018-2-27 19:22 | 只看该作者
几个问题总结的很到位,之前我也没想到,看到答案,一下懂了

使用特权

评论回复
13
xinpian101| | 2018-2-27 19:23 | 只看该作者
有点像上学时候做题不会,看答案,一看就心里想:这我也会啊。

使用特权

评论回复
14
zhuotuzi| | 2018-2-27 19:32 | 只看该作者
总结的不错。

使用特权

评论回复
15
zhuotuzi| | 2018-2-27 19:32 | 只看该作者
MARK。

使用特权

评论回复
16
heisexingqisi| | 2018-2-27 20:36 | 只看该作者
转速和PWM的频率没关系,和绕线的通电方向的切换速度有关,有点难理解。

使用特权

评论回复
17
xujunyi3611| | 2018-2-28 22:24 | 只看该作者
有了占空比,步进电机才可以动作,持续的一个电平是很难动作的。

使用特权

评论回复
18
yanghgc| | 2018-6-21 22:36 | 只看该作者
如何控制脉冲个数呢

使用特权

评论回复
19
up浩| | 2020-9-9 09:59 | 只看该作者
yanghgc 发表于 2018-6-21 22:36
如何控制脉冲个数呢

设一个计数变量,产生一定数目后,关闭定时器即可

使用特权

评论回复
20
liubinghui| | 2022-6-29 17:08 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

199

主题

3697

帖子

11

粉丝