智能车制作

标题: 求大神解释啊,舵机转角很慢问题 [打印本页]

作者: delay_18    时间: 2014-5-5 21:32
标题: 求大神解释啊,舵机转角很慢问题
换了kl26芯片,之后移植代码后,发现我们设置的4ms进一次定时中断,20ms控制一次舵机的程序有很多问题,首先是发现当检测到ad值改变很大的时候,舵机是很缓慢的转到对应的角度,舵机设置50hz,后来把进中断时间改小,1ms一次,发现会稍块一点点,然后在该,一直改,到了100ns进一次中断,控制一次舵机,还是相对而言的慢,虽然比前面快,时间再缩短舵机就不响应了。请问各位大神,这怎么办,pll频率从220降到96,总线频率40降到24也效果不佳,所以应该不是超频的原因,望各位帮忙,万分感谢,找了好几天的问题,还是不知怎么办。

作者: 狂野的庄稼汉    时间: 2014-5-5 21:32
delay_18 发表于 2014-5-7 12:26
哦,谢谢,我们把舵机控制放到主函数里面就可以转的比较快。

哦,可能是你的控制周期太长了吧

作者: stxhb    时间: 2014-5-5 23:43
舵机频率,电压,控制周期,前瞻,PID算法,还有程序,慢慢分析吧,别急躁
作者: delay_18    时间: 2014-5-6 14:42
stxhb 发表于 2014-5-5 23:43
舵机频率,电压,控制周期,前瞻,PID算法,还有程序,慢慢分析吧,别急躁

频率50,电压稳定基本6.1v还没用pid,前瞻没事的,ad值正常。不知道是不是移植代码时的野火库的问题,舵机方波下面有点失真,但是稳定的方波。

作者: delay_18    时间: 2014-5-6 14:50
stxhb 发表于 2014-5-5 23:43
舵机频率,电压,控制周期,前瞻,PID算法,还有程序,慢慢分析吧,别急躁

频率50,电压6.1,方波有点点失真,但只是低电平失真,代码移植的时没有管前瞻,ad值正常

作者: 狂野的庄稼汉    时间: 2014-5-6 14:53
感觉是PID参数没有调好导致的舵机响应滞后
作者: delay_18    时间: 2014-5-6 14:56
狂野的庄稼汉 发表于 2014-5-6 14:53
感觉是PID参数没有调好导致的舵机响应滞后

是刚开始测试之用一个p,测试舵机转角,就是慢的。放到一个角度,经过3s才转到那个角度

作者: 狂野的庄稼汉    时间: 2014-5-6 15:32
delay_18 发表于 2014-5-6 14:56
是刚开始测试之用一个p,测试舵机转角,就是慢的。放到一个角度,经过3s才转到那个角度

这个.....3s也太慢了吧,那你再盘查下程序吧,看看有没有数据溢出之类的
作者: delay_18    时间: 2014-5-6 20:25
狂野的庄稼汉 发表于 2014-5-6 15:32
这个.....3s也太慢了吧,那你再盘查下程序吧,看看有没有数据溢出之类的

数据溢出指的是?

作者: 狂野的庄稼汉    时间: 2014-5-6 21:59
delay_18 发表于 2014-5-6 20:25
数据溢出指的是?

比如你定义误差为unsigned char,那么它的有效范围应该是0--255,如果得到255以上或者0以下,那么就数据溢出了,我之前就有过因为数据溢出导致舵机在临界值的时候颤抖

作者: delay_18    时间: 2014-5-7 12:26
狂野的庄稼汉 发表于 2014-5-6 21:59
比如你定义误差为unsigned char,那么它的有效范围应该是0--255,如果得到255以上或者0以下,那么就数据溢 ...

哦,谢谢,我们把舵机控制放到主函数里面就可以转的比较快。

作者: delay_18    时间: 2014-5-9 17:00
狂野的庄稼汉 发表于 2014-5-7 16:34
哦,可能是你的控制周期太长了吧

谢谢你的帮助  终于找到问题所在,是程序写错了一句

作者: 狂野的庄稼汉    时间: 2014-5-9 18:31
delay_18 发表于 2014-5-9 17:00
谢谢你的帮助  终于找到问题所在,是程序写错了一句

客气,其实我也没有给与你多少帮助
作者: 在那等我hui    时间: 2015-3-16 22:36
:):):)
作者: 奋斗奋斗    时间: 2015-6-27 12:00
delay_18 发表于 2014-5-9 17:00
谢谢你的帮助  终于找到问题所在,是程序写错了一句

问下你这个问题是怎么解决的?我也遇到了
作者: delay_18    时间: 2015-10-21 17:49
奋斗奋斗 发表于 2015-6-27 12:00
问下你这个问题是怎么解决的?我也遇到了

你是不是把舵机中值初始值写成上一次的舵机值了,那样产生类似于增量式的效果,本来应该每次都是中值加或者减变化量,你搞成了在上一次舵机的值基础上加或者减,我当时是这样。




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2