智能车制作

标题: 直立控制,可以只用一个陀螺仪实现,不会往一个方向加速 [打印本页]

作者: 淡定戈    时间: 2014-2-2 22:27
标题: 直立控制,可以只用一个陀螺仪实现,不会往一个方向加速
本帖最后由 淡定戈 于 2014-2-2 22:41 编辑

    本人比赛完后写的小论文,控制倒立摆只用一个陀螺仪,虽然有点违背直观感觉,但是若有线性系统理论的基础,其结论也是显而易见的。如果此文让你更加迷惑,实非我本意。
    没有代码,一方面是因为我自己没有源代码;另一方面也因为理解了原理后代码很简单,若不理解原理,即便有代码,调试过程出现问题几乎是必然的。

[attach]55249[/attach]
静止直立的视频:http://v.youku.com/v_show/id_XNjU3MjA1MjEy.html

Very Important: 虽然不是可直接使用的完整方案,也请务必顶帖!!!
    希望对你们有帮助,不得不说,做车靠的不是夜以继日的调试,得靠创新的设计,真正好车,是设计的时间占大部分,其次是严谨的制作,最后才是调试。    神车是:设计的时间 > 装车的时间 > 调试的时间一个直立方案只是冰山一角
    如果能理解其中的原理,用这个方法不会有太大的难度,实现的时候最好全部采用国际单位制,这样便于理论计算。实现的细节实在太多,一言难尽。
    值得注意的是,在自动控制启动后应当立刻将手移开,以免影响正常的直立控制,如果因为担心车倒下而用手搀扶,反而会不利于直立。与此同时,本方案没有使用速度反馈,虽然有速度观测,但是实际效果形同开环控制,若是有自动控制的基础,稍加修改,可以实现速度反馈,这个就自己看着办吧。
    实现的时候最好用double类型,统一用国际单位(角度用rad、角速度rad/s),这样既可以避免舍入误差,又避免单位换算的时候出错。一般不用担心运算量的问题
实际调试的时候,难免会出现意外,最好在小车程序里写上对危险的检测,一旦确定小车危险,立即关闭输出。比如,一般情况下直立控制的输出电压比较稳定且较小,直立控制电压不会超过7.0V太久,若超过7.0V的时间大于一定时间(如0.5秒),则小车存在倒地的危险,应该立即关闭输出。



补充内容 (2015-2-6 11:23):
方程(2.4) 有错, X上面应该没有那个".",但有"^",  [[[SB39V47OR`KSL}ZZDB3V.png 输出不该用状态的导数, 该用状态值
    [[[SB39V47OR`KSL}ZZDB3V.png
作者: aytc100    时间: 2014-2-3 00:31
陀螺仪的温飘、时飘和轮胎打滑都没有考虑进去吧。
作者: huang91    时间: 2014-2-3 01:55
本帖最后由 huang91 于 2014-2-3 02:11 编辑

有几个问题问楼主。
1.系统状态取得是[角度,角速度,车模速度]^T,状态都是可以直接测量的,但是楼主想不用那么多传感器,所以设计状态观测器去估计角度了?

2.状态观测器利用系统输入输出估计出系统状态,有没有实际测试过状态观测器观测的状态数据和实际测量的状态数据,看论文好像只有仿真?如果有真实的波形对比就更爽啦,理论设计和实际测试的一致一定很爽。

3.输出矩阵[0,1,0],也就把是系统设计成一个控制电压-角速度的SISO系统是吧?能不能考虑将输出矩阵C取为[0,1,1],这样能不能对直立和速度一并控制了?(现控没学好也没怎么用说错了别笑我。)


4.这种极点配置是不是有死板,有没有考虑动态极点配置?

作者: 淡定戈    时间: 2014-2-3 13:43
本帖最后由 淡定戈 于 2014-2-3 13:51 编辑
huang91 发表于 2014-2-3 01:55
有几个问题问楼主。
1.系统状态取得是[角度,角速度,车模速度]^T,状态都是可以直接测量的,但是楼主想不 ...

1.系统状态取的是[角度,角速度,车模速度],对于倒立摆小车,就算有多个传感器角度也只能间接测量,这个论文是以前设计的方案之一,一级倒立摆的相关论文一大堆,技术早就成熟了,写成论文仅供学习参考。
2.状态观测器利用系统输入输出估计出系统状态,仿真有实际测试过状态观测器观测的状态数据和实际测量的状态数据,后面有几个图是试验的结果,实际测试的时候角度也是间接测量的,速度没测,但是直立很坚挺。
3.确实是一个FIFO。但是不能将输出矩阵C取为[0,1,1],如果想直立和速度一起控制,应该是【0 1 0;0 0 1】,不过需要加个测速模块,这样肯定可以速度控制,但是要重新计算参数
4.考虑到单片机的运算能力,而且小车也不是时变系统,没必要动态极点配置。硬要这样会把问题高复杂,而且效果不会好到哪儿去
作者: 淡定戈    时间: 2014-2-3 13:45
本帖最后由 淡定戈 于 2014-2-3 13:49 编辑
aytc100 发表于 2014-2-3 00:31
陀螺仪的温飘、时飘和轮胎打滑都没有考虑进去吧。

温漂对稳态速度有一点影响,但绝对不会对直立构成威胁。打滑确实没办法,不过直立组能跑到滑动的速度吗?

作者: 晟昱阳光    时间: 2014-2-3 13:47
高端贴,前排!
作者: aytc100    时间: 2014-2-3 13:51
淡定戈 发表于 2014-2-3 13:45
温漂对稳态速度有一点影响,但绝对不会对直立构成威胁。打滑确实没办法,不过直立组能跑到滑动的速度吗? ...

上两米必打滑

作者: 淡定戈    时间: 2014-2-3 14:05
aytc100 发表于 2014-2-3 13:51
上两米必打滑

3m没问题

作者: huang91    时间: 2014-2-3 23:46
淡定戈 发表于 2014-2-3 13:43
1.系统状态取的是[角度,角速度,车模速度],对于倒立摆小车,就算有多个传感器角度也只能间接测量,这个 ...

这方面论文确实太多了。
昨天看完论文晚了,大脑短路直接写了个[0,1,1]。被我们现控老师看到非揍死我不可。

动态配置系统极点不是只要把状态反馈增益矩阵K改变一下就行了吗?这里K是一维向量。单片机根据观测到的状态改变K,不要单片机直接计算,分段把模糊控制揉进去,这样实现应该不是很困难吧?系统超调量,调节时间等特性应该会表现的更好。有空我去试试。楼主模型都折腾出来了继续折腾呗。


不过就比赛来说PID+分析+优化还是更加实惠的选择。

作者: huang91    时间: 2014-2-4 00:05
我这里有一个相关的PPT,比较完整,有兴趣的可以下载。

[attach]55250[/attach]


作者: yebuyu    时间: 2014-2-4 08:49
好贴
作者: wolflsh    时间: 2014-2-4 11:39
不明觉厉
作者: 李新帅    时间: 2014-2-14 08:43
学习一下
作者: dan92    时间: 2014-2-22 21:20
线控没学好,考研都完蛋~顶起!
作者: 0静默0    时间: 2014-2-25 14:22
学习
作者: 乁year    时间: 2015-2-1 22:32
好贴!超赞
作者: 我以为    时间: 2015-2-5 21:45
顶一个
作者: 淡定戈    时间: 2015-2-6 11:08
我以为 发表于 2015-2-5 21:45
顶一个

猛然发现 论文里有个错误


作者: 我以为    时间: 2015-2-6 11:11
淡定戈 发表于 2015-2-6 11:08
猛然发现 论文里有个错误



作者: 淡定戈    时间: 2015-2-6 11:22
我以为 发表于 2015-2-6 11:11

方程(2.4) 有错, X上面应该没有那个".",但有"^", [attach]74438[/attach]输出不该用状态的导数, 该用状态值
  [attach]74439[/attach]



作者: 我以为    时间: 2015-2-6 11:41
淡定戈 发表于 2015-2-6 11:22
方程(2.4) 有错, X上面应该没有那个".",但有"^", 输出不该用状态的导数, 该用状态值

好细心啊,谢谢分享啦

作者: 淡定戈    时间: 2015-2-6 15:21
我以为 发表于 2015-2-6 11:41
好细心啊,谢谢分享啦

, 不用客气, 不过好像作用不明显, 对比赛帮助不大, 不过可以学习

作者: 灯火VS火柴    时间: 2015-3-16 23:09
不明觉厉
作者: Achen哈哈    时间: 2015-3-29 15:03





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