打印

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

[复制链接]
3886|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
simon88cn|  楼主 | 2007-8-25 08:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
近期调试机器人时发现控制芯片HCTL1100使用时存在一个问题,在这里向大家请教,请多多指点。 
HCTL1100工作在梯形速度模式下:芯片复位,初始化数字滤波器,Timer, 进入点控制模式,然后写入加速度,最高速度,目的坐标,向标志寄存器写入08H进入梯形速度模式(读R007H寄存器已确定是工作在梯形速度模式下),MC0-MC7输出DA信号控制DC伺服电机转动。但我发现一个问题,不管我如何改变加速度,最高速度的值,都无法改变DA信号电压输出大小(即无法改变电机转动的速度),只在改小目的坐标的值时(如:final position=80),DA信号电压才会变小。我以前也有用过MAX314AS做运动控制,只需改变加速度,最高速度,范围等值即可达到目的。  请问各位大侠是否有遇到相似的情况,还是HCTL1100在梯形速度模式下,根本就无法改变速度,请各位大侠提出宝贵的建议哦!以下是部分的程式:
RST=0;        
delay_us(200);//复位
RST=1;
w110(0x05,1);//进入初始化模式
delay_us(200);

w110(0x20,218);//A218  设置数字滤波器 timer 
w110(0x21,254);//B254
w110(0x22,20); //K20
w110(0x0f,20); //Timer20

w110(0x15,0x00);//设置电子尺实际位置
w110(0x16,0x00);
w110(0x17,0x00);

z_cmdp=0;           //设置命令位置
z_cmdp_set();    

w110(0x05,3);//进入控制模式

w110(0x27,0x00);//acc msb 加速度
w110(0x26,0x01);//acc lsb
w110(0x28,0x01);//max velocity 最高速度

w110(0x2b,0xfe);//final position msb  目的坐标
w110(0x2a,0xf0);//2nd
w110(0x29,0x01);//lsb

w110(0x00,0x08);//moving falg 进入梯形速度模式开始运行

相关帖子

沙发
monsterchp| | 2007-8-30 17:03 | 只看该作者

HCTL1100

经典的一颗运动控制芯片~~忘记了

使用特权

评论回复
板凳
monsterchp| | 2007-9-6 09:32 | 只看该作者

LZ问题解决了没有?

之前做的时候没有用MC0-MC7输出DA信号控制,直接用了PULSE脚做PWM控制.我记得设置最大速度是可以改变的.
你的梯形位置控制做的还准吧?

使用特权

评论回复
地板
simon88cn|  楼主 | 2007-9-6 17:01 | 只看该作者

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

是的,只能在点位置模式下运行,+-5um,和编码器的分辩率有关

使用特权

评论回复
5
simon88cn|  楼主 | 2007-9-6 17:09 | 只看该作者

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

只能固定输出MC=0xf0,DA转换后输出7.7V的电压

使用特权

评论回复
6
monsterchp| | 2007-9-6 22:17 | 只看该作者

不明白了~~

LZ前面说的意思感觉好象是如果 target position 比较大的话就不能控制,如果小的话就可以,是吗?      "只在改小目的坐标的值时(如:final position=80),DA信号电压才会变小"

梯行模式的话应该会有个加速和减速这两个过程的,如果小的target positon的时候能够完成剃行的话,我想用示波器观察DA的输出应该可以看的到的吧~~有吗?

顺便问一下,你的其它几种控制是否都工作正常? position mode,integer velocity mode ?

使用特权

评论回复
7
simon88cn|  楼主 | 2007-9-7 08:05 | 只看该作者

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

position mode可以,但integer velocity mode不行,也控制不到速度,PDF中好象说要工作在梯形模式下,F0置1,F5也必须置1,是不是啊?E文不是太好,看不太明白。

使用特权

评论回复
8
simon88cn|  楼主 | 2007-9-7 08:08 | 只看该作者

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

工作在比例速度模式下是正常的,可以改变速度。DA输出从+-20MV到+-9V可变。

使用特权

评论回复
9
simon88cn|  楼主 | 2007-9-7 08:17 | 只看该作者

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

“梯行模式的话应该会有个加速和减速这两个过程的,如果小的target positon的时候能够完成剃行的话,我想用示波器观察DA的输出应该可以看的到的吧~~有吗?”,也看不到有加减速的波形。是不是HCTL-1100现在只工作在点模式下,但是读R07H时,看到F0标志已经置位了啊。不明白???

使用特权

评论回复
10
simon88cn|  楼主 | 2007-9-7 08:34 | 只看该作者

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

请问3楼的monsterchp大虾,您以前的程式是怎样写的,能贴一段出来参考一下吗?我现在只能在DA输出加电阻电容和开关IC来模拟梯形曲线和速度,真是悲哀啊!

使用特权

评论回复
11
monsterchp| | 2007-9-7 10:51 | 只看该作者

RE

PDF中好象说要工作在梯形模式下,F0置1,F5也必须置1,是不是啊?
------不需要,F5可能会被1100内部设置,内部使用.

程式是怎样写的,能贴一段出来参考一下吗?
------这个因为涉及到某些问题,恐怕不行,但我检查过你的CODE,应该没什么大问题的.

是不是HCTL-1100现在只工作在点模式下,但是读R07H时,看到F0标志已经置位了啊。
------我想先问一下,是不是你的integral velocity mode的时候,也是固定输出MC=0xf0? 先搞好这个的控制,再研究trapezoidal profile control.   我怀疑是你的DIGITAL FILTER设置的有问题. 理论上说, position velocity control用的是velocity error去控制. 其它三种控制是用的position error.因此DIGITAL FILTER应该会有不同, 按你的描述,感觉是输出saturate饱和了.

所以我觉得你可以先调一下DIGITAL FILTER.
还有几个参数我想知道:
1,EXTCLK是多少?也就是说HCTL1100跑多快的CLOCK?
  HOST PROCESSOR用的是那个的?
2,控制的电机是那种型号的?类型,参数有吗?
3,有没有用MATLAB做SIMULATION ?

很久没用了~大家一起研究讨论下~呵呵

使用特权

评论回复
12
simon88cn|  楼主 | 2007-9-7 16:12 | 只看该作者

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

"所以我觉得你可以先调一下DIGITAL FILTER.
还有几个参数我想知道:
1,EXTCLK是多少?也就是说HCTL1100跑多快的CLOCK?
  HOST PROCESSOR用的是那个的?
2,控制的电机是那种型号的?类型,参数有吗?
3,有没有用MATLAB做SIMULATION ?"

DIGITAL FILTER我现在用如下参数:
w110(0x20,20);//A  设置数字滤波器 timer 
w110(0x21,40);//B
w110(0x22,20);//K
w110(0x0f,20); //Timer20
用过默认的参数也不行,extclk=2Mhz,MCU用普通的8052.
我也觉得是integral velocity mode的问题,未试过工作在integral velocity mode.

使用特权

评论回复
13
monsterchp| | 2007-9-7 17:00 | 只看该作者

re

先把integral velocity调的可以动,再接trapezoidal 

你的电机是DC还是BLDC? 反馈回路是怎么做的,精度是多少?

我想可以先把A,B设为0,只保留K,调K的参数单比例控制先验证integral velocity有没有问题.
采样时间你设的比较短,有没有必要? 你大概需要你的MOTOR运行在多大的速度上呢?

使用特权

评论回复
14
simon88cn|  楼主 | 2007-9-8 08:48 | 只看该作者

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

是BLDC的,一套买回来的。
不知道integral velocity怎么用,而且也知道它是怎样工作方式的。
我想MOTOR的速度能工作在20RMP/s左右.

使用特权

评论回复
15
simon88cn|  楼主 | 2007-9-8 09:01 | 只看该作者

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

谢谢monsterchp 的指点。另外补充一下,电机的精度是由编码器决定的+-5um。还有一个问题:是不是工作在梯形模式下时,也要设置积分速度的command velocity和ACC的值呢?

使用特权

评论回复
16
simon88cn|  楼主 | 2007-9-8 10:45 | 只看该作者

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

另外ACC和最高速度的值是如何设置的呢?看不明白PDF,真头痛!!

使用特权

评论回复
17
monsterchp| | 2007-9-9 21:23 | 只看该作者

RE

MOTOR的速度能工作在20RMP/s左右
-------这个没有看明白RMP/S是什么意思? 你直接告诉我多少转每分吧.

电机的精度是由编码器决定的+-5um
-------我想知道的是电机转一圈,反馈到CHA,CHB有多少个脉冲? 比如说如果你的编码器是光珊的,有1000个. 那么经过正交处理后精度能够达到 1000*4. 也就是说精度能够达到1/4000 圈.

是不是工作在梯形模式下时,也要设置积分速度的command velocity和ACC的值呢?
-------不用,如果是梯形,你设好梯行的就可以了. 仔细看的话,你可以发现其实两种模式下共用了ACC的.

ACC和最高速度的值是如何设置的呢?
这个SPEC有讲是怎么算的,不过我想你首先要把精度那里搞清楚,因为这里的值和精度那里是有关系的.简单的说就是要把速度的单位转每分转化为多少个反馈脉冲每一个采样时间.

使用特权

评论回复
18
simon88cn|  楼主 | 2007-9-10 08:02 | 只看该作者

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

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

使用特权

评论回复
19
monsterchp| | 2007-9-10 09:40 | 只看该作者

RE

假设你设定的最大速度是1200转每分,每一转的反馈是800 * 4 = 3200个脉冲.
你的EXTCLK是2MHZ,   采样时间w110(0x0f,20); //Timer20, 那么采样时间是 t = 16(20 + 1)(1/2MHZ) = 168us = 0.000168s
1200转每分 = 1200*3200 个脉冲每分 = 1200*3200/60 个脉冲每秒
则每一个采样时间应有的脉冲数为 1200*3200/60*0.000168 = 10.752 约为11
如果是integral velocity模式下,你应该在(R3CH) = 0X0B
如果是trapezoidal profile模式下,你应该在(R28H) = 0x0B

试一下看看吧~

使用特权

评论回复
20
simon88cn|  楼主 | 2007-9-10 13:36 | 只看该作者

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

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

使用特权

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

本版积分规则

2

主题

15

帖子

1

粉丝