十六屆單車(chē)分享1-直立算法
這篇主要分享下我們的直立算法。
原先的小舵機(jī)SD-12應(yīng)該是很早之前就壞了的,我們一直用到7月底才發(fā)現(xiàn)這個(gè)問(wèn)題,此前一直以為是我們控制算法的問(wèn)題。具體現(xiàn)象就是,舵機(jī)調(diào)整打角時(shí)會(huì)有小幅的抖動(dòng)。
因?yàn)檫@個(gè),原先的單級(jí)PID完全調(diào)不出來(lái)。最初只需要一個(gè)PD環(huán)就可以穩(wěn)定走直線和左右畫(huà)圓。不過(guò)也是因?yàn)檫@個(gè)問(wèn)題,我們發(fā)展了我們直立的算法,到七月初就可以調(diào)出不同速度下靜態(tài)指標(biāo)和動(dòng)態(tài)性能都比較好的參數(shù)。只不過(guò)到后面,那個(gè)舵機(jī)的抖動(dòng)比之前要厲害的多多了,影響了我們的循跡。具體表現(xiàn)就是,車(chē)的軌跡比之前差,伴隨著高頻的抖動(dòng)。后來(lái)就換了大舵機(jī)3010,效果非常好,好到哭了。
下面具體介紹下直立算法的思路吧。
直立環(huán)為串級(jí)控制,內(nèi)環(huán)為角速度環(huán),外環(huán)為角度環(huán),內(nèi)外環(huán)同周期控制。
直立環(huán)我們關(guān)注點(diǎn)主要有兩個(gè),靜態(tài)指標(biāo)、動(dòng)態(tài)性能。靜態(tài)指標(biāo)就是車(chē)穩(wěn)態(tài)時(shí)實(shí)際傾角與目標(biāo)傾角之間的偏差。動(dòng)態(tài)性能就是在給車(chē)的目標(biāo)傾角一個(gè)大的跳變時(shí)車(chē)的響應(yīng)性能。我們認(rèn)為這兩個(gè)東西是相互矛盾的,如果只是同周期串級(jí)控制。
實(shí)際循跡對(duì)于靜態(tài)指標(biāo)和動(dòng)態(tài)性能要求都比較高的。
我們也試出了一種比較好的解決方案。同周期串級(jí)控制,用實(shí)際傾角-穩(wěn)態(tài)舵機(jī)打角的擬合公式替換原先的積分項(xiàng)。如此一來(lái)既可以保證一定的靜態(tài)指標(biāo),也能夠有較好的動(dòng)態(tài)性能。
有時(shí)會(huì)想,也許是同周期限制了這個(gè)串級(jí)控制的另一種可能性,靜態(tài)和動(dòng)態(tài)的雙贏吧。只不過(guò)當(dāng)時(shí)舵機(jī)只能50Hz,20ms一個(gè)周期來(lái)響應(yīng)。
“用實(shí)際傾角-穩(wěn)態(tài)舵機(jī)打角的擬合公式替換原先的積分項(xiàng)”,我們直立環(huán)算出的PWM是一個(gè)相對(duì)于舵機(jī)中值的偏移量。這個(gè)擬合公式,是我們認(rèn)為在這一個(gè)速度下,這一個(gè)實(shí)際傾角下,對(duì)應(yīng)最優(yōu)的舵機(jī)打角。然后,只包含PD的串級(jí)控制,一方面用于調(diào)整到目標(biāo)傾角,另一方面用于保持車(chē)的穩(wěn)定,并且不會(huì)有積分項(xiàng)帶來(lái)的大慣性。
關(guān)于確定擬合公式和參數(shù)。我們先調(diào)一個(gè)靜態(tài)指標(biāo)比較好的串級(jí)PID參數(shù),然后在這基礎(chǔ)上采集得到各個(gè)傾角下對(duì)應(yīng)的橫滾角速度、航向角速度、外環(huán)輸出和內(nèi)環(huán)輸出,然后確定擬合公式。后面就是去掉I項(xiàng),在內(nèi)環(huán)應(yīng)用擬合公式,調(diào)內(nèi)外環(huán)的PD得到靜態(tài)和動(dòng)態(tài)都比較好的一組參數(shù)。
另外,慢速下我們沒(méi)有用擬合,而是用串級(jí)PID。慢速下傾角改變最多也就0.1度,這里用積分項(xiàng)可以做到更加精細(xì),效果不錯(cuò)。我們這個(gè)速度下的擬合就失效了,調(diào)不出來(lái)。
望和各位朋友交流學(xué)習(xí)。以上。