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