风力摆控制系统-论文最终版
- 格式:docx
- 大小:11.60 KB
- 文档页数:10
风力摆控制系统-论文最终版2015年全国大学生电子设计竞赛(瑞萨杯)风力摆控制系统(B题)2015年8月15日本文论述了风力摆系统的工作原理和设计思路。
系统采用STM32F103单片机为主要控制系统,用角位移传感器mpu-6050采集到风力摆的摆头的角度及位置,通过I2C总线传输发送到主控系统中,采用lcd12864显示采集到的信息,通过PID进行数据处理,产生相应的PWM信号,发送到相应的直流风机,控制直流风机实现自由摆动,从而画出直线、圆等轨迹。
关键词:STM32F103单片机;角位移传感器mpu-6050;PID算法摘要 .................................................................................................................................................. I 目录 (II)一、方案设计与论证 (1)1.1方案比较与选择 (1)1.1.1控制器模块比较与选择 (1)1.1.2角度传感器模块比较与选择 (1)1.1.3驱动模块的比较与选择 (1)1.2系统最终方案选择 (1)二、测控方法分析与论证 (2)2.1风力摆状态测量分析 (2)2.2运动控制 (2)2.2.1 电机的比较与选择 (2)2.2.2控制原理和计算公式 (2)三、系统设计与分析 (3)3.1主要电路设计 (3)3.1.1 STM32F103单片机最小系统电路 (3)3.1.2电源模块: (4)3.1.3驱动模块: (4)3.1.4陀螺仪模块 (4)3.1.5系统整体电路原理图 (4)3.2 软件程序设计 (4)3.2.1程序功能描述与设计思路 (4)3.2.2程序流程图 (4)3.2.3程序设计 (5)四、测试方案与测试结果 (5)4.1测试方案 (5)4.2测试仪器 (5)4.3 测试结果及分析 (5)4.3.1测试结果(数据) (5)4.3.2测试分析与结论 (6)五、总结 (6)参考文献 (7)附录一电路原理图 (8)附录二程序流程图 (9)附录三部分程序 (10)附录四元器件清单 (11)一、方案设计与论证1.1方案比较与选择1.1.1控制器模块比较与选择方案一:采用STC89C51单片机作为控制器。
STC89C51价格低廉,结构简单,且资料丰富;但是51单片机系统资源有限,8位控制器,运算能力有限,无法达到较高的精度,需要外接大量外围电路,增加了系统复杂度,达不到系统要求。
方案二:采用MSP430G2553单片机作为系统控制器。
MSP430G2553单片机内部集成精度高,是16位单片机,但其外部接口较少,运算速度相对较慢,达不到要求。
方案三:采用STM32F103单片机作为系统控制器。
STM32F103单片机是32位单片机,内部及程度高,拥有大量外部接口,运算速度高,能够满足题中对数据的快速采集和处理。
综合以上三种方案,我们选择方案三中的STM32F103单片机。
1.1.2角度传感器模块比较与选择方案一:采用编码器根据脉冲数计算出角度,但是编码器体积较大,安装不方便,有突变现象,容易导致计算错误,故不能满足题目要求。
方案二:采用ENC陀螺仪,ENC陀螺仪能输出一个和角速度成正比的模拟电压信号,响应速度快,驱动电压和功耗较低。
但是容易发生温漂,噪声较大,稳定性较差。
方案三:采用MPU-6050三维角度传感器,MPU-6050集成了3轴陀螺仪,3轴加速度计,以及一个可扩展的数字运动处理器DMP,可输出数字量,稳定性极高,测量精度高。
综合比较以上方案,我们选择方案三中的MPU-6050传感器作为系统的角度传感器。
1.1.3驱动模块的比较与选择方案一:采用L298驱动,L298是专用驱动集成电路,属于H桥集成电路,内部包含4通道逻辑驱动电路。
但其输出电流不能超过4A,比较容易发热,不能符合题目的较大电流。
方案二:采用互补硅功率达林顿管驱动,采用该方法电路连接比较简单,稳定性好,成本低廉,但不足之处是由于使用分立元件,反应速度较慢不能题目对轴流风机快速反应的要求。
方案三:采用电子调速器驱动,它根据控制信号调节电动机的转速,操作方便,具有过温、过压、欠压、过流及短路保护的功能。
具有极好的驱动能力,反应灵敏,能够很好的满足题目的要求。
综合以上三种方案,我们选择方案三中的电子调速器驱动。
1.2系统最终方案选择其中error为摆杆的角度差,set_angle对应摆杆平衡时的角度值,anggle_one对应摆杆当前的角度值。
up=kp?error (2)kp为比例调节系数,通过公式可以看出增大kp可知角度差的作用加强,可加强系统的强硬速度,使摆杆的迅速达到直立的状态。
ud=kd?(angleone-anggle_one_old)(3)anggle_one_old对应摆杆上一次采集到的角度值。
kd为微分调节系数,angleone-anggle_one_old对应角度的变化值,因此可知,调节kd可以改善系统的动态性能。
pwm=up-ud (4)把 PWM的值给电机即可改变电机的转速,使摆杆的角度改变。
最终实现摆杆的站直并稳定。
三、系统设计与分析3.1主要电路设计3.1.1 STM32F103单片机最小系统电路图3.1 STM32F103单片机最小系统3.1.2电源模块:图3.2电源模块电路图3.1.3驱动模块:图3.3驱动模块电路图3.1.4陀螺仪模块见附录一图1-1。
3.1.5系统整体电路原理图见附录一图1-2。
3.2 软件程序设计3.2.1程序功能描述与设计思路1)程序功能描述主要是通过STM32F103单片机控制系统实现题目要求。
2)程序设计思路本测量装置主要指标是通过MPU-6050采集数据,单片机STM32F103进行数据处理,通过按键来进行参数整定,从而调控各个风机的转速,实现画直线和画圆等要求。
3.2.2程序流程图见附录二。
3.2.3程序设计见附录三。
四、测试方案与测试结果4.1测试方案本作品的测试中,采用的是万向节为轴转中心,以角度传感器为反馈模块,以10°为一个分度值,进行角度的测量,所画直线、圆圈的观察。
图4-1 风力摆结构示意图图4-2 万向角示意图4.2测试仪器数字风速仪,量角器,米尺,秒表,示波器。
4.3 测试结果及分析4.3.1测试结果(数据)表4-1 摆杆画出直线段(大于50cm)表4-2 摆杆画出可设置长度直线(30-60cm)表4-3 按设定方向摆动画出直线段(大于20cm)表4-4 风力摆拉起固定后角度自动静止(30°-45°)表4-5 驱动摆杆做3次圆周运动(15cm<R<35cm)表4-6 做圆周运动时施加外力干扰,恢复原状态4.3.2测试分析与结论根据上述测试数据,由此可以得出以下结论: 1、各个模块工作正常。
2、完成了题目的各项要求;经历了这次的比赛让我们懂得了基础的重要性,平时的学习中不能好高骛远,须知细节决定成败,也许就是一个小小的疏忽就导致全盘失败,认真的阅读资料,不疏忽任何一个小问题,学到了很多课堂上上没学到的东西。
通过这次比赛,不仅仅锻炼了我们的动手实践能力,独立思考解决问题的能力,更是加强了我们的创新团队协作意识。
附录一电路原理图陀螺仪电路图如图1-1所示。
陀螺仪电路图如图1-1系统电路图如图1-2所示。
系统电路图如图1-2程序流程图图2-1 程序框图附录三部分程序#include "l主程序流程图如图2-1所示。
ed.h"#include "delay.h" #include "key.h" #include "sys.h" #include "usart.h" #include "timer.h" #include "mpu6050.h" #include "kalman.h" #include "12864.h" #include "adc.h"#define myMCLKextern float Angle_X_Final; extern float Angle_Y_Final; extern float Angle_Z_Final; extern float Gyro_x;extern float Gyro_y; extern float Gyro_z;u8 Table6[]=" 角度X 轴: "; u8 Table7[]=" 角度Y 轴: "; u8 Table8[]=" 度 "; extern int shu3,shu4; int main(void) {int qian1=0,bai1=0,shi1=0,ge1=0,qian2=0,bai2=0,shi2=0,ge2=0;//shu3=0,shu4=0; u8 t;u16 led0pwmval=1080;delay_init(72); //延时函数初始化 LCD12864_Init(); //PB10 PB11 PB12 PB13KEY_Init(); //初始化与按键连接的硬件接口 Adc_Init();uart_init(9600); LED_Init(); Moto1_Init();TIM_SetCompare2(TIM3,led0pwmval);TIM_SetCompare1(TIM3,led0pwmval); TIM_SetCompare3(TIM3,led0pwmval);TIM_SetCompare4(TIM3,led0pwmval);delay_ms(1700);TIM_SetCompare2(TIM3,1140); TIM_SetCompare1(TIM3,1140);TIM_SetCompare3(TIM3,1140); TIM_SetCompare4(TIM3,1140); delay_ms(1500);TIM_SetCompare2(TIM3,1140); TIM_SetCompare1(TIM3,1100);TIM_SetCompare3(TIM3,1140); TIM_SetCompare4(TIM3,1140); //PB10 PB11 PB12 PB13I2C_MPU6050_Init(); //IIC初始化 //PB6 PB7InitMPU6050(); //MPU6050初始化 TIM4_Int_Init(19,7999); //1s 9999 //GPIO_ResetBits(GPIOB,GPIO_Pin_5); }附录四元器件清单2015年全国大学生电子设计竞赛(瑞萨杯)风力摆控制系统(B题)2015年8月15日本文论述了风力摆系统的工作原理和设计思路。