风力摆控制系统论文最终版资料.docx
- 文档编号:10007094
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:15
- 大小:284.23KB
风力摆控制系统论文最终版资料.docx
《风力摆控制系统论文最终版资料.docx》由会员分享,可在线阅读,更多相关《风力摆控制系统论文最终版资料.docx(15页珍藏版)》请在冰豆网上搜索。
风力摆控制系统论文最终版资料
2015年全国大学生电子设计竞赛(瑞萨杯)
风力摆控制系统(B题)
2015年8月15日
摘要
本文论述了风力摆系统的工作原理和设计思路。
系统采用STM32F103单片机为主要控制系统,用角位移传感器mpu-6050采集到风力摆的摆头的角度及位置,通过I2C总线传输发送到主控系统中,采用lcd12864显示采集到的信息,通过PID进行数据处理,产生相应的PWM信号,发送到相应的直流风机,控制直流风机实现自由摆动,从而画出直线、圆等轨迹。
关键词:
STM32F103单片机;角位移传感器mpu-6050;PID算法
一、方案设计与论证
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系统最终方案选择
经过上述的分析和论证,决定了系统各模块采用的最终方案如下:
图1.1系统方框图
本装置用MPU-6050三维角度传感器反馈轴流风机的运动轨迹,经过A/D转换进行数据采样,通过STM32单片机进行数字处理,以实现画直线、画圆的目的。
经测试证明,本装置能够很好的完成设计要求,且具有较高的稳定性。
二、测控方法分析与论证
2.1风力摆状态测量分析
摆杆状态的检测利用的是MPU-6050,MPU-6050三维角度传感器,在特定的位置会输出特定的电压值,当摆杆运动时,主控制器通过AD采集出一系列电压值,根据电压值的变化,即可知道摆杆的状态,从而实现画直线,画圆等要求。
2.2运动控制
2.2.1电机的比较与选择
市面上普通直流电机转速慢,功率小,摩擦力大导致上电后短时间内风力摆摆动幅度小,可控性很低,为了更加精确控制风力摆的摆动幅度、速度,我们选择转速快,减速比低,摩擦力小的额定电压为12V的直流无刷电机。
2.2.2控制原理和计算公式
PID控制算法中微分作用是控制器的输出与偏差变化的速度成比例,它对克服对象的容量滞后有显著效果,在比例基础上加入微分作用,使稳定性提高,再加上积分作用,可以消除余差,因此PID控制算法适用于控制质量要求很高的控制系统。
使用PWM(脉宽调制)方法,可以方便地改变加给电机电枢的平均电压的大小。
改变控制信号的占空比就可以改变电机的转速。
具体分析如下:
error=set_angle-anggle_one
(1)
其中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.1STM32F103单片机最小系统电路
图3.1STM32F103单片机最小系统
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)
测试次数
运动时间/s
直线段长度/cm
1
12
52
2
13
51
3
13
53
表4-2摆杆画出可设置长度直线(30-60cm)
预设直线长度/cm
运动时间/s
实际得到长度/cm
长度偏差/cm
35
10
36
1
40
11
40
0
50
12
50
0
表4-3按设定方向摆动画出直线段(大于20cm)
测试次数
运动时间/s
实际直线长度/cm
1
12
23
2
10
21
3
12
22
表4-4风力摆拉起固定后角度自动静止(30°-45°)
测试次数
摆动角度
达到静止时间(S)
1
35°
11
2
38°
13
3
42°
15
表4-5驱动摆杆做3次圆周运动(15cm 预设半径/cm 完成3次圆周运动时间/s 圆环偏差/cm 15 18s 0 20 22s 1 25 24s 0.5 30 26s 0 表4-6做圆周运动时施加外力干扰,恢复原状态 测试次数 台扇(60w,1m)干扰时间 恢复圆周运动时间 1 5s 4s 2 5s 5s 3 5s 4s 4.3.2测试分析与结论 根据上述测试数据,由此可以得出以下结论: 1、各个模块工作正常。 2、完成了题目的各项要求; 五、总结 经历了这次的比赛让我们懂得了基础的重要性,平时的学习中不能好高骛远,须知细节决定成败,也许就是一个小小的疏忽就导致全盘失败,认真的阅读资料,不疏忽任何一个小问题,学到了很多课堂上上没学到的东西。 通过这次比赛,不仅仅锻炼了我们的动手实践能力,独立思考解决问题的能力,更是加强了我们的创新团队协作意识。 参考文献 [1]侯祥林,顾立忠,徐心和.圆规单极倒立摆摆起过程控制[J].控制与决策,2003,18(4): 483~486. [2]杨光祥.《STM32单片机原理与工程实践》.武汉理工大学出版社,2013 [3]黄友锐,曲立国.《PID控制器参数整定与实现》出版社: 科学出版社,2010 [4]谭浩强著.《C程序设计(第三版)》.北京: 清华大学出版社,2005 附录一电路原理图 陀螺仪电路图如图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" #definemyMCLK extern 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 PB13 KEY_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 PB13 I2C_MPU6050_Init(); //IIC初始化 //PB6 PB7 InitMPU6050(); //MPU6050初始化 TIM4_Int_Init(19,7999); //1s 9999 //GPIO_ResetBits(GPIOB,GPIO_Pin_5); } 附录四元器件清单 名称 数量 单位 STM32F103单片机 1 个 12864液晶 1 个 Lm2940稳压芯片 1 片 ASM11173.3V稳压芯片 1 片 电子调速器 1 个 按键 4 个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 风力 控制系统 论文 最终版 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)