HCTL-1100梯形速度模式下速度控制问题

[复制链接]
5009|21
 楼主| simon88cn 发表于 2007-8-25 08:29 | 显示全部楼层 |阅读模式
近期调试机器人时发现控制芯片HCTL1100使用时存在一个问题,在这里向大家请教,请多多指点。&nbsp;<br />HCTL1100工作在梯形速度模式下:芯片复位,初始化数字滤波器,Timer,&nbsp;进入点控制模式,然后写入加速度,最高速度,目的坐标,向标志寄存器写入08H进入梯形速度模式(读R007H寄存器已确定是工作在梯形速度模式下),MC0-MC7输出DA信号控制DC伺服电机转动。但我发现一个问题,不管我如何改变加速度,最高速度的值,都无法改变DA信号电压输出大小(即无法改变电机转动的速度),只在改小目的坐标的值时(如:final&nbsp;position=80),DA信号电压才会变小。我以前也有用过MAX314AS做运动控制,只需改变加速度,最高速度,范围等值即可达到目的。&nbsp;&nbsp;请问各位大侠是否有遇到相似的情况,还是HCTL1100在梯形速度模式下,根本就无法改变速度,请各位大侠提出宝贵的建议哦!以下是部分的程式:<br />RST=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />delay_us(200);//复位<br />RST=1;<br />w110(0x05,1);//进入初始化模式<br />delay_us(200);<br /><br />w110(0x20,218);//A218&nbsp;&nbsp;设置数字滤波器&nbsp;timer&nbsp;<br />w110(0x21,254);//B254<br />w110(0x22,20);&nbsp;//K20<br />w110(0x0f,20);&nbsp;//Timer20<br /><br />w110(0x15,0x00);//设置电子尺实际位置<br />w110(0x16,0x00);<br />w110(0x17,0x00);<br /><br />z_cmdp=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置命令位置<br />z_cmdp_set();&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />w110(0x05,3);//进入控制模式<br /><br />w110(0x27,0x00);//acc&nbsp;msb&nbsp;加速度<br />w110(0x26,0x01);//acc&nbsp;lsb<br />w110(0x28,0x01);//max&nbsp;velocity&nbsp;最高速度<br /><br />w110(0x2b,0xfe);//final&nbsp;position&nbsp;msb&nbsp;&nbsp;目的坐标<br />w110(0x2a,0xf0);//2nd<br />w110(0x29,0x01);//lsb<br /><br />w110(0x00,0x08);//moving&nbsp;falg&nbsp;进入梯形速度模式开始运行
monsterchp 发表于 2007-8-30 17:03 | 显示全部楼层

HCTL1100

经典的一颗运动控制芯片~~忘记了
monsterchp 发表于 2007-9-6 09:32 | 显示全部楼层

LZ问题解决了没有?

之前做的时候没有用MC0-MC7输出DA信号控制,直接用了PULSE脚做PWM控制.我记得设置最大速度是可以改变的.<br />你的梯形位置控制做的还准吧?
 楼主| simon88cn 发表于 2007-9-6 17:01 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

是的,只能在点位置模式下运行,+-5um,和编码器的分辩率有关
 楼主| simon88cn 发表于 2007-9-6 17:09 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

只能固定输出MC=0xf0,DA转换后输出7.7V的电压
monsterchp 发表于 2007-9-6 22:17 | 显示全部楼层

不明白了~~

LZ前面说的意思感觉好象是如果&nbsp;target&nbsp;position&nbsp;比较大的话就不能控制,如果小的话就可以,是吗?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;只在改小目的坐标的值时(如:final&nbsp;position=80),DA信号电压才会变小&quot;<br /><br />梯行模式的话应该会有个加速和减速这两个过程的,如果小的target&nbsp;positon的时候能够完成剃行的话,我想用示波器观察DA的输出应该可以看的到的吧~~有吗?<br /><br />顺便问一下,你的其它几种控制是否都工作正常?&nbsp;position&nbsp;mode,integer&nbsp;velocity&nbsp;mode&nbsp;?
 楼主| simon88cn 发表于 2007-9-7 08:05 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

position&nbsp;mode可以,但integer&nbsp;velocity&nbsp;mode不行,也控制不到速度,PDF中好象说要工作在梯形模式下,F0置1,F5也必须置1,是不是啊?E文不是太好,看不太明白。
 楼主| simon88cn 发表于 2007-9-7 08:08 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

工作在比例速度模式下是正常的,可以改变速度。DA输出从+-20MV到+-9V可变。
 楼主| simon88cn 发表于 2007-9-7 08:17 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

“梯行模式的话应该会有个加速和减速这两个过程的,如果小的target&nbsp;positon的时候能够完成剃行的话,我想用示波器观察DA的输出应该可以看的到的吧~~有吗?”,也看不到有加减速的波形。是不是HCTL-1100现在只工作在点模式下,但是读R07H时,看到F0标志已经置位了啊。不明白???<br />
 楼主| simon88cn 发表于 2007-9-7 08:34 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

请问3楼的monsterchp大虾,您以前的程式是怎样写的,能贴一段出来参考一下吗?我现在只能在DA输出加电阻电容和开关IC来模拟梯形曲线和速度,真是悲哀啊!
monsterchp 发表于 2007-9-7 10:51 | 显示全部楼层

RE

PDF中好象说要工作在梯形模式下,F0置1,F5也必须置1,是不是啊?<br />------不需要,F5可能会被1100内部设置,内部使用.<br /><br />程式是怎样写的,能贴一段出来参考一下吗?<br />------这个因为涉及到某些问题,恐怕不行,但我检查过你的CODE,应该没什么大问题的.<br /><br />是不是HCTL-1100现在只工作在点模式下,但是读R07H时,看到F0标志已经置位了啊。<br />------我想先问一下,是不是你的integral&nbsp;velocity&nbsp;mode的时候,也是固定输出MC=0xf0?&nbsp;先搞好这个的控制,再研究trapezoidal&nbsp;profile&nbsp;control.&nbsp;&nbsp;&nbsp;我怀疑是你的DIGITAL&nbsp;FILTER设置的有问题.&nbsp;理论上说,&nbsp;position&nbsp;velocity&nbsp;control用的是velocity&nbsp;error去控制.&nbsp;其它三种控制是用的position&nbsp;error.因此DIGITAL&nbsp;FILTER应该会有不同,&nbsp;按你的描述,感觉是输出saturate饱和了.<br /><br />所以我觉得你可以先调一下DIGITAL&nbsp;FILTER.<br />还有几个参数我想知道:<br />1,EXTCLK是多少?也就是说HCTL1100跑多快的CLOCK?<br />  HOST&nbsp;PROCESSOR用的是那个的?<br />2,控制的电机是那种型号的?类型,参数有吗?<br />3,有没有用MATLAB做SIMULATION&nbsp;?<br /><br />很久没用了~大家一起研究讨论下~呵呵<br />
 楼主| simon88cn 发表于 2007-9-7 16:12 | 显示全部楼层

回复主题:HCTL-1100梯形速度模式下速度控制问题

&quot;所以我觉得你可以先调一下DIGITAL&nbsp;FILTER.<br />还有几个参数我想知道:<br />1,EXTCLK是多少?也就是说HCTL1100跑多快的CLOCK?<br />  HOST&nbsp;PROCESSOR用的是那个的?<br />2,控制的电机是那种型号的?类型,参数有吗?<br />3,有没有用MATLAB做SIMULATION&nbsp;?&quot;<br /><br />DIGITAL&nbsp;FILTER我现在用如下参数:<br />w110(0x20,20);//A&nbsp;&nbsp;设置数字滤波器&nbsp;timer&nbsp;<br />w110(0x21,40);//B<br />w110(0x22,20);//K<br />w110(0x0f,20);&nbsp;//Timer20<br />用过默认的参数也不行,extclk=2Mhz,MCU用普通的8052.<br />我也觉得是integral&nbsp;velocity&nbsp;mode的问题,未试过工作在integral&nbsp;velocity&nbsp;mode.<br />
monsterchp 发表于 2007-9-7 17:00 | 显示全部楼层

re

先把integral&nbsp;velocity调的可以动,再接trapezoidal&nbsp;<br /><br />你的电机是DC还是BLDC?&nbsp;反馈回路是怎么做的,精度是多少?<br /><br />我想可以先把A,B设为0,只保留K,调K的参数单比例控制先验证integral&nbsp;velocity有没有问题.<br />采样时间你设的比较短,有没有必要?&nbsp;你大概需要你的MOTOR运行在多大的速度上呢?<br />
 楼主| simon88cn 发表于 2007-9-8 08:48 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

是BLDC的,一套买回来的。<br />不知道integral&nbsp;velocity怎么用,而且也知道它是怎样工作方式的。<br />我想MOTOR的速度能工作在20RMP/s左右.<br />
 楼主| simon88cn 发表于 2007-9-8 09:01 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

谢谢monsterchp&nbsp;的指点。另外补充一下,电机的精度是由编码器决定的+-5um。还有一个问题:是不是工作在梯形模式下时,也要设置积分速度的command&nbsp;velocity和ACC的值呢?
 楼主| simon88cn 发表于 2007-9-8 10:45 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

另外ACC和最高速度的值是如何设置的呢?看不明白PDF,真头痛!!
monsterchp 发表于 2007-9-9 21:23 | 显示全部楼层

RE

MOTOR的速度能工作在20RMP/s左右<br />-------这个没有看明白RMP/S是什么意思?&nbsp;你直接告诉我多少转每分吧.<br /><br />电机的精度是由编码器决定的+-5um<br />-------我想知道的是电机转一圈,反馈到CHA,CHB有多少个脉冲?&nbsp;比如说如果你的编码器是光珊的,有1000个.&nbsp;那么经过正交处理后精度能够达到&nbsp;1000*4.&nbsp;也就是说精度能够达到1/4000&nbsp;圈.<br /><br />是不是工作在梯形模式下时,也要设置积分速度的command&nbsp;velocity和ACC的值呢?<br />-------不用,如果是梯形,你设好梯行的就可以了.&nbsp;仔细看的话,你可以发现其实两种模式下共用了ACC的.<br /><br />ACC和最高速度的值是如何设置的呢?<br />这个SPEC有讲是怎么算的,不过我想你首先要把精度那里搞清楚,因为这里的值和精度那里是有关系的.简单的说就是要把速度的单位转每分转化为多少个反馈脉冲每一个采样时间.<br /><br />
 楼主| simon88cn 发表于 2007-9-10 08:02 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

谢谢!我想MOTOR工作在1200转/分。我的编码器转动一圈有800个脉冲。另外我试过工作在积分速度下,其输出也是固定MC=0xf0,改变DIGITAL&nbsp;FILTER设置也没有什么变化(工作在梯形模式下也一样)。<br />“这个SPEC有讲是怎么算的,不过我想你首先要把精度那里搞清楚,因为这里的值和精度那里是有关系的.简单的说就是要把速度的单位转每分转化为多少个反馈脉冲每一个采样时间.”<br />----我知道PDF有讲,但看的不是很明白。<br />
monsterchp 发表于 2007-9-10 09:40 | 显示全部楼层

RE

假设你设定的最大速度是1200转每分,每一转的反馈是800&nbsp;*&nbsp;4&nbsp;=&nbsp;3200个脉冲.<br />你的EXTCLK是2MHZ,&nbsp;&nbsp;&nbsp;采样时间w110(0x0f,20);&nbsp;//Timer20,&nbsp;那么采样时间是&nbsp;t&nbsp;=&nbsp;16(20&nbsp;+&nbsp;1)(1/2MHZ)&nbsp;=&nbsp;168us&nbsp;=&nbsp;0.000168s<br />1200转每分&nbsp;=&nbsp;1200*3200&nbsp;个脉冲每分&nbsp;=&nbsp;1200*3200/60&nbsp;个脉冲每秒<br />则每一个采样时间应有的脉冲数为&nbsp;1200*3200/60*0.000168&nbsp;=&nbsp;10.752&nbsp;约为11<br />如果是integral&nbsp;velocity模式下,你应该在(R3CH)&nbsp;=&nbsp;0X0B<br />如果是trapezoidal&nbsp;profile模式下,你应该在(R28H)&nbsp;=&nbsp;0x0B<br /><br />试一下看看吧~
 楼主| simon88cn 发表于 2007-9-10 13:36 | 显示全部楼层

HCTL-1100梯形速度模式下速度控制问题

真是太感谢monsterchp&nbsp;了,我试过了!!。。。。。<br />还是不行。我的HCTL-1100是DIP封装的,有没有关系呢?我有两个,换上去也是一样的。我电路也是和PDF一样的接法,而且在位置模式下是可以定位的,说明DA输出是正常的。是不是要和ACC的值配合才能用啊?ACC的值又要如何计算呀?看来80年代的IC是有点难用哦!而且接成总线的方式有点麻烦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

15

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部