stevenniu500 发表于 2015-7-13 11:57:31

伺服电机怎么控制呢?请教高人。

      大家好。最近在弄一个伺服电机的控制。之前没有接触过,现在感觉特别凌乱了。如图所示。就是这样的一款。




编码器是HEDL-5540-A06,共10根线
这是相关信息,



这个伺服电机的控制线是两根线,一根红一根黑。我不明白的是,
      1)两根线如何控制呢用单片机,轮流给高低电平吗?
      2)如果用单片机控制,硬件电路怎么做呢?手上没有电路可以参考。毫无头绪。
      3)代码怎么写呢?


      请大家帮忙指点一二,或是提供些相关资料看看。

LearningASM 发表于 2015-7-13 12:27:43

这是直流电机~~编码器给数据你

stevenniu500 发表于 2015-7-13 12:55:20

LearningASM 发表于 2015-7-13 12:27
这是直流电机~~编码器给数据你

直流无刷电机吗?通过控制电压大小来控制速度与方向,对吗?

LearningASM 发表于 2015-7-13 13:35:42

stevenniu500 发表于 2015-7-13 12:55
直流无刷电机吗?通过控制电压大小来控制速度与方向,对吗?

24VDC 1.5A,并且还是2根线,是直流有刷电机吧

stevenniu500 发表于 2015-7-13 13:44:25

还是很凌乱啊,怎样才能比较快的了解伺服电机呢。网上资料都找不到合适的。。。

yu_studio 发表于 2015-7-13 13:51:12

你需要买一只伺服电机+驱动器,只要看看说明书就知道怎么控制了。

lcw_swust 发表于 2015-7-13 13:52:48

我觉得如2楼一样,这是直流电机+编码器,编码器用于确定旋转的角度位置,需外加电路跟据位置来控制电机的电压。

stevenniu500 发表于 2015-7-13 13:59:04

lcw_swust 发表于 2015-7-13 13:52
我觉得如2楼一样,这是直流电机+编码器,编码器用于确定旋转的角度位置,需外加电路跟据位置来控制电机的电 ...

您好,我觉得二位说的有道理。可是程序怎么写呢?我大概知道电压可能是用DA转换实现。比如说从-10v   到10v ,0v是不转,负数是反转,正数是正传。当分别达到正负的最大值时,是速度最快的。我不明白,1这个闭环的过程,在程序上怎么实现呢?2,如果我用无刷的代替有刷的,还需要编码器吗?


   

wkman 发表于 2015-7-13 14:14:34

{:titter:}一般的:伺服电机+ 伺服驱动器 是成套滴,,,看样子lz想去做“伺服驱动器”,大工程啊{:victory:}

lcw_swust 发表于 2015-7-13 14:23:20

本帖最后由 lcw_swust 于 2015-7-13 14:26 编辑

stevenniu500 发表于 2015-7-13 13:59
您好,我觉得二位说的有道理。可是程序怎么写呢?我大概知道电压可能是用DA转换实现。比如说从-10v   到1 ...

闭环就用PID呀,假设有个设定角度X,从编码器得到的角度为Y,两个值相减得误差,误差作PID运算,得到的结果就是电机的电压。
电机的电压也可以用PWM方式来控制。
我感觉无刷电机与步进电机是差不多的,这本身相当于有了角速度的反馈,如果只需控制速度,可以省略编码器。
但若需要控制绝对角度,那还是需要编码器的。
补充一下,我上面的意思是无传感器的无刷电机,例如航模上的那种;
而有的无刷电机带有霍尔传感器,例如CPU风扇,可以得到角度。

stevenniu500 发表于 2015-7-13 14:38:50

wkman 发表于 2015-7-13 14:14
一般的:伺服电机+ 伺服驱动器 是成套滴,,,看样子lz想去做“伺服驱动器”,大工程啊{:victo ...

您好,如果我要买成套的伺服电机和伺服驱动器的话,那我用单片机控制,是不是就和控制步进电机一样了。需要对反馈的信号做处理吗?

19711972f 发表于 2015-7-13 14:41:54

看照片,是有刷直流电机,带减速器。要根据你自己的实际需求设计驱动电路。如果你的要求不高,也不是很难的。你应该把项目中对电机的要求描述出来。两根线,能调速和方向。

stevenniu500 发表于 2015-7-13 14:52:13

lcw_swust 发表于 2015-7-13 14:23
闭环就用PID呀,假设有个设定角度X,从编码器得到的角度为Y,两个值相减得误差,误差作PID运算,得到的结 ...

1、PID控制还不会{:sweat:} ;
2、不论是直流有刷还是无刷,只有加了编码器才是直流伺服电机,对吗?

stevenniu500 发表于 2015-7-13 14:59:25

19711972f 发表于 2015-7-13 14:41
看照片,是有刷直流电机,带减速器。要根据你自己的实际需求设计驱动电路。如果你的要求不高,也不是很难的 ...

需求的话,就是能够控制正转,反转,调节速度。记录位置。其实现在还没有具体的项目。因为我们之前一直都是用步进电机。一直没有接触过伺服电机。然后领导是感觉伺服高大上些,想要用。所以,从我这里出发,就是想把伺服相对于步进的各种优势方案掌握了,以便于以后用于具体项目时,能够根据实际来用。就是这样。

lcw_swust 发表于 2015-7-13 15:14:01

stevenniu500 发表于 2015-7-13 14:52
1、PID控制还不会 ;
2、不论是直流有刷还是无刷,只有加了编码器才是直流伺服电机,对吗? ...

别管它是叫什么电机,要看它能否达到你的需求。

keshipt 发表于 2015-7-13 15:15:31

本帖最后由 keshipt 于 2015-7-13 15:28 编辑

stevenniu500 发表于 2015-7-13 14:59
需求的话,就是能够控制正转,反转,调节速度。记录位置。其实现在还没有具体的项目。因为我们之前一直都 ...

楼主的是直流有刷电机+编码器 ,严格来说不是伺服电机,只能说用于伺服理念控制的直流电机(PID控制),控制部分采用单片机+H桥驱动,常用闭环部分有:位置环和电流环 ,硬件采用 编码器+电流检测即可(负载比较重或者变化明显的建议增加电流环),如果负载较小楼主想要实现控制正转,反转,调节速度,很容易实现,硬件选型上STM32之类的就可以满足,有多路PWM接口,自带编码器接口,建议采用双极性PWM的方式驱动电机,驱动芯片可以用BTN7930之类的半桥或者全桥,至于刹车方式如果负载不大采用耗能刹车就可以达到不错的效果。

keshipt 发表于 2015-7-13 15:17:05

如果想要上高大上的伺服,建议楼主学习学习PMSM控制   {:victory:}

wkman 发表于 2015-7-13 15:21:46

stevenniu500 发表于 2015-7-13 14:38
您好,如果我要买成套的伺服电机和伺服驱动器的话,那我用单片机控制,是不是就和控制步进电机一样了。需 ...

是的,mcu发PWM脉冲,控制“伺服驱动器”,就简单多了。{:victory:}
不过,一套伺服不便宜啊。雷赛(国产)L5伺服AC型400W功率,市价1500¥左右。。松下简易型也要2000¥出头。。呵呵{:titter:}

keshipt 发表于 2015-7-13 15:27:02

本帖最后由 keshipt 于 2015-7-13 15:29 编辑

stevenniu500 发表于 2015-7-13 13:59
您好,我觉得二位说的有道理。可是程序怎么写呢?我大概知道电压可能是用DA转换实现。比如说从-10v   到1 ...

1.编码器不需要DA处理,编码器信号就是普通的方波信号,直接采集计数就可以了,其中A B项可以判断出方向和计算速度,Z项是编码器的零点信号,由于楼主使用的增量式编码器,因此需要通过Z信号来确定具体位置,如果采用绝对值编码器就不需要。
   程序上根据你的需要可以选择增量式PID或者位置式PID,这个算法已经很成熟了,网上也有很多资料,难点在于PID参数的给定调试。
2.如果需要精确的位置定位,有刷和无刷都需要编码器来做位置闭环。

stevenniu500 发表于 2015-7-13 15:31:47

keshipt 发表于 2015-7-13 15:17
如果想要上高大上的伺服,建议楼主学习学习PMSM控制

奥,谢谢,你讲了很详细了。我想问,什么样的电机才是严格意义上的伺服电机呢?

stevenniu500 发表于 2015-7-13 15:37:12

wkman 发表于 2015-7-13 15:21
是的,mcu发PWM脉冲,控制“伺服驱动器”,就简单多了。
不过,一套伺服不便宜啊。雷赛(国 ...

哈哈,这个好贵奥。不过这也是一种可以考虑的方案。我还弄不懂这个交流伺服是怎么回事,是需要用220v交流电来供电吗?这种整套的伺服有直流的吗?

stevenniu500 发表于 2015-7-13 15:49:14

keshipt 发表于 2015-7-13 15:27
1.编码器不需要DA处理,编码器信号就是普通的方波信号,直接采集计数就可以了,其中A B项可以判断出方向 ...

1、我上面说的DA转换是我以为我如果要控制直流有刷电机的话,就是要控制输出的电压,要把单片机输出的数字信号转换成模拟电压给电机。这样好像是比较麻烦吧。直接用PMM的方式来控制电机的转速和转向。至于编码器这块的话,我觉得我不懂的地方是怎么去实现设定角度与编码器的实际角度的误差计算,得出电压,然后再去控制电机这块。我想我应该按照您说的方式,去网上找些类似的PID控制程序,或许就可以解决了。
2、我了解到有刷和无刷的区别中,没有精度的差别,也就是说他们的精度应该是一样的了。

keshipt 发表于 2015-7-13 15:52:00

stevenniu500 发表于 2015-7-13 15:31
奥,谢谢,你讲了很详细了。我想问,什么样的电机才是严格意义上的伺服电机呢? ...

如矢量控制的PMSM电机这类的,可以实现精准速度控制,定位等,较有刷电机优势明显

粗人 发表于 2015-7-13 15:52:47

这个充其量是带编码的直流减速电机
还是要看楼主要干什么,位置?速度?扭矩?功率?
驱动这个用L298之类的H桥就行,编码输出频率不会太高,STM32控制足够
根据AB相先后顺序判断电机方向,I可以用来测速,PWM控制速度,剩下的就是软件了

stevenniu500 发表于 2015-7-13 15:56:18

粗人 发表于 2015-7-13 15:52
这个充其量是带编码的直流减速电机
还是要看楼主要干什么,位置?速度?扭矩?功率?
驱动这个用L298之类的 ...

奥,我以前一直理解成,带反馈的电机就是伺服电机。现在听各位说的,我有些糊涂了。什么样的电机是伺服电机呢?

粗人 发表于 2015-7-13 16:00:26

stevenniu500 发表于 2015-7-13 15:56
奥,我以前一直理解成,带反馈的电机就是伺服电机。现在听各位说的,我有些糊涂了。什么样的电机是伺服电 ...

找度娘,说的很清楚、详细。

keshipt 发表于 2015-7-13 16:01:19

本帖最后由 keshipt 于 2015-7-13 16:06 编辑

stevenniu500 发表于 2015-7-13 15:49
1、我上面说的DA转换是我以为我如果要控制直流有刷电机的话,就是要控制输出的电压,要把单片机输出的数 ...

1.直流有刷电机的特性是电压越高转速越快,也就是说通过控制PWM的占空比的大小就可以控制电机的转速,正反转就是给正电压和反向电压的问题,通过控制H桥就可以实现,楼主在网上找一个H桥驱动电机的电路看一眼就明白了,很简单。
实现设定角度与编码器的实际角度的误差计算,得出电压,然后再去控制电机这块,这是PID控制的精髓和难点,需要自己去摸索,因为PID算法是标准的,但客户实际的参数是不定的
2.精度是相对而言的,和你的实际需求有关,如果负载惯性比较大,又需要快速停车定位,这个时候有刷电机就比较难控制,往往耗能刹车解决不了问题,需要辅助外部刹车器件才能实现定位。

stevenniu500 发表于 2015-7-13 16:01:51

粗人 发表于 2015-7-13 16:00
找度娘,说的很清楚、详细。

恩恩,好的。谢谢!这个问题不该问。嘿嘿。

stevenniu500 发表于 2015-7-13 16:07:48

keshipt 发表于 2015-7-13 16:01
1.直流有刷电机的特性是电压越高转速越快,也就是说通过控制PWM的占空比的大小就可以控制电机的转速,正 ...

叫您一声老师吧。太谢谢您了。这么详细的回答我的问题。{:smile:}

stevenniu500 发表于 2015-7-13 16:54:17

keshipt 发表于 2015-7-13 15:15
楼主的是直流有刷电机+编码器 ,严格来说不是伺服电机,只能说用于伺服理念控制的直流电机(PID控制), ...

您能和我说说,什么样的电机才是严格意义上的伺服电机呢?我查了很多资料,还是觉得直流电机+编码器和直流伺服电机没啥区别。谢谢。

keshipt 发表于 2015-7-13 17:21:57

stevenniu500 发表于 2015-7-13 16:54
您能和我说说,什么样的电机才是严格意义上的伺服电机呢?我查了很多资料,还是觉得直流电机+编码器和直 ...

我读书少,我怕误导楼主了,呵呵,伺服定义很广,强调的是伺服控制方式。
你的理解也是对的,要求不高的场合采用一般的直流有刷电机做伺服电机,属于伺服行业的简单应用。
我指的伺服电机是指为了迎合高精度高要求场合的电机类型,也就是可以充分发挥伺服控制系统的优点并得到广泛应用。

stevenniu500 发表于 2015-7-13 17:31:02

keshipt 发表于 2015-7-13 17:21
我读书少,我怕误导楼主了,呵呵,伺服定义很广,强调的是伺服控制方式。
你的理解也是对的,要求不高的 ...

您的意思我大概明白了,你说的那种伺服电机是相对一般的直流无刷电机控制精度更高,对吗?

keshipt 发表于 2015-7-13 17:34:03

stevenniu500 发表于 2015-7-13 17:31
您的意思我大概明白了,你说的那种伺服电机是相对一般的直流无刷电机控制精度更高,对吗?
...

是的                                 {:smile:}   

stevenniu500 发表于 2015-7-14 11:07:06

keshipt 发表于 2015-7-13 17:34
是的

编码器都有分辨率。那您看我这个编码器是多少位的呢?

keshipt 发表于 2015-7-14 19:34:46

stevenniu500 发表于 2015-7-14 11:07
编码器都有分辨率。那您看我这个编码器是多少位的呢?

500线的编码器                     

keshipt 发表于 2015-7-14 19:36:51

stevenniu500 发表于 2015-7-14 11:07
编码器都有分辨率。那您看我这个编码器是多少位的呢?

最高可以4倍频 500 X 4 =2000线 转一圈2000个脉冲

stevenniu500 发表于 2015-7-15 10:34:40

keshipt 发表于 2015-7-14 19:36
最高可以4倍频 500 X 4 =2000线 转一圈2000个脉冲

这些是怎么得出来的呢?

keshipt 发表于 2015-7-15 12:06:14

本帖最后由 keshipt 于 2015-7-15 12:07 编辑

stevenniu500 发表于 2015-7-15 10:34
这些是怎么得出来的呢?

官方的数据手册可以查到是500线的编码器,A B 项都采用上升沿和下降沿触发的方式读取脉冲,可以得到4倍频的脉冲数,楼主需要多看看相关资料才好理解

stevenniu500 发表于 2015-7-15 13:06:43

keshipt 发表于 2015-7-15 12:06
官方的数据手册可以查到是500线的编码器,A B 项都采用上升沿和下降沿触发的方式读取脉冲,可以得到4倍频 ...

奥,这样的。明白了,谢谢!

stevenniu500 发表于 2015-7-16 11:58:40

粗人 发表于 2015-7-13 15:52
这个充其量是带编码的直流减速电机
还是要看楼主要干什么,位置?速度?扭矩?功率?
驱动这个用L298之类的 ...

您好!请教个问题,我知道绝对式编码器,在一上电后,根据返回的二进制数就可以确定电机的位置。那么增量式编码器在开机上电的时候,可以确定电机转到多少度吗?

cl1cl1cl1cl1 发表于 2015-7-16 12:29:05

stevenniu500 发表于 2015-7-16 11:58
您好!请教个问题,我知道绝对式编码器,在一上电后,根据返回的二进制数就可以确定电机的位置。那么增量 ...

所以大多数需要位置控制的机床等需要归原点。

stevenniu500 发表于 2015-7-16 12:41:49

cl1cl1cl1cl1 发表于 2015-7-16 12:29
所以大多数需要位置控制的机床等需要归原点。

这个原点怎么找呢?我不是很了解。编码器上就是一个A ,B,Z。

cl1cl1cl1cl1 发表于 2015-7-16 12:55:01

外部给原点信号,看看伺驱动器说明书之类

stevenniu500 发表于 2015-7-16 13:05:59

cl1cl1cl1cl1 发表于 2015-7-16 12:55
外部给原点信号,看看伺驱动器说明书之类

如果自己做,不用伺服驱动器呢。用PWM控制。

粗人 发表于 2015-7-16 21:38:46

stevenniu500 发表于 2015-7-16 11:58
您好!请教个问题,我知道绝对式编码器,在一上电后,根据返回的二进制数就可以确定电机的位置。那么增量 ...

不可以。

粗人 发表于 2015-7-16 21:42:58

拿我最近弄的一个项目来说吧,开机初始化我先让电机转到一个限位点,得到限位开关信号作为起点,再反方向走到对面的限位点,作为终点,过程中记录下编码器脉冲个数,这就是一个完整运行周期的脉冲数,然后就知道要走到某个位置,需要过多少个脉冲了,很简单

stevenniu500 发表于 2015-7-17 13:54:02

粗人 发表于 2015-7-16 21:42
拿我最近弄的一个项目来说吧,开机初始化我先让电机转到一个限位点,得到限位开关信号作为起点,再反方向走 ...

嗯嗯,这个问题昨天也明白了。可是实现闭环控制的话,还是想不明白。我觉得我应该用速度环和位置环吧,这两种反馈方式都不知道该怎么实现。电机运行控制是靠PWM波的平均电压实现的,而速度环反馈回来的数据怎么去和这个平均电压匹配呢。PID的原理的话,我应该是明白了。主要就是预设值和采集回来的数据的差值或者比例,或者积分,或者微分,把那个离散的PID公式转换成代码就可以了,重点是Kp,Ki,Kd,三个参数的整定。   

          我用的单片机是PIC的单片机,可以输出16位分辨率的PWM波形。然后还有正交编码。可以采集光电编码器里的数据。后面我做一个功率放大电路,一端来连接单片机的PWM端口,一端连接直流电机。编码器连接到正交编码端。硬件我理解大体就是这样了。。。。

      现在不知道怎么实现这个反馈,然后理解的也不知道对不对?

粗人 发表于 2015-7-17 16:59:30

http://www.amobbs.com/forum.php?mod=viewthread&tid=5463659&highlight=PID

stevenniu500 发表于 2015-7-17 18:00:16

粗人 发表于 2015-7-17 16:59
http://www.amobbs.com/forum.php?mod=viewthread&tid=5463659&highlight=PID

谢了您嘞。回去好好看看。

stevenniu500 发表于 2015-7-30 16:18:03

keshipt 发表于 2015-7-15 12:06
官方的数据手册可以查到是500线的编码器,A B 项都采用上升沿和下降沿触发的方式读取脉冲,可以得到4倍频 ...

您好,我用步进电机+编码器应该也是一样的吧,也是可以用PID来实现闭环控制?

keshipt 发表于 2015-7-30 16:28:06

stevenniu500 发表于 2015-7-30 16:18
您好,我用步进电机+编码器应该也是一样的吧,也是可以用PID来实现闭环控制? ...

当然可以,加编码器可以实现位置闭环

关于增量式编码器如何知道电机走了多少度的问题,其实很简单,你在一楼发的编码器资料可以看到有Z(或者I)零点脉冲,电机运行时先要找到这个零点脉冲,标记当前位置为零点(0度)然后从A B项读取脉冲数就知道电机具体走到什么位置了

stevenniu500 发表于 2015-7-30 17:12:16

keshipt 发表于 2015-7-30 16:28
当然可以,加编码器可以实现位置闭环

关于增量式编码器如何知道电机走了多少度的问题,其实很简单,你在 ...

奥,知道了。谢谢。

liupanliang 发表于 2015-11-6 19:51:43

懵懂{:sad:}{:sad:}{:sad:}{:sad:}

luckseason 发表于 2016-4-22 21:34:18

懵懂+10086

wq_601840968 发表于 2016-8-18 09:09:07

keshipt 发表于 2015-7-13 15:15
楼主的是直流有刷电机+编码器 ,严格来说不是伺服电机,只能说用于伺服理念控制的直流电机(PID控制), ...

耗能刹车?直流电机耗能刹车具体是怎么实现的呀

keshipt 发表于 2016-8-18 11:02:45

wq_601840968 发表于 2016-8-18 09:09
耗能刹车?直流电机耗能刹车具体是怎么实现的呀

短路电机绕组即可

cd4000 发表于 2016-8-18 11:05:53

学习一下!

mdjfish 发表于 2016-8-18 11:31:53

耗能刹车?直流电机耗能刹车具体是怎么实现的呀。。。。。短路电机绕组即可

还有别的方法吗?

xaviersw 发表于 2020-12-26 23:30:57

学习一下

fengyunyu 发表于 2020-12-26 23:41:21

楼上大神科普得很好

imliyucai 发表于 2021-8-12 10:12:20

按照教材上的说法,伺服电机的目标是让电机的运转及时跟上给定信号,强调的是反应速度。也就是说伺服电机的给定信号会是快速变化的。
而普通电机的给定信号通常是固定的,强调的是稳态精度。也就是在稳定时电机应该运转在给定值,不受干扰的影响。
页: [1]
查看完整版本: 伺服电机怎么控制呢?请教高人。