智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4307|回复: 14
打印 上一主题 下一主题

官方直立车方案1ms中断的疑惑

[复制链接]

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
跳转到指定楼层
1#
发表于 2017-1-21 19:08:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
给出的电磁直立车参考设计方案软件开发篇有一段关于1ms中断的设计。它把应用定时器中断的任务均匀地分为5个段,每段用一个1ms定时中断执行,各段按规定的顺序执行。这些段分别为:      
       段0:读取电机脉冲计数器,累积电机脉冲总数,清计数器;
       段1:AD采集,平均滤波;
       段2:直立环控制,PWM输出;
       段3:速度环控制;
       段4:方向环控制。
每个段执行频率为200Hz(就是说任意一个段从第n次被执行开始到下一次被执行,隔了5ms)。
      请问:为什么要”均匀分配“,这个”均匀“是必须的吗?此外,对于线性CCD而言,扫一次赛道
基本上都超过1ms了(我这里光曝光都用了10ms),如果直接把每段定时的值改大,那么每个段
执行的频率肯定要远小于200Hz了。这会不会对直立、速度和转向三个环节产生很大影响?如何
改进呢?

回复

使用道具 举报

11

主题

242

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6027
威望
3018
贡献
1889
兑换币
1340
注册时间
2011-8-6
在线时间
560 小时
推荐
发表于 2017-1-21 20:14:42 | 只看该作者
本帖最后由 冰封者 于 2017-1-21 20:15 编辑

0.电机脉冲数的读取,必须每隔确定的△t进行读取,此处△t取值是5ms,即M法测速,当然可以采用M法和T法结合使用的方法,一般情况下没有必要。1.AD采集忘记采集的是什么数据了,当然也必须是固定的时间间隔。
2-4.PID输出,数字PID当然需要在固定的时间间隔进行运算。
......
执行频率降低,会降低控制的实时性,理论上讲当然是执行周期越长控制效果越差,实际也是这样:lol
执行频率升高,提高控制的实时性,那么这个控制周期提高到电机控制的PWM频率周期以内是最佳的,当然运算的相位与PWM周期同相位,在下一周期的PWM输出前调节电机的占空比控制。
至于为什么要固定时间间隔,你只能去看自动控制原理了
回复 支持 2 反对 1

使用道具 举报

5

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2082
威望
1083
贡献
685
兑换币
707
注册时间
2013-11-23
在线时间
157 小时
毕业学校
老流弊了
推荐
发表于 2017-1-25 17:17:04 | 只看该作者
龙的传人znczz 发表于 2017-1-25 17:08
我记着我当时是这样分配的

第一毫秒:直立控制(包括AD/IIC采集姿态,滤波,控制,输出)
第二毫秒:CCD曝光判断,AD采集(2个CCD同时曝光采集AD时间也够用)
第三毫秒:计算方向偏差;
第四毫秒:方向陀螺仪数据IIC/AD采集,方向控制并输出;
第五毫秒:速度平均分配(100ms采集数据&控制周期,每个5ms平滑输出);
我用的数字陀螺仪,IIC采集比AD慢很多,时间绝对够用,不够用,可能是你主频太低,或者你方法有问题。
回复 支持 1 反对 0

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
43961

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26183
贡献
9392
兑换币
6553
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
3#
发表于 2017-1-21 21:06:33 | 只看该作者
均匀不是必须的
你可以把方向控制的周期和曝光周期都改成10ms
回复 支持 反对

使用道具 举报

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
4#
 楼主| 发表于 2017-1-21 21:10:26 | 只看该作者
冰封者 发表于 2017-1-21 20:14
0.电机脉冲数的读取,必须每隔确定的△t进行读取,此处△t取值是5ms,即M法测速,当然可以采用M法和T法结合 ...

赞!
回复 支持 反对

使用道具 举报

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
5#
 楼主| 发表于 2017-1-21 21:15:32 | 只看该作者
luckner 发表于 2017-1-21 21:06
均匀不是必须的
你可以把方向控制的周期和曝光周期都改成10ms

也许可以改成每段5ms,这样任意一段本次执行与下一次执行间隔25ms,不知道这种做法对不对。
回复 支持 反对

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
43961

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26183
贡献
9392
兑换币
6553
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
6#
发表于 2017-1-22 09:32:29 | 只看该作者
渔樵 发表于 2017-1-21 21:15
也许可以改成每段5ms,这样任意一段本次执行与下一次执行间隔25ms,不知道这种做法对不对。

这样对于姿态控制来说时间太长了
回复 支持 反对

使用道具 举报

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
7#
 楼主| 发表于 2017-1-22 17:49:49 | 只看该作者
luckner 发表于 2017-1-22 09:32
这样对于姿态控制来说时间太长了

……那就,把CCD单独摘出来用另一个定时器,并且设置执行CCD扫描赛道时不允许中断嵌套?
回复 支持 反对

使用道具 举报

12

主题

2039

帖子

2

精华

顶级版主

只好把岁月化成歌 留在山河

Rank: 11Rank: 11Rank: 11Rank: 11

积分
43961

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章优秀版主奖章

威望
26183
贡献
9392
兑换币
6553
注册时间
2011-9-30
在线时间
4193 小时
毕业学校
南京动专
8#
发表于 2017-1-23 09:29:02 | 只看该作者
渔樵 发表于 2017-1-22 17:49
……那就,把CCD单独摘出来用另一个定时器,并且设置执行CCD扫描赛道时不允许中断嵌套?

不需要啊在你的定时器中断函数里面加个计数器
到了时间再执行CCD啊
回复 支持 反对

使用道具 举报

10

主题

103

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1425
威望
872
贡献
377
兑换币
323
注册时间
2015-9-19
在线时间
88 小时
毕业学校
山东英才学院
9#
 楼主| 发表于 2017-1-23 18:05:05 | 只看该作者
luckner 发表于 2017-1-23 09:29
不需要啊在你的定时器中断函数里面加个计数器
到了时间再执行CCD啊

好办法!多谢!
回复 支持 反对

使用道具 举报

5

主题

207

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2082
威望
1083
贡献
685
兑换币
707
注册时间
2013-11-23
在线时间
157 小时
毕业学校
老流弊了
10#
发表于 2017-1-25 17:08:01 | 只看该作者
我记着我当时是这样分配的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-28 23:35 , Processed in 0.140471 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表