兩輪自平衡小車系統類似於倒立擺系統,具有多變量、非線性、強耦合等特點,是研究各種控制方法的理想平臺。兩輪自平衡小車系統的控制過程是微控制器對姿態檢測傳感器和編碼器等採集的數據進行分析處理,計算出使系統恢復平衡的實時控制量,從而驅動電機實現系統的動態平衡。
針對小車系統的複雜性,本文提出了將卡爾曼濾波算法和雙閉環PID控制算法相結合的方法,既利用卡爾曼濾波算法對MPU-6050傳感器採集的傾斜角度和角速度數據進行融合,得到小車平衡姿態的最優估計值,又利用以姿態信息、速度為反饋控制量構成雙閉環PID控制算法,再結合採用高性能STM32F103C8T6作為主控制器,從而提高兩輪小車系統穩定性和抗幹擾能力。
1、系統的硬體設計系統的硬體電路結構框圖如圖1所示,其硬體電路主要由主控制器模塊、姿態檢測模塊、直流電機驅動模塊、編碼器及電源模塊等幾部分構成。電源模塊負責系統各個模塊控制電路的電源。主控制器模塊是系統的控制核心,用來接收傳感器模塊採集的數據,對數據進行處理及運算,將控制信號輸出給直流電機驅動模塊。姿態檢測模塊實時地對小車角速度及角加速度進行採集。直流電機驅動模塊負責將主控制器輸出的PWM信號轉換為控制信號驅動2個直流電機的轉速和方向。編碼器負責測量直流電機的速度和方向,將測量數據反饋給主控制器,從而形成閉環控制。
圖1 系統的硬體電路結構框圖
1.1、電源模塊本系統選用的直流電機工作電壓為12V,因此採用三節3.7V可充電電池構成12V直流電源。但STM32主控制器和MPU-6050需要的是3.3V直流電源,因此選用LM2596SDC-DC降壓模塊得到3.3V電源。
1.2、主控制器模塊本系統選用意法半導體公司的STM32F103C8T6作為主控制器,該控制器是一種基於Cortex-M3內核的32bCPU,最高工作頻率為72MHz,片上集成32~512kB的Flash存儲器,6~64kB的SRAM存儲器。片上集成了SPI,I2C和USART等通信接口,方便對MPU-6050姿態檢測傳感器的數據進行採集。含有7個定時器,可輸出多路PWM信號使得電機驅動模塊獲得穩定的PWM波形。
1.3、姿態檢測模塊本系統中姿態檢測模塊選用的是美國InvenSense公司的MPU-6050,MPU-6050為全球首例整合性6軸運動處理器,整合了3軸陀螺儀和3軸加速度計,能夠準確的對小車的姿態進行實時檢測[4]。該處理器的角速度感測範圍為±250、±500、±1000與±2000°/s,加速度感測範圍為±2g、±4g、±8g與±16g,加速度感測範圍可通過編程來控制[5]。MPU-6050可在不同電壓下工作,VDD供電電壓為(2.5±0.125)V、(3.0±0.15)V或(3.3±0.165)V,本系統中為MPU-6050提供的是3.3V直流電源。MPU-6050模塊的電路如圖2所示,本系統中MPU-6050作為從機使用,使用SDA和SCL埠和主機STM32進行通信,MPU-6050檢測的數據經過內置的16位AD轉換器進行轉換,然後將16位數字量通過I2C總線接口發送給主機。
圖2 MPU-6050模塊的電路
文章來自:電子發燒友