风力摆控制系统(B题)
摘要
本系统为由 STM32单片机控制模块、姿态采集模块、风力摆模块、液晶显 示模块、人机交互系统以及风力摆机械结构组成的闭环控制系统。MPU6050采 集风力摆姿态角,单片机处理姿态角数据后通过 PID精确算法调节直流风机以 控制风力摆。本系统实现了风力摆在仅受直流风机为动力控制下快速起摆、画线、 恢复静止的功能,并能准确画圆,且受风力影响后能够快速恢复画圆状态,具有 很好的鲁棒性。另外,本系统具有良好的人机交互界面,各参数及测试模式可由 按键输入并通过液晶显示,智能性好,反应速度快。 关键词:PID算法 MPU6050 STM32单片机人机交互
1、系统方案
本风力摆控制系统主要包括单片机控制模块、电源模块、姿态采集模块、风 力摆模块、液晶显示模块、人机交互系统以及风力摆机械结构组成。风力摆由万 向节连接碳杆再连接风机组成。位于碳杆最下方的姿态采集模块不断采集风力摆 当前姿态角,并返回单片机。单片机控制液晶显示姿态角数据并处理数据后通过 控制PWM波占空比控制风机转速,实现对风力摆的控制。本系统结构框图如图1 所示。 姿态采集模块
风力摆模块
单片机系统
人机交互系统 液晶显示模块
1.1风力摆运动控制方案的选择与论证
方案一:采用2只直流风机作为动力系统。采用2只风机并排同向而立,分 别位于摆杆两侧,通过控制风机转速控制风力摆使激光笔画线画圆。此方案风力 摆负载轻,但风力摆摆动过程中状态微调和快速静止不易实现。
方案二:采用3只直流风机作为动力系统。三只风机为等边三角形三边,相 背而立,互成120°夹角。此方案相对于方案二在控制风力摆转动过程中状态微 调方面有提升,但自成三角形,相邻两风机夹角过大,依旧不利于精确控制风力 摆状态。
方案三:采用4只直流风机作为动力系统。四只风机取一边靠于摆杆,朝向 成顺时针排列,通过控制四只风机转速控制风力摆当前状态。此方案风力摆负载 最重,但对于控制风力摆状态最为精确,且动力最足。
综合上述比较,考虑系统的快速工作以及精确控制,本系统采用方案三。
1.2电源方案的论证与选择
方案一:使用单电源接自制线性直流稳压源模块。单电源同时给控制系统和 风机供电,方案简单易操作。但风机转动过程中不仅会给电源带来纹波,而且产 生反电压容易使单片机被烧毁。且单电源工作负载大,耗电快。
方案二:采用双电源供电。风机驱动电源和控制电源分开,控制电机部分通 过光耦隔离。电机使用 12V锂电池供电,单片机控制系统用另一块电池接线性
1
直流稳压源模块供电。此方案可确保系统的稳定性,且满足了系统对供电需求。
综合上述比较,考虑系统的安全性、稳定性以,本系统采用方案二。
1.3角度测量方案的选择与论证
方案一:只测量风力摆关于静止状态时的偏转角。采用二维平面内角位移传 感器测量风力摆转动时关于静止状态时的偏转角,通过控制该偏转角实现对流风 机的控制。该方案软件处理繁琐,且二维平面内的角位移传感器不利于测量风力 摆的空间位置,不利于实现对风力摆的精确控制。
方案二:选用双轴倾角传感器模块LE-60-OEMLE-60-OEM,测量重力加速度 变化,转为倾角变化,可测量双向。具有稳定性高、低功耗、结构简单等优点。 响应速度为5Hz。它可以测量平衡板与水平方向的夹角,x,y方向可以测,但z 轴不可测。且操作复杂,软件处理难度大。
方案三:采用三维角度传感器。用三维角度传感器时刻测量风力摆当前姿态, 通过处理采集的姿态角数据控制风机带动风力摆运动。此方案可精确测量风力摆 当前姿态,实现对风力摆的精确控制。
综合比较以上两个方案,本系统选择方案三。
1.4控制算法的选择
方案一:采用模糊控制算法,模糊控制有许多良好的特性,它不需要事先知 道对象的数学模型,具有系统响应快、超调小、过渡过程时间短等优点,但编程 复杂,数据处理量大。
方案二:采用PID算法,按比例、积分、微分的函数关系,进行运算,将其运 算结果用以输出控制。优点是控制精度高,且算法简单明了。对于本系统的控制 已足够精确,节约了单片机的资源和运算时间。
综合比较以上两个方案,本系统选择方案二。
2.系统理论分析与计算 2.1风力摆状态的测量与计算
采用高精度的陀螺加速度计 MPU6050不断采集风力摆姿态角数据。 MPU6050集成了3轴 MEMS陀螺仪,3轴 MEMS加速度计,以及一个可扩展 的数字运动处理器 DMP。MPU6050和所有设备寄存器之间的通信采用400kHz 的I2C接口,实现高速通信。且内置的可编程卡尔曼滤波器,采用最优化自回 归数据处理算法精确测量风力摆当前姿态角。MPU6050对陀螺仪和加速度计分 别用了三个16位的 ADC,将其测量的模拟量转化为可输出的数字量,通过 DMP 处理器读取测量数据然后通过串口输出。
2
因篇幅问题不能全部显示,请点此查看更多更全内容