风力摆控制系统(B 题)
摘要:本系统为由 STM32 单片机控制模块、姿态采集模块、风力摆模块、液晶显示模块、人机交互系统以
及风力摆机械结构组成的闭环控制系统。MPU6050 采集风力摆姿态角,单片机处理姿态角数据后通过 PID
精确算法调节直流风机以控制风力摆。 本系统实现了风力摆在仅受直流风机为动力控制下快速起摆、 画
线、恢复静止的功能,并能准确画圆,且受风力影响后能够快速恢复画圆状态,具有很好的鲁棒性。另外,
本系统具有良好的人机交互界面,各参数及测试模式可由按键输入并通过液晶显示,智能性好,反应速度
快。
关键词:PID 算法 MPU6050 STM32 单片机 人机交互
1 系统方案
本风力摆控制系统主要包括单片机控制模块、电源模块、姿态采集模块、风力摆模块、
液晶显示模块、人机交互系统以及风力摆机械结构组成。风力摆由万向节连接碳杆再连接风
机组成。位于碳杆最下方的姿态采集模块不断采集风力摆当前姿态角,并返回单片机。单片
机控制液晶显示姿态角数据并处理数据后通过控制 PWM 波占空比控制风机转速,实现对
风力摆的控制。本系统结构框图如图 1 所示。
图 1 系统总计结构框图
1.1 处理器选择方案
方案一:采用传统的 51 系列单片机。
传统的 51 单片机为 8 位机,价格便宜,控制简单,但是运算速度慢,片内资源少,存储容
量小,难以存储大体积的程序和实现快速精准的反应控制。并且受时钟限制,计时精度不高,
外围电路也增加了系统的不可靠性。
方案二:采用以增强型 80C51 内核的 STC 系列单片机 STC12C5A60S2,其片内集成了 60KB 程
序 Flash,2 通道 PWM、16 位定时器等资源,操作也较为简单,具有在系统调试功能(ISD),
开发环境非常容易搭建。但实际使用了三维角度传感器等对速度要求较高的外设,因此无法
很好地符合设计的需要。
方案三:采用以 ARM Cortex-M3 为内核的 STM32F1 系列控制芯片,STM32 系列芯片时钟频
率高达 72MHz,具有 64K 字节 SRAM,512K 字节的 FLASH 容量,具有极强的处理计算能力。
较为适合需要快速反应的控制系统。
通过比较,我们选择方案三,采用 STM32F3 系列单片机 STM32F103ZET6 作为控制器
1.2 风力摆运动控制方案的选择与论证