简易风洞模拟控制系统报告_第1页
简易风洞模拟控制系统报告_第2页
简易风洞模拟控制系统报告_第3页
简易风洞模拟控制系统报告_第4页
简易风洞模拟控制系统报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简易风洞模拟控制系统 组员:高明达 田新兴 阚亚进摘要 本帆板控制系统由单片机ATMEGA328作为帆板转角的检测和控制核心,实现按键对风扇转速的控制、调节风力的大小、改变帆板转角、液晶显示等功能。引导方式采用角度传感器感知与帆板受风力大小的转角的导引线。通过PWM波控制电机风扇风力的大小使其改变帆板摆动的角度。风扇控制核心采用L298电机驱动模块,用ATMEGA328单片机为控制核心,产生占空比受数字PID算法控制的PWM脉冲,实现对直流电机转速的控制,同时利用光电传感器将电机速度转化成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。MMA7455三轴加速传感器把角度输出

2、信号传送给ATMEGA328单片机进行处理。 关键词: ATMEGA328,MMA7455,PWM波,PID算法SummaryThe system uses MSP430F149 SCM as the core control system; to stepper motor control flat turns, broken down by drive enhanced stepper motor precision; MMA7361 angle sensor chip module, acquisition of freedom pendulum displacement angle a

3、nd 12,864 LCD display; controlled by photoelectric sensor plate where you stopped, Flat tilt angle happens to meet flat force on coin (supporting force and friction force) happen to provide the components of the coin horizontally in transverse acceleration force required; electromagnets are used to

4、automatically free up swing. According to the foot of the step motor (1.8 °/STEP), precise control of stepping motor rotation corresponding steps. The system layout is reasonable, theoretical possible, actually run more smoothly, high control precision, meets the requirements of topics essentia

5、l parts.Keywords: freedom pendulum .angle measurement. divided. driving balance control目录一、系统方案21.1方案选择与对比21.1.1角度测量方案21.1.2驱动电机方案21.2系统结构2二、系统理论分析与计算32.1平板转一周的控制原理分析32.2硬币不滑落控制原理分析4三、硬件模块设计与分析43.1控制电路43.2角度测量电路53.3步进电机及驱动电路53.4控制按键及模式转换电路63.5光电传感电路63.6显示电路7四、软件程序设计74.1系统主流程图74.2各模块程序流程图8五测量方案与测试结果9

6、5.1测量方案95.1.1基本要求功能测试95.2测试结果及分析9实验总结10参考文献11附件一:电路原理图12附件二:主要器件清单12附件三:源程序13一、系统方案1.1方案选择与对比1.1.1电源的设计方案论证与选择 系统需要多个电源,ATMEGA328、L298、MMA7455都使用5V的稳压电源,电机驱动需要24V电压。 方案一、采用LM2596开关电压调节器,能够输出3A的输出电流,同时具有很好的线性和负载调节特性,固定输出3.3V、5V、12V经过调整可输出小于37V的电压。 方案二、采用升压型稳压电路。用两片MC34063芯片分别将3V的电池电压进行直流斩波调压,得到5V和12V

7、的稳压输出。只需使用两节电池,既节省了电池,又减小了系统体积重量,但该电路供电电流小,供电时间短,无法是相对庞大的系统稳定运作。 方案三、采用三端稳压集成7805与7824分别得到5V与24V的稳压电压。利用该方法方便简单,工作稳定可靠。 综上所述,选择方案三,采用三端稳压电路。1.1.2角度传感器的设计方案论证与选择 方案一、采用WDS35D4精密导电塑料角位移传感器,利用该传感器的输入端加上一个直流电压,在输出端得到一个直流电压信号,把角度位移的机械位移量转化成电压信号,用输出电压进行角度位移的控制。用此传感器只要测量导轨电阻两端的直流电压,不同的角度有不同的电阻值,通过电阻来算出角度,计

8、算不方便。电刷在导轨上移动获得输出,数值越小,精度越高。该传感器的优点: 对环境条件要求低,线性精度高、分辨率高、动态的噪声小等优点,由于该传感器的各项精度都比较精细使其价格过高。 方案二、采用电位器进行调角:帆板转动时电位器跟着转动,电压随之发生变化,通过电压的值转换成角度值。但扭力过大,而且精度也不高。 方案三、采用MMA7455三轴加速度传感器,利用物体运动和方向改变输出信号的电压值,把检测到的信号传送给ATMEGA328的AD转化器进行转化与读取此输出信号。通过不同的角度,X、Y、Z三个方向的加速度输出不同,将电容值的变化转化为电压值,电容值的计算公式是:C=Ae/D,其中A是极板的面

9、积,D是极板间的距离,e是电介质常数,再用反正弦函数把角度算出来,计算比较方便。该传感器的优点:线性精度高、体积小、工作可靠、标识清晰、扩展性好等优点。 综上所述,选择方案三,用MMA7455三轴加速传感器。 1.1.3显示方式的选择 方案一、采用LED数码管显示。使用数码管动态显示,由于显示的内容较少,给人的视觉冲击不怎么的舒适,具有亮度高、工作电压低功耗小、易于集成、驱动简单等优点。但在此次设计中需要设定的参数种类多,使用LED数码管不能完成设计任务,不宜采用。 方案二、采用字符型LCD显示。可以显示英文及数字,利用程序去驱动液晶 显示模块,设计简单,且界面美观舒适,耗电小。 综上所述,选

10、择方案二,用字符型LCD进行显示。 1.1.4帆板的设计方案论证与选择 方案一、采用电路板作为帆板。根据设计需要的要求,电路板需做成宽:10cm,长:15cm;在所拥有的风扇下采取电路板作为帆板,很难满足设计所需达到的角度。考虑风力的大小和自身重力,不宜采用。 方案二、采用泡沫作为帆板。泡沫的体积太轻,很容易满足设计所需要的角度,缺点:泡沫的稳定性不高,干扰成分太多。考虑不稳定性的因素太多此方案不宜采用。 方案三、采用铝板作为帆板。经过多次实验:铝板可以作为帆板使用,能过达到设计所需要的要求,而且铝板的稳定性比较好,抗干扰能力强,受干扰的成分比较小。 综上所述,选择方案三,用铝板作为帆板使用。

11、 1.2系统结构经过方案比较与论证,最终确定的系统组成框图如图1.1.1所示。其中的集成电路ATMEGA328单片机驱动液晶显示模块、控制电机驱动改变风扇风力的大小从而改变帆板的角度,角度传感器把接收到的输出信号传送给ATMEGA328单片机进行处理再更新显示。系统框图如图:角度传感器控制按键功能切换键光电传感器步进电机平板转动单片机LED显示图1:系统框图二、系统理论分析与计算PID算法: 由于单片机的处理速度和RAM资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度

12、要求很高时,注意保留移位引起的“余数”,做好余数补偿。 遇限消弱积分:一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说,在计算Ui时,将判断上一个时刻的控制量Ui-1是否已经超出限制范围,如果已经超出,那么将根据偏差的符号,判断系统是否在超调区域,由此决定是否将相应偏差计入积分项 积分分离法:在基本PID控制中,当有较大幅度的扰动或大幅度改变给定值时, 由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调量和长时间的波动。特别是对于温度、成份等变化缓慢的过程,这一现象将更严重。为此可以采用积分分离措施,即偏差较大的时,取消积分

13、作用;当偏差较小时才将积分作用投入。 离散化公式:u(t) = q0e(t) + q1e(t-1) + q2e(t-2) 当|e(t)|时 q0 = Kp(1+T/Ti+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T 当|e(t)|时 q0 = Kp(1+Td/T) q1 = -Kp(1+2Td/T) q2 = Kp Td /T u(t) = u(t-1) + u(t) 微分控制对系统性能的影响:微分作用可以改善动态特性,偏大时,超调量较大,调节时间较短。偏小时,超调量也较大,调节时间也较长。只有合适,才能使超调量较小,减短调节时间。 由于快速傅立叶变换FFT算法设

14、计大量的浮点运算,由于一个浮点占用四个字节,所以要占用大量的内存,同时浮点运算时间很慢,所以采用普通的8位MCU一般难以在一定的时间内完成运算,所以综合内存的大小以及运算速度,采用32位的单片机ATMEGA328,它拥有较大的RAM,并且时钟频率高达16M,所以对于浮点运算不论是在速度上还是在内存上都能够很快的处理。三、硬件模块设计与分析3.1风扇控制电路 风扇控制电路主要是由ATMEGA328、L298电机驱动模块组成。L298电机驱动 模块主要由放大电路、OPAMP运算放大电路、电机驱动组成。用电阻和电容组成高通滤波电路,用单片机控制达林顿管使之工作在开关状态,通过调整输入脉冲的占空比,调

15、整电机转速。用L298驱动两台直流减速电机的电路引脚A,B分别用PWM控制。如果电机运动则可将IN1,IN2和IN3,IN4两对引脚分别接高低电平,仅用单片机的两个端口给出PWM 信号控制A,B即可。特点: 工作电压高,可以达到46V;输出电流大,瞬间峰值可达3A,持续工作电流2A;额定功率25W。当步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转的越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速,从而控制了风扇的风力的大小。L298电机驱动的特点:可以实现电机正反转及调速、启动转矩大。 图:3.2角度测量电路 MMA7455三

16、轴加速传感器是检测物体运动和方向的传感器,它根据帆板运动和方向改变输出信号的电压值。当帆板受到风扇风力运动时,三轴加速传感器检测到帆板运动的输出信号,把该输出的电压值用三角函数数出来在把结果送往ATMEGA328单片机进行处理,通过按键控制与液晶显示屏进行显示。MMA7455三轴加速传感器如图:图3:加速度传感器原理图3.4控制按键及模式转换电路系统利用模式转换开关实现工作状态的切换,并设置了相关按键,分别实现电源、启动等控制。3.5光电传感电路我们在摆杆和平板垂直的位置加上了一个ST188的光电传感器,减少由于角度传感的延时和误差导致平板和摆杆垂直的时间和角度,更好的让摆杆和平板达到垂直位置

17、。电路原理图如下:图5:光电传感器原理图3.6显示电路我们通过液晶12864ST7920连接到单片机显示角度的变化。电路原理与如下:图6:液晶显示电路原理图四、软件程序设计4.1系统主流程图图7:系统主流程图我们用按键来实现多个子程序的转换,使总程序逻辑更加清楚。总程序附表三给出。4.2各模块程序流程图 图8:应用一程序流程图 图9:应用二的程序流程图 五测量方案与测试结果5.1测量方案5.1.1基本要求功能测试1、平板旋转一周控制测试方法及测试数据在摆杆上对应平板的位置贴上角度标尺,方便观察平板旋转角度。系统测量的摆杆角度实时在液晶上显示,在摆杆的后方平行位置放一量角尺,先将摆杆拉至一定角度

18、,对比液晶上显示的角度值,经多次实验,证明液晶上显示的角度值可以用来作为实际值,进行后面的测试。摆杆垂直静止时,手动调整平板使其水平,然后将摆杆推至一定角度,启动系统并放开摆杆让其自由摆动。软件检测到摆杆摆动一个周期时,控制步进电机停止转动,系统停止工作,摆杆回到垂直静止时观察平板倾斜角度,从而得到摆杆摆一个周期时平板旋转一周的误差。同理控制摆杆摆动26个周期时,分别观察平板的旋转误差。2、硬币不滑落控制测试方法及测试数据将摆杆拉至一定角度,调整平板角度,在平板中心稳定放置一枚1元硬件,启动后放开摆杆让其自由摆动。6个摆动周期后停止系统运行,用直尺测量硬币偏移距离并记录。改变摆杆摆动时的初始角

19、度。同理在平板中心稳定放置8枚1元硬件,分角度进行8次实验。5.2测试结果及分析表1:平板旋转控制测试数据摆动初始角度(°)摆动周期数(周)平板旋转误差(°)摆动初始角度(°)摆动周期数(周)平板旋转误差(°)151445131527452815311453121541545415155184551930155014302750273031250312304155041530519505194014601440276027403116031140416604164051960520表2:一枚硬币滑离中心的数据次数12345678角度30°33&

20、#176;35°39°40°41°43°45°滑动距离(cm)0.30.30.40.50.60.60.70.8误差分析:由实验测试结果可以看出,当摆杆起始角度由30°到45°逐渐增大时,硬币滑离中心位置的距离越大(在实验允许的误差之内),这符合理论分析的结果且符合实际生活规律,达到了预期的实验效果。表3:8枚硬币滑离中心和掉落的数据次数12345678角度45°48°49°52°53°56°57°60°滑动距离(cm)0.30.40.5

21、1.20.60.82.81.0跌落数目20010012误差分析:由实验测试结果可以看出,当摆杆起始角度由45°到60°逐渐增大时,最底层硬币滑离中心位置的距离越大,当硬币发生跌落时,相应的最底层硬币滑离中心位置的距离也很大,这一结果符合理论分析的结果。实验总结 通过这次设计的经历,我们团队有了更深的配合和默契,在设计过程中,我们遇到一个一个的困难,通过一次的学习和讨论,我们克服了很多问题,在电路设计、软件调试及机械组装等方面得到了很好的锻炼,提高了独立思考、自学知识等多方面的能力,更意识到团队合作和理论实践结合的重要性,受益匪浅!虽然其中很多处理方式并不是的很好,导致一些稍

22、大的误差,但是整体上我们完成了对题目的要求。在这次设计中,我们对MSP430单片机的应用和编程有了进一步的认识,对步进电机和传感器的应用得到了很大的加强。同时,我们认识到我们在发挥部分的精确控制方面有很大的欠缺,希望在今后的日子加强对这方面的学习和应用。参考文献1 魏惠军、朱烔明大角度单摆的周期J上海师范大学学报2004年第33卷(103105)2 张福才MSP430单片机自学笔记北京航空航天大学出版社2011年2月3 赵燕著传感器原理及应用北京大学出版社2010年2月。4 坂本正文(日)著,王自强译步进电机应用技术科学出版社2010年5月5 全国大学生电子设计竞赛组委会.全国大学生电子设计竞

23、赛获奖作品选编M.北京:北京理工大学出版社,2007.附件一:电路原理图附件二:主要器件清单序号原件名称,型号和规格数量备注1MS430149单片机1系统控制242HS3404A4步进电机1转动平板3DM542细分驱动器1驱动步进电机4ST188光电传感器1判断摆与平板的垂直5MMA7391加速度传感器1角度测量612864ST7920液晶显示屏1显示角度7电阻若干8电容若干附件三:源程序#include <msp430x14x.h>#include "12864.h"#include "delay.h"#include "adc.

24、h"#include "Init_Clk.h"#include "l298.h"#include <math.h>long int suma=0,sumb=0,sumc=0,base,degree,base2,t=0;unsigned int i=0,j=0,p,k;double m,m1,T;unsigned char ft=0x01,0x02,0x04,0x08,0x01,0x02,0x04,0x08;unsigned char bk=0x08,0x04,0x02,0x01;void main() WDTCTL = WDTPW

25、+ WDTHOLD; P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFE; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; Init_Clk(); adc_4ch(); Init_Lcd(); P4DIR=0XFC; P1DIR=0Xf0; while(1) if(P1IN&BIT0)=0)k=0;break; if(P1IN&BIT1)=0)k=1;brea

26、k; if(k=0) Disp_4num(0x80,0000); while(1) if(P4IN&BIT1)=0) break; Disp_4num(0x80,1111); for(p=10;p>0;p-) /*P2OUT=P2OUT|0x02; Delay_Nus(8); P2OUT=P2OUT&0xfd; Delay_Nus(8); */ P2OUT=0xf2; /Delay_Nus(80); Delay_Nms(25); P2OUT=0xf0; Delay_Nms(25); P3OUT=P3OUT|BIT0; while(1) /Disp_4num(0x80,22

27、22); P2OUT=0xf2; Delay_Nms(25); P2OUT=0xf0; Delay_Nms(25); if(P4IN&BIT0)=0)break; /while(1) /Disp_4num(0x80,2222); for(p=2;p>0;p-) P2OUT=0xf2; Delay_Nms(25); P2OUT=0xf0; Delay_Nms(25); while(1) Disp_4num(0x80,3333); else while(1) ADC12CTL0 |= ADC12SC; _BIS_SR(CPUOFF + GIE); /*while(1) Disp_4n

28、um(0x80,1111); for(i=0;i<4;i+) P2OUT=fti; Delay_Nms(50); if(P4IN&BIT0)=0)break; if(P4IN&BIT0)=0)break; if(i=3)i=1;P2OUT=fti; else P2OUT=fti+; if(i=3)i=1;P2OUT=fti; else P2OUT=fti+; while(1) Disp_4num(0x80,2222); */ /ADC12CTL0 |= ADC12SC; /*while(1) ADC12CTL0 |= ADC12SC; / Sampling open启动转

29、换 /if(fabs(base-degree)>5)break; while(1) /if(degree>20)break; _BIS_SR(CPUOFF + GIE); break; /_BIS_SR(CPUOFF + GIE); / LPM0, ADC12_ISR will force exit进入低功耗等待中断模式 */ /if(m<0) / /*Write_Cmd(0x01); Disp_4num(0x80,1111); while(1) for(i=0;i<4;i+) P2OUT=fti; Delay_Nms(100); if(P4IN&BIT0)=0

30、)break; if(P4IN&BIT0)=0)break; */ / /*else while(1) for(i=0;i<4;i+) P2OUT=bki; Delay_Nms(100); if(P4IN&BIT0)=0)break; if(P4IN&BIT0)=0)break; while(1); */ ADC12 interrupt service routine#pragma vector=ADC_VECTOR_interrupt void ADC12_ISR (void) long int a,b,c,d,y,z,q; double degree_doub

31、le,degree_turn; / if (ADC12MEM0 < 0x7FF) /a=ADC12MEM0/41*33;/? /Disp_HZ(0x80,ms2,4); /b=ADC12MEM1/41*33; /Disp_HZ(0x90,ms2,4); /c=ADC12MEM2/41*33; suma=ADC12MEM0+suma; sumb=ADC12MEM1+sumb; sumc=ADC12MEM2+sumc; i+; if(i=9) a=suma/10; b=sumb/10; c=sumc/10; /y=a-160; /具体数值现场测量,有变化,角度误差 40°以内,误差<1° /z=b-164; /仅使用yOz面变化 a=a/41*33; b=b/41*33; c=c/41*33; y=a-1419; z=b-1479; m=atan2(y,z); /g由Yg和Zg合成,所以用反正切函数 if(m<=0) /具体每个不同传感器,需现场测量0°90°-90°电压后写入新值 /Data20=' ' m1=fabs(m); else if(m>0) /Data20='-' m1=m; degree = m1 * 18000/3.1413925; /显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论