使用SPCE061A單片機的二級倒立擺控制系統(tǒng)
SPCE061A有8路可復(fù)用10位ADC通道,其中一路通道(MIC_In)用于語音輸入,模擬信號經(jīng)過自動增益控制器和放大器放大后進行A/D轉(zhuǎn)換。其余7路通道(Line_In)和IOA[0~6] 管腳復(fù)用,可以直接通過引線(IOA[0~6])輸入,用于將輸入的模擬信號(如電壓信號) 轉(zhuǎn)換為數(shù)字信號。二級倒立擺系統(tǒng)中的六個狀態(tài)變量電壓變化范圍為—12—+12伏,而單片機ADC模塊的要求輸入電壓變化范圍為0—+3.3伏,因此六個狀態(tài)變量經(jīng)電壓轉(zhuǎn)換電路后分別接至
SPCE061A單片機的IOA0~IOA5。SPCE061A UART模塊提供了一個全雙工標準接口,用于完成SPCE061A與外設(shè)之間的串行通訊。UART模塊的接收管腳Rx和發(fā)送管腳 TX 分別與IOB7和IOB10共用。本系統(tǒng)采用的是半雙工的通訊方式。IOB7和IOB10與MAX485芯片相連接,并再經(jīng)485232轉(zhuǎn)換器與上位機串行口相連。實現(xiàn)狀態(tài)變量在上位機的顯示以及由上位機設(shè)置反饋參數(shù)的功能。SPCE061A為音頻輸出提供兩個DAC通道, 0—3.3毫安模擬電流信號通過DAC1管腳輸出。經(jīng)狀態(tài)反饋運算后所得到的控制量以0—3.3毫安模擬電流信號輸出,此電流信號經(jīng)電流電壓轉(zhuǎn)換電路,在經(jīng)電壓倍放電路后變?yōu)?mdash;12—+12V。輸至功放去控制PWM脈寬調(diào)制進而控制執(zhí)行電機,使二級倒立擺達到動態(tài)平衡狀態(tài)。
2.3 控制系統(tǒng)軟件設(shè)計:
上位機應(yīng)用VC++編寫的串口程序。其上位機的應(yīng)用界面如下圖所示:
從圖中可以看出,第一行表示的是測量的六個狀態(tài)變量,分別是小車位置,小車速度,一擺的角度,一擺的角速度,二擺的角度,二擺的角速度。其數(shù)據(jù)可以實時的顯示出來,這樣就可以觀察數(shù)據(jù)是否有異常的情況。第二行就是根據(jù)實際情況給單片機發(fā)送數(shù)據(jù),從而達到設(shè)置參數(shù)的目的。在狀態(tài)反饋的控制策略中,分別設(shè)置的是六個狀態(tài)反饋系數(shù)。
單片機控制系統(tǒng)的軟件設(shè)計是采用的是C語言,C的結(jié)構(gòu)化設(shè)計特點是簡潔、明快,有豐富的庫函數(shù)和較好的調(diào)試手段,還具有移植性好,上手快等特點。在控制軟件中包含主程序、中斷程序和各種子程序,下面介紹應(yīng)用狀態(tài)反饋實現(xiàn)對倒立擺穩(wěn)定控制的程序流程圖。
狀態(tài)反饋需要測量六個量,上位機需要給單片機設(shè)置六個反饋參數(shù)。程序流程圖如下:
3. 結(jié)束語
試驗證明,本控制系統(tǒng)能方便快捷的找到使二級倒立擺系統(tǒng)達到動態(tài)平衡的狀態(tài)反饋系數(shù),簡化控制系統(tǒng)的調(diào)試任務(wù),得到了較為理想的試驗效果。
本文作者創(chuàng)新點:找到使二級倒立擺系統(tǒng)達到動態(tài)平衡的狀態(tài)反饋系數(shù),研究了狀態(tài)空間法在本系統(tǒng)中的應(yīng)用。
評論