光电科技协会板球控制系统

来源:互联网 发布:mac彻底删除office 编辑:程序博客网 时间:2024/05/02 04:59


写在前面

在写这篇博客之前我们还不知道自己到底是几等奖(ps:省一推国赛,无奈在综合测评上出了岔子,无缘国一),其实做到最后奖项什么的都不重要了,重要的是我们在比赛准备期间和比赛期间所学到的东西吧,我感觉最重要的还是团队和坚持。今天已经是9月1号了,感觉有必要把电赛这几天的经历和板球控制系统的思路说出来和大家分享一下。仅代表自己观点,大神勿喷,如有错误请及时指正。

打铁还需自身硬

我们三个全是大二的毛头小子来做这个比赛其实还是挺吃力的,尽管是所有电赛题中最简单的控制题。所以,我为什么以这个为标题,就是告诫大家:对于电赛,基础最重要。(ps:有人说:对于电赛,运气是实力的全部。虽然说的有点夸张了,但不得不说,比赛中运气也是相当重要。)首先,对于最核心的电源题与信号题,电赛考核的就是你对基础知识的灵活运用,外加一点自己的创新。所以说,基础最重要。三个人对电学没有良好的基础,无奈在综合测评时出现了问题(ps:这个问题我们之后讨论),对于那些想参加2019年电赛的同学们,趁着有时间多实践多做一些项目多积累经验,只要把自己打的硬一点,什么困难都能克服。

好了,咱们步入正题吧,8月9号刚刚拿到题,我们也是一脸懵逼,如果做过的17年电赛的同学肯定很明白,比赛之前就在群里传的风风火火,预测今年的控制题就是板球系统,果然,刚出题的时候我们也是大眼瞪小眼感想今年是不是泄题了!?毕竟组委会说好的一个摆杆一群小球呢?不过还好我们在押题阶段研究过板球系统,所以对整体机械结构心里还是很清楚的(ps:做过的同学一定感悟这几天的木工生活不容易啊)

机械结构

材料:75*75木板,直径8mm木棒,木方,万向节,SD-5舵机,舵机驱动,STM32-F407(作为主控,由于做完比赛后还有别的用途,所以图片上没有显示出来),K60,OV7725摄像头,MPU6050
光科板球控制系统

这里写图片描述

这里写图片描述

其实我们看到我们的结构就是网上流传的经典结构,下面是我们的结构原理图:

这里写图片描述

题目分析

对于这个系统我们得首先明确我们的首要目的是干啥?就是让一个球从一个点精确的到达另一个点。那我们该如何实现呢?大部分人拿到这个题目,心里估计已经有个所以然了,很简单,就是用摄像头去获取小球的位置信息反馈给主控,主控对当前位置进行解析并发出指令来控制平板倾斜,进而小球滚动,摄像头再获取位置信息,从而形成一个闭环。很多人想到的通过PID来控制,确实,这是一个很简单粗暴的方法,对于电赛这种时间特别短的比赛是很适用的,而有些学有余力的同学可能在PID上加入一些控制算法(如模糊控制,遗传算法等)来提升系统的精确度。接下来我就对我们的系统进行一个简单的介绍。
这里写图片描述
上图是对小球在平板上的简单的力学分析(ps:很多论文上用拉格朗日方程来构建能量的平衡,没用!到头来还是PID调,简单力学分析已已经满足我们的题目要求)。我们以平板中心为原点做XY轴,为了简便我们只分析一个X轴,那么这就变成了杆球系统,相信大部分人对这个很了解,其实板球控制就是两个杆球控制的叠加。在这个X轴上,小球只受到自己的重力,即小球的受力状态就与这个轴的倾斜角度有关系,那我们便会想到了,力不就代表加速度嘛,即小球的加速度就与轴的倾斜角度有关系了,那我们又会想到,加速度的积分不就是速度嘛,接下来还会想到,速度的积分不就是位置嘛,而我们的目的就是从位置1到达位置2嘛,恍然大悟!三环PID控制系统!我靠,三个环调起来太费劲了,估计会调到死,而我们之前已经分析得到小球的加速度与平板的倾斜角度有关系,那我们事先把这种关系确定下来后期再查表不就完事了。至此,MPU6050上场了,把他粘在平板下方,一定要和平板平行。平板的倾斜角度(MPU6050测出)与舵机的打角一一对应,所以我们把数据记录下来通过MATLAB拟合数据,得到近似曲线和方程(图片),至此最里面的环就搞定了,剩下的就是两个了,这不就又变成了串级PID了,眼前小四轴忽悠忽悠就飞过来了,对于串级PID我不就不多说了,调参就是先调内环来调稳,后调外环来调响应。稍微不同于四轴的是,我们这套串级PID内环是调速度,外环调调位置(图片)。调内环时,先调一个轴,将期望速度设为零,给小球一个初速度,调节内环pid参数使小球速度尽快为零。调外环时就是设定一个期望位置了,和题目就很接近了。调参是个很悲惨的过程,基本整个电赛40%的时间搭机械结构,20%的时间想思路,剩下的40%就是调参了。<微笑脸>
这里写图片描述

这里写图片描述

控制系统

这里写图片描述

上面咱们也说了,如果想要做的好就必须形成闭环,既然控制结构和和执行机构完成了,那么什么作为反馈呢?比赛期间我看到大多数选手用的是摄像头,将其悬挂在平板上端,并且有的和平板独立有的固定在平板上,由于我们选用的OV7725(30万像素)摄像头,分辨率低但帧率高,所以我们直接将其直接固定在平板上,有的选用OV2640(200万像素)可以考虑独立于平板。也有的同学用的线性CCD,和激光(没仔细看,估计和对管一个性质),所以说做法非常多,大家也可以尝试一下。

这里写图片描述

既然摄像头作为反馈输出小球位置信息,那么又是如何实现的呢?其实就是简单的逐点扫描法,做过飞思卡尔摄像头组的同学一定不陌生。我们先从图像中心往两边搜索,首先向左搜索到连续三个黑点(小球是2*2像素点),那么最右边黑点的位置就是左边界,以此类推。我们可以看到摄像头的图像有一定的桶形畸变,我们对图像稍加做处理就好。在图片中我们看到最中心的位置的黑点就是小球,它在图像中的位置也被明确标出来了,如果同学想让系统有一定的抗干扰性就一定要对摄像头拍摄的图像有个自适应校正(瞎编的词),就是系统每次开机时就要自动对图像进行校正,防止在搬运过程中摄像头歪了或平板歪了,比赛时见到太多这种情况了。说完了系统中最重要的摄像头,接下来看看咱们的控制系统。

这里写图片描述

这里写图片描述

这里写图片描述

写在最后

以上就是我们的板球控制系统,写的很是简单粗暴,很多都没讲出来,但我建议想搞一下的同学们可以先自己试着去搭一下,这确实是一个考验PID的好项目。对于电赛,我建议大家在赛前一定要做一下历年的题目,摸索组委会考核的意图,确实能学到不少。就写到这吧,感谢大家。