风力摆控制系统.docx
- 文档编号:6545564
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:15
- 大小:142.50KB
风力摆控制系统.docx
《风力摆控制系统.docx》由会员分享,可在线阅读,更多相关《风力摆控制系统.docx(15页珍藏版)》请在冰豆网上搜索。
风力摆控制系统
风力摆控制系统
摘要:
本系统以MSP430F149单片机作为主控芯片,通过陀螺仪传感器MPU-6050检测风力摆的姿态信息,采用PID控制算法和互补滤波,实现了系统的最优控制,角度和X-Y轴等姿态信息的实时显示,使系统按照预期的轨迹运动。
本设计结构简单、可靠性高、操作方便、性能优良。
关键词:
风力摆;MSP430F149;PID调节;互补滤波
目录
一、系统方案1
1、检测模块的论证与选择1
2、动力模块的论证与选择1
3、显示模块的论证与选择1
4、控制模块的论证与选择2
二、系统理论分析2
1、运动情况分析2
(1)水平直线运动2
(2)自动“归零”运动2
(3)圆周运动3
2、水平直线运动计算3
3、圆周运动计算3
4、PID调节和互补滤波4
三、电路与程序4
1、电路的设计4
(1)系统总体框图4
(2)供电子系统5
(3)检测模块5
(4)显示模块5
2、程序的设计5
(1)程序功能描述与设计思路5
(2)程序流程图6
四、测试方案与测试结果6
1、测试方案6
2、测试条件与仪器6
3、测试结果及分析6
(1)测试结果6
(2)测试分析与结论8
五、结论与心得8
六、参考文献8
风力摆控制系统(B题)
【本科组】
一、系统方案
本系统主要由检测模块、显示模块、动力模块和控制模块组成,下面分别论证这几个模块的选择。
1、检测模块的论证与选择
方案一:
采用MMA7455加速度传感器检测平台倾角。
其核心为飞思卡尔公司的MMA7455L数字三轴加速度传感器,它通过数字输出,工作可靠。
但其8位模式限制了其测量精度,在测量微小的角度变化上误差较大,且7455不含陀螺仪,由此产生陀螺仪与加速器之间时间差的问题。
方案二:
采用电位器检测摆杆倾角。
用电阻分压方式可以实现电位器对角度变化的感应。
但是必须经过模数转换才能将信号传给处理器处理,其灵敏度和模数转换器的精度都会对测量结果产生直接影响,误差很大。
方案三:
陀螺仪传感器MPU-6050检测摆杆倾角。
MPU-6050是一款整合性6轴运动处理组件,整合了3轴陀螺仪、3轴加速器,并含两个和磁力传感器,向应用端输出完整的9轴融合算技术。
MPU-6050价格比较便宜且性能稳定的。
综合以上三种方案,MPU-6050从精度和性能上更符合要求,故选择方案三。
2、动力模块的论证与选择
方案一:
小型散热风机。
小型散热风机体积小、重量轻,但其缺点是可以承载电流小、风力小,不能吹起质量较大的物体。
方案二:
空心杯电机。
空心杯电机是应用在小型四轴飞行器上的,特点是质量小转速高,最高转速可达到每秒3000r。
只是空心杯电机电流小、风力小,达不到风力摆规定的要求。
方案三:
12V轴流风机。
轴流风机作为直流风机的一种,具备电流大转速高、风量大的优点。
但是体积大,重量大。
综上所述,结合方案二和方案三配合使用。
3、显示模块的论证与选择
方案一:
使用1602液晶。
1602液晶的优点在于功耗低、控制程序简单,但仅能显示两行字符,不能在光线暗的情况显示。
方案二:
使用12864液晶。
12864液晶的成本相对较低,适用于小型设备的显示领域。
但是体积较大、连接线多、实时显示速度较慢。
方案三:
12864OLED液晶。
OLED液晶的体积小功耗低,自带背光显示亮度高、控制灵活显示反应速度快清晰度高,可以显示多行,连接简单。
综合以上三种方案,选择方案三。
4、控制模块的论证与选择
方案一:
采用AT89C51系列单片机作为控制的核心。
51单片机应用广泛,按单纯的控制和数据处理是比较经济实惠的,但是51系列单片机运算速度低,几种常用的51单片机内部资源较少,无法满足系统功能要求。
方案二:
采用FPGA作为控制核心。
FPGA速度快、扩展性能好,采用并行的输入/输出方式,但是FPGA成本高,编程使用HDL语言,开发较为复杂,有些语句在C语言的环境中应用是没有问题的,但是在HDL语言环境下就会导致结果不正确或者不理想。
方案三:
选用TI公司生产的MSP430F149单片机。
MSP430F149单片机是16位的单片机,运算速度快,低电压、超低功耗,有48个I/0构成,对于该系统来说端口足够多,Cortex-M3的内核,电路结构简单易于控制精度高,编程使用C语言可移植性强。
该项目对控制精度要求较高、处理速度快、端口资源丰富。
综合以上三种方案,将MSP430F149单片机作为MCU的最终选取方案。
二、系统理论分析与计算
1、运动情况分析
(1)水平直线运动
水平直线运动时在保持两个方向受力为零的情况下向一个方向加力使其按照一个直线来回摆动的控制。
通过调节设定不同的角度可以通过激光笔在地面上画出不同长度的直线。
(2)自动“归零”运动
当拉起一个角度或受外力偏移后可以自动调节,在短时间内返回标定的零位置。
要求受力为在摆动的方向上添加反向的力,在受力平衡的条件下可以短时间找到标定的初始零位。
(3)圆周运动
根据设定圆的半径可以通过在画出任意半径的圆。
对风力摆的受力要求是角速度和线速度大小不变,控制使用闭环PID调节配合互补滤波画出图形。
其中水平运动和圆周运动的运动模式如图1所示:
C
B
图1风力摆受力模型
2、水平直线运动计算
水平运动如图1(a)所示,标定X-Z轴,设当摆杆倾角为θ时,平台与水平方向的夹角为α。
对风力摆进行受力分析,其合力为自身重力与离心力这两个力的合力。
若摆块摆动,则平台平面与合力方向垂直。
由此可建立平面几何模型,求直线长度的关系。
具体计算如下:
在△OAB中,利用正弦定理求得。
由于通过摆动画线,摆动直线为两倍的AB。
3、圆周运动计算
圆周运动如图1(b)所示计算加速度计的偏移角:
加速度传感器X与自然坐标系X轴夹角:
加速度传感器Y与自然坐标系Y轴夹角:
加速度传感器Z与自然坐标系Z轴夹角:
使用圆周方程公式,在标定零点的条件下利用圆周方程公式(x-a)²+(y-b)²=r²,计算出每个点的位置信息。
4、PID调节和互补滤波
图2PID和滤波流程图
R(t)为设定的姿态信息;C(t)为输出的风机风速;T(t)为调整的量;
如图4所示,陀螺仪MPU-6050作为姿态的检测采集单元做输入R(t),由单片机进行处理PID调整,调整后的结果发送到直流风机,四个直流风机吹动风力摆按照要求姿态摆动,摆动状态即时传送到MPU-6050上,再进行调节,完成一次负反馈。
三、电路与程序设计
1、电路的设计
通过参考资料和理论仿真,对系统硬件进行设计,设计内容包括供电电源子系统、系统输入和显示子系统。
(1)系统总体框图
系统以MSP430F149作为核心处理芯片,包括姿态检测模块、电源模块、直流风机模块,该系统的总体结构框图如图2所示:
图3系统结构图
(2)供电子系统
图4为
供电系统由变压电路、滤波电路、稳压电路三部分电路组成。
整个系统稳定的工作,要求供电系统能够提供稳定的5V、3.3V的电压。
为了得到稳定的电压,我们分别利用AMS1117-5V降压芯片、AMS1117-3.3V降压芯片电源子系统.图4供电子系统原理图
(3)检测模块
如图5,系统输入采用MPU-6050采集做系统输入。
(4)显示模块
如图6,OLED模块显示X-Y位置信息和角度信息。
图5检测模块原理图图6显示模块原理图
2、程序的设计
(1)程序功能描述与设计思路
本系统采用四个独立按键输入各参数及测试模式,系统开机启动进入系统初始化界面,按下指定按键后进入菜单选择界面,菜单选择界面有6个功能:
分别对应题目基本要求和发挥部分6点,通过按键可以选择进入相应的功能,功能执行完毕后系统回到菜单选择界面,继续等待按键输入执行相应的功能。
(2)程序流程图
图7主程序流程图图8子系统流程图
四、测试方案与测试结果
1、测试方案
(1)硬件测试:
测试机械部分能否正常工作,各项参数是否准确。
同时检查电路焊接是否正确,各部分接线是否正确
(2)软件仿真测试:
用Multisim软件对电路进行具体电路的仿真。
(3)硬件软件联调:
实现的编程算法控制硬件系统进行工作。
检测整个系统是否实现各项要求。
2、测试条件与仪器
测试条件:
检查多次,机械部分必须正常工作且参数正确。
仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:
量角器、尺子、秒表、自制方向角度图纸。
3、测试结果及分析
(1)测试结果
测试系统的风力摆摆长65cm;距地面高度15cm;
1.设定水平画线50cm,15s后风力摆摆动画线长度测量入表1:
表1:
(单位:
厘米)
测量次数
第1次
第2次
第3次
第4次
第5次
测量偏差
+1.00
-2.00
+2.00
+2.00
+1.50
是否达要求
是
是
是
是
是
设定45cm,15s后摆杆摆动画线长度测量,经五次后的整体值:
表2:
(单位:
厘米)
试验次数
第1次
第2次
第3次
第4次
第5次
测量偏差
+1.00
+2.00
-1.00
+1.00
+2.50
是否达要求
是
是
是
是
是
2.给定X-Y坐标设定摆动方向,15s内按照设定摆动画出不短于20cm的直线
表3:
(单位:
厘米)
试验次数
第1次
第2次
第3次
第4次
第5次
设定角度
20°
25°
28°
30°
32°
直线长度
30.00
38.00
43.00
45.00
51.00
测量偏差
+0.89
+0.70
+0.46
-1..19
-0.42
是否达要求
是
是
是
是
是
3.将风力摆拉起一定角度(30°~45°)放开,5s后风力摆制动达到状态
表4:
(单位:
厘米)
试验次数
第1次
第2次
第3次
第4次
第5次
拉起角度
30°
35°
38°
40°
45°
静止时间
3.57s
3.29s
4.02s
4.20s
3.87s
是否达要求
是
是
是
是
是
4.以风力摆静止时激光头的光点为圆心,圆半径可在15~35cm范围内设置,驱动风力摆用激光头在地面画圆,30s内需重复3次:
表5:
(单位:
厘米)
试验次数
第1次
第2次
第3次
第4次
第5次
设定半径
15.00
18.00
20.00
25.00
30.00
激光笔画圆直径
31.00
38.00
43.00
48.00
59.00
是否达要求
是
是
是
是
是
5.在完成(4)后继续作圆周运动,在距离风力摆1~2m距离内用一台50~60W台扇在水平方向吹向风力摆,台扇吹5s后停止,风力摆在的停止时间:
表6:
(单位:
厘米)
试验次数
第1次
第2次
第3次
第4次
第5次
静止时间
3.57s
5.29s
4.82s
4.72s
4.37s
是否达要求
是
否
是
是
是
(2)测试分析与结论
根据上述测试数据可以得出以下结论:
1、陀螺仪传感器MUP6050角度传感器使用方便准确,测量精度越高;
2、我们选择的直流电机的性能远远优于普通直流风机,在器件选用上合理;
3、PID调节和互补滤波是现代重要的调速方法之一,应用在所需要的高精密的仪器上,可实现较为精细的速度调节。
综上所述,本设计达到设计要求。
五、结论与心得
理论联系实际的方法让我们受益颇多。
硬件的选择在系统搭建过程中起着至关重要的作用,而在理论设计的基础上结合PID调节搭配滤波电路作为一种控制系统的高效调节方式可以满足系统的较高要求。
六、参考文献
[1]刘同法,肖志刚,彭继卫.ARMCortex-M3内核微控制器快速入门与应用[M].北京:
北京航空航天大学出版社,2009.6
[2]张茹,孙松林.嵌入式系统技术基础[M].北京:
北京邮电大学出版社,2006.1
[3]程鹏,自动控制原理[M].高等教育出版社,2003.
[4]黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程[M].北京:
电子工业出版社,2007.
[5]金伟,齐世清,王建国.现代检测技术[M].北京:
北京邮电大学出版社,2006
附件2:
部分源程序
//MPU6050初始化
uint8_tMPU_Init(void)
{
uint8_terr=0;
I2C_QuickInit(I2C0_SCL_PB00_SDA_PB01,400*1000);
DelayMs(100);
err+=I2C_WriteSingleRegister(HW_I2C0,MPU6050_ADDRESS,PWR_MGMT_1,0x00);//解除休眠状态
err+=I2C_WriteSingleRegister(HW_I2C0,MPU6050_ADDRESS,SMPLRT_DIV,0x07);//陀螺仪采样率
err+=I2C_WriteSingleRegister(HW_I2C0,MPU6050_ADDRESS,CONFIGL,MPU6050_DLPF);//低通滤波42Hz
err+=I2C_WriteSingleRegister(HW_I2C0,MPU6050_ADDRESS,GYRO_CONFIG,MPU6050_GYRO_FS_1000);//陀螺仪量程+-1000
err+=I2C_WriteSingleRegister(HW_I2C0,MPU6050_ADDRESS,ACCEL_CONFIG,MPU6050_ACCEL_FS_4);//加速度量程+-4G
err+=MPU_GetZero();
returnerr;
}
//MPU6050获得一次数据
uint8_tMPU_Get(void)
{
staticfloatx,y,z;
LEDOn
(1);
uint8_tback_dat[14];
uint8_terr;
int16_tdat_rev[7];
err=I2C_BurstRead(HW_I2C0,MPU6050_ADDRESS,ACCEL_XOUT_H,1,back_dat,14);
if(err)
{
returnerr;
}
dat_rev[0]=((((int16_t)back_dat[0])<<8)|back_dat[1])-AccZero[0];
dat_rev[1]=((((int16_t)back_dat[2])<<8)|back_dat[3])-AccZero[1];
dat_rev[2]=((((int16_t)back_dat[4])<<8)|back_dat[5])-AccZero[2];
dat_rev[3]=((((int16_t)back_dat[6])<<8)|back_dat[7]);
dat_rev[4]=((((int16_t)back_dat[8])<<8)|back_dat[9])-GyroZero[0];
dat_rev[5]=((((int16_t)back_dat[10])<<8)|back_dat[11])-GyroZero[1];
dat_rev[6]=((((int16_t)back_dat[12])<<8)|back_dat[13])-GyroZero[2];
mpu_original.acc_x=dat_rev[0];
mpu_original.acc_y=dat_rev[1];
mpu_original.acc_z=dat_rev[2];
mpu_original.temperature=dat_rev[3];
mpu_original.gyro_x=dat_rev[4];
mpu_original.gyro_y=dat_rev[5];
mpu_original.gyro_z=dat_rev[6];
//加速度计IIR滤波
mpu_original.acc_x=IIR_I_Filter(mpu_original.acc_x,InPut_IIR[0],OutPut_IIR[0],b_IIR,IIR_ORDER+1,a_IIR,IIR_ORDER+1);
mpu_original.acc_y=IIR_I_Filter(mpu_original.acc_y,InPut_IIR[1],OutPut_IIR[1],b_IIR,IIR_ORDER+1,a_IIR,IIR_ORDER+1);
mpu_original.acc_z=IIR_I_Filter(mpu_original.acc_z,InPut_IIR[2],OutPut_IIR[2],b_IIR,IIR_ORDER+1,a_IIR,IIR_ORDER+1);
//陀螺仪一阶低通滤波
mpu_original.gyro_x=LPF_1st(x,mpu_original.gyro_x,0.386f);
x=mpu_original.gyro_x;
mpu_original.gyro_y=LPF_1st(y,mpu_original.gyro_y,0.386f);
y=mpu_original.gyro_y;
mpu_original.gyro_z=LPF_1st(z,mpu_original.gyro_z,0.386f);
z=mpu_original.gyro_z;
LEDOff
(1);
returnMPU_OK;
}
/*角度拟合*/
voidangle_get(void)
{
floatBD[2];//△
//X轴拟合
Angle.x=GYR_INT_X/INT_TIME_X;
BD[0]=(float)mpu_original.acc_x*ACC_RATIO_X-Angle.x;
BD[0]=BD[0]*ANG_BACK_X;
GYR_INT_X+=((float)-mpu_original.gyro_y*GYR_RATIO_X+BD[0]);
//Y轴拟合
Angle.y=GYR_INT_Y/INT_TIME_Y;
BD[1]=(float)mpu_original.acc_y*ACC_RATIO_Y-Angle.y;
BD[1]=BD[1]*ANG_BACK_Y;
GYR_INT_Y+=((float)mpu_original.gyro_x*GYR_RATIO_Y+BD[1]);
//计算距离
Offset.LastX[1]=Offset.LastX[0];
Offset.LastY[1]=Offset.LastY[0];
Offset.LastX[0]=Offset.x;
Offset.LastY[0]=Offset.y;
Offset.x=-60.0f/tan((90.0f-Angle.x)*3.1415926f/180.0f);
Offset.y=-60.0f/tan((90.0f-Angle.y)*3.1415926f/180.0f);
}
画圆程序:
//画圆并发送
voidPointRound(int16_tr,int16_tx,int16_ty)
{
int16_tStartPoint=x-r;
int16_tEndPoint=x+r;
int16_ti;
for(i=StartPoint;i<=EndPoint;i++)
{
SetData(i,sqrt(r*r-(i-x)*(i-x))+y);
SetData(i,-sqrt(r*r-(i-x)*(i-x))+y);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 风力 控制系统