算法设计
当硬件 OK 以后算法就是整个系统的核心灵魂了,俗话说条条大路通罗马,能够达到题目要求的方法有很多,这次比赛童鞋们用的算法大概有几种方式:逻辑判断法、查表法,定点PID 法,力合成法,矢量方程法等等。有的队直接采用查表法开环控制也能取得不错的成绩,只要能够达到要求的算法都是 OK 的。
说一下我的算法设计吧,出题人在第一问就告诉了要做自由摆运动,从自由摆可以联想到2011 年的 B 题——基于自由摆的平板控制系统。这是一个单摆,但是单摆是非线性运动,我们通常会把非线性的东西通过某种思路去近似成线性的(如二极管的伏安特性曲线等效模型),在单摆中,当采样率足够高时两个采样点之间的连线可以近似看成是线性的,有木有感到很熟悉?在高中物理学过了简谐运动,物体所受的力跟位移成正比,并且总是指向平衡位置。这是一种由自身系统性质决定的周期性运动。(如单摆运动和弹簧振子运动)实际上简谐振动就是正弦振动!其数学方程为θ(t)=Asin(ωt+ψ),A 是振幅,ω是频率,ψ是相位。好!说到这,来直接看一下题目第二问的要求(第一问直接跳过)。题目要求幅度可控,幅度可控是啥?不就是振幅 A 可控嘛,可控范围是多少?30-60cm 换成角度。好了,分析完了,第二问就是一个 A 可设置的正弦运动,OK。至于线性度偏差,只要你机械搭对称了,这都不是问题,况且别忘了有 X,Y 两个方向的电机呢。
把第二问的程序贴图出来: