|
前言
截止目前,初代小車已經(jīng)調(diào)試完畢,功能上只能直立,后期還會加上更多功能。
前面關(guān)于pid的內(nèi)容也已經(jīng)更新完畢,如果你是跟著我的教程走的話,那么現(xiàn)在的你最起碼對PID已經(jīng)有所了解了,那么后面我就主要講解一下平衡小車的控制原理。結(jié)合理論和實(shí)踐,徹底學(xué)會PID。
一、平衡小車為什么會倒?
說到這,那就不得不復(fù)習(xí)一下高中的物理知識-----受力分析。先看看下面一張圖–單擺,來個受力分析:
受力分析說明:如圖所示,單擺擺長為L,擺球質(zhì)量為m,從平衡位置О運(yùn)動到某點(diǎn)A(不是最高點(diǎn))時的速度為V,此時擺線拉力為T,擺角為θ。對擺球所受重力和拉力進(jìn)行受力分析,此時小球應(yīng)該只受兩個力,一個是重力mg,一個是線的拉力T。把重力進(jìn)行分解為徑向分力F’( = mgcosθ)和切向分力F( = mgsinθ):
徑向:T - mgcosθ = mv’/L(徑向合力充當(dāng)物體做圓周運(yùn)動的向心力)切向:F= mgsinθ (切向合力充當(dāng)物體做簡諧運(yùn)動的回復(fù)力)
徑向力我們不用管,我們來分析一下切向力。1.假設(shè)空氣沒有阻力由于小球一直受到一個切向力,那么小球會一直做自有震蕩運(yùn)動2.假設(shè)空氣阻力很小空氣阻力會慢慢消耗切向力,小球會停下來,但是時間會很長3.假設(shè)空氣阻力很大空氣阻力會慢慢消耗切向力,小球也會停下來,但是時間先對與2會縮短
因?yàn)樵诳諝庵羞\(yùn)動的單擺,由于受到空氣的阻尼力,單擺最終會停止在垂直平衡位置。空氣的阻尼力與單擺運(yùn)動速度成正比,方向相反。阻尼力越大,單擺越會盡快在垂直位置穩(wěn)定下來。
看到這里,我們在聯(lián)想一下平衡小車,看看有什么區(qū)別。下圖是平衡小車傾斜時上方某一點(diǎn)的受力分析:
平衡小車有個現(xiàn)象,當(dāng)你沒有上電時,小車如果機(jī)械結(jié)構(gòu)比較好的情況下,在垂直的時候是可以單獨(dú)直立不到的。但是只要稍微有點(diǎn)角度,他就會順著這個角度加速倒下。因?yàn)樵诖怪钡臅r候,小車受到的回復(fù)力=mgsinθ,而θ=0,因此回復(fù)力等于0,。此時只有一個mg和地面對小車的支撐力,兩者相抵消,受力平衡,從而直立不到。但是稍微有點(diǎn)角度就會打破這一受力平衡。因?yàn)樵谒x平衡位置的時候,所受到的回復(fù)力與位移方向相同,而單擺卻相反!因此,平衡小車便會加速偏離垂直位置,直到倒下。如何通過控制使得平衡小車能夠像單擺一樣,穩(wěn)定在垂直位置呢?要達(dá)到這一目的,只有兩個辦法:一個是改變重力的方向;另一個是增加額外的受力,使得回復(fù)力與位移方向相反才行。顯然能夠做到的只有第二種方法。
二、平衡小車直立原理
怎么增加一個額外力使得回復(fù)力與位移方向相反呢?看下圖:
讓電機(jī)旋轉(zhuǎn),使得小車運(yùn)動方向和傾倒方向一致。這樣就能產(chǎn)生一個力F1,使得小車保持平衡。
那么問題來了,新手都會遇到一個問題,為啥讓電機(jī)旋轉(zhuǎn),會使得小車保持平衡?知其然,更要知其所以然
解決這一問題只有一個辦法----還是受力分析、在這之前呢,先給大家說一個現(xiàn)象,幫助大家理解。
老司機(jī)當(dāng)然還是要開車呀,當(dāng)你坐在車?yán)铮_踩油門加速的時候,你會發(fā)現(xiàn),你的上半身會向后仰,仿佛有個人坐在你的大腿上想放倒你。不巧的是后面有個座椅支撐著你,座椅對你產(chǎn)生推背感。
這一現(xiàn)象從物理的角度怎么解釋呢?汽車發(fā)動的瞬間你的身體因?yàn)閼T性會保持靜止?fàn)顟B(tài),但因?yàn)槟愕南掳肷硌恳韵拢ㄗr)都直接接觸汽車,因?yàn)槟Σ亮Φ木壒蕰殡S車子向前移動。于是見證奇跡的時刻到了,你下半身隨著車子移動,上半身因?yàn)閼T性保持不動,結(jié)果就變成了下身拉動上身即出現(xiàn)了你所謂的身體后仰狀態(tài)。類比我們的平衡小車,當(dāng)電機(jī)旋轉(zhuǎn)時,會產(chǎn)生一個力使得小車下半身向傾倒方向加速,這個力會使得上半身產(chǎn)生一個回復(fù)力與位移方向相反,這樣就能保持平衡了。
下圖為受力分析圖,圖中省略一部分受力,比如摩檫力、輪子對上半身的支持力等等,主要是F和-F1COSθ。
受力分析之后就能列出回復(fù)力Y的關(guān)系式了:
又因?yàn)樵趯?shí)際運(yùn)用當(dāng)中,平衡小車擺動角度很小,因此進(jìn)行線性化簡化。并假設(shè)負(fù)反饋控制是車輪加速度 a 與偏角 θ 成正比,比例為 k。代入公式得出:
如果比例k>g ,( g是重力加速度)那么回復(fù)力的方向便于位移方向相反了,這樣就能使小車直立了。
為了使得倒立擺能夠盡快地在垂直位置穩(wěn)定下來,還需要增加阻尼力。雖然存在著空氣和摩擦力等阻尼力,相對阻尼力比較小。因此需要另外增加控制阻尼力。增加的阻尼力與偏角的速度成正比,方向相反。最終得出下圖公式:
綜上所述可得控制車輪加速度的控制算法:式中 θ 為小車傾角,θ’ 為角速度,k 、k1 均為比例系數(shù)。
這就是小車直立環(huán)的推導(dǎo)過程,乍一看這個公式其實(shí)就是PD控制器。
三、速度環(huán)的引入
平衡小車的最高境界是什么?一個字:穩(wěn)怎么穩(wěn)?立在那不動。怎么不動?保持直立并且速度為0(保持直立也有可能是勻速運(yùn)動)。怎么速度為0?加入速度環(huán)。加入速度環(huán)的原因還有以下兩點(diǎn):1.配合直立環(huán),讓小車更加穩(wěn)定2.為后面遠(yuǎn)程遙控做基礎(chǔ)
四、串級PID
由于速度環(huán)和直立環(huán)都是控制小車電機(jī)的轉(zhuǎn)速,因此兩者需串在一起。又因?yàn)槠胶庑≤囎钪饕氖侵绷ⅲ驗(yàn)樗俣拳h(huán)的輸出作為直立環(huán)的輸入,直立環(huán)的輸出最終作用到小車電機(jī)上。最終形成下圖框圖的形式:
總結(jié)
重點(diǎn)理解直立原理,受力分析圖。知識點(diǎn)都不難,回憶回憶高中物理就能分析出來了。至此,理論部分已經(jīng)差不多了,把理論部分理解透徹,代碼部分也就好理解了。代碼實(shí)現(xiàn)見下一節(jié)。
|
|