算法設計
當硬件 OK 以后算法就是整個系統(tǒng)的核心靈魂了,俗話說條條大路通羅馬,能夠達到題目要求的方法有很多,這次比賽童鞋們用的算法大概有幾種方式:邏輯判斷法、查表法,定點PID 法,力合成法,矢量方程法等等。有的隊直接采用查表法開環(huán)控制也能取得不錯的成績,只要能夠達到要求的算法都是 OK 的。
說一下我的算法設計吧,出題人在第一問就告訴了要做自由擺運動,從自由擺可以聯(lián)想到2011 年的 B 題——基于自由擺的平板控制系統(tǒng)。這是一個單擺,但是單擺是非線性運動,我們通常會把非線性的東西通過某種思路去近似成線性的(如二極管的伏安特性曲線等效模型),在單擺中,當采樣率足夠高時兩個采樣點之間的連線可以近似看成是線性的,有木有感到很熟悉?在高中物理學過了簡諧運動,物體所受的力跟位移成正比,并且總是指向平衡位置。這是一種由自身系統(tǒng)性質(zhì)決定的周期性運動。(如單擺運動和彈簧振子運動)實際上簡諧振動就是正弦振動!其數(shù)學方程為θ(t)=Asin(ωt+ψ),A 是振幅,ω是頻率,ψ是相位。好!說到這,來直接看一下題目第二問的要求(第一問直接跳過)。題目要求幅度可控,幅度可控是啥?不就是振幅 A 可控嘛,可控范圍是多少?30-60cm 換成角度。好了,分析完了,第二問就是一個 A 可設置的正弦運動,OK。至于線性度偏差,只要你機械搭對稱了,這都不是問題,況且別忘了有 X,Y 兩個方向的電機呢。
把第二問的程序貼圖出來: