ImageVerifierCode 换一换
格式:DOCX , 页数:45 ,大小:239.64KB ,
资源ID:10508747      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10508747.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(帆板控制系统设计报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

帆板控制系统设计报告.docx

1、帆板控制系统设计报告帆板控制系统设计报告(F题)摘要: 该系统,以STC12C5A60S2单片机作为主控制器,产生PWM波,经过大功率功管IRF530芯片驱动电机让风叶转动,使帆板发生角度偏移,由角度传感器(型号WDJ22GA6)将角度的变化转化为电压,然后经OP07放大器传送到单片机的P1.2口(即ADC口),通过单片机的A/D进行AD采样转换,对角度传感器采集到的电压进行分析和处理,转换成代表角度的数字信号,采集的信号最终由LCD12864显示。此外系统还可以通过按键随时控制风力大小,使帆板固定在某一转角上,并有声光、语音提示,以便进行测试。整个测量的分辨力为1度左右,绝对误差为1度。关键

2、字: 单片机、机械式角度传感器、PID,PWM1系统方案论证及方案选择 2 本系统软硬件设计 2.1单元硬件电路设计 2.1.1 MCU系统及外围电路 2.1.2 角度传感器信号采集电路设计 2.1.3 直流电机风扇的驱动设计 2.1.4 语音提示电路设计 2.2 软件部分设计 2.2.1 PWM波的产生 2.2.2 STC12C5A60S2单片机AD转换的设计 2.2.3 LCD液晶显示部分的设计 2.2.4 帆板角度控制PID算法设计3. 系统连调及测试 3.1指标测试和测试结果4.结论参考文献附录1 原器件清单附录2电路原理图及印制板图附录3程序1. 系统方案论证及方案选择 1.1 总体

3、设计方案题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板,并能实时显示其转角大小。设计主要由主控单片机STC12C5A60S2驱动直流电机,使风扇工作,带动帆板的转动,由角度传感器将偏移量进行电阻电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号显示在LCD12864上,APR9600进行语音提示,当帆板角度到达所设定角度后,会进行提示,或者每变化多少度后进行一次提示。图一1.2方案论证与选择1.2.1 设计要求及思路 题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板,并能

4、实时显示其转角大小。我们设计主要有主控单片机STC12C5A60S2控制直流电机(驱动芯片IFR530),使风扇工作,带动帆板的角度转动,由角度传感器将偏移量进行电阻电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号在LCD液晶显示屏上显示。1.2.2 方案论证与选择 风扇转速控制系统的方案论证与选择 方案一:以普通单片机为核心,配以外围电路。 采用AT89C52单片机,单片机模拟产生PWM,通过H桥及专用的驱动芯片。如: L298N驱动直流风扇,角度信号通过专用的数字芯片、光电编码器、旋转变压器、机械式角度传感器等,实现角度测

5、量。再配以LCD屏、数码管、TFT屏、点阵屏等实现控制信息以及数字信息的显示。由于普通单片机功能有限,因此在使用时外围电路较复杂,所以在较短时间实现与完成稳定性、可靠性较差。 方案二: 以高性能的处理芯片,如ARM、DSP、FPGA等为核心、配以外围驱动电路。高性能的处理芯片,处理速度比较快,片资源丰富,库函数丰富,软件编写方便。但是价格贵。分析本题,该系统的处理量并不是很大,所以我们不选择此方案。方案三:以中高档单片机为核心,配以外围驱动外围芯片组成的系统。本系统的设计采用STC12C5A60S2单片机,其特点是高速、低功耗、超强抗干扰,指令代码完全兼容8051,速度快812倍。部集成MAX

6、810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。其部包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片R/C振荡电路等模块。STC12C5A60S2单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。同时价格不高,掌握较易。基于这个特点我们选择这个芯片作为我们的控制核心。 角度传感器的选择与介绍: 数字式倾角(角度)传感器和单片机技术研制而成的现代智能化倾角测量仪器,广泛应用于测量平面和

7、圆柱面对水平方向的倾角度,以及检验各种机床及其它设备工作台及导轨的平面度、直线度和垂直位置的正确度。其特点精度高,使用方便,功能齐全,但不易调节,对调试造成困难。机械式位移传感器,是一种以电压输出与轴旋转角度或直线位移为线性关系的非线绕电位器,其特点是高精度、高寿命、高平滑性、高分辨率。可用作位置反馈、位置检测、电平调节等。该传感器使用简单,稳定。本方案就采用此传感器。接线方式如下图。 接线方法图二 通过分压获得含有角度信息的电压信号,再通过op07进行3倍放大,输入进 STC12C5A60S2单片机的AD输入口。本系统使用了本单片机的10位AD. 目前比较流行直流电机驱动及速度控制采用专用驱

8、动芯片及大功率的晶体管组成的H桥实现。分析本系统,只要求风扇旋转0-60度,所以我们采用了通过单管IFR530配以9014来实现直流风扇的驱动电路如下。控制方式采用Pwm。Pwm信号由STC12C5A60S2单片机的产生。 图三显示部分有多种选择,如数码管、Lcd、点阵屏等,根据本题的特点,我们采用LCD12864来实现控制信息及测量数据的显示。根据题目要求我们选择12v12W的不带调速的直流风扇。二. 本系统软硬件设计系统主要由单片机产生PWM信号,通过大功率的场效应管驱动直流风扇,对其的转速进行控制,使帆板偏离原来的方向,采用角度传感器记录偏移量并实现角度电压的转换,将单片机处理结果在显示

9、在LCD12864。根据题目要求,我们的设计分硬件、软件两部分。2.1 单元硬件电路设计 2.1.1 MCU系统及外围方案设计 因此单片机本身就具有AD口和PWM波的产生端口,所以在其外部进行采集数据时采用了它的AD十位数据存储器。电机驱动直接采用单片机自身的PWM来驱动。其原理图如下所示:图四2.1.2 角度传感器信号采集电路设计 采用机械式角度传感器采集通过分压电路,实现电阻电压转换。用OP07进行信号放大,再通过单片机自带的AD口送入单片机部,进行采集信号的处理,其电路如下:图五 Op07放大电路及传感器信号转换电路图六2.1.3 直流电机风扇的驱动设计 采用单管(IFR530)配以90

10、13驱动电路如下图。 图七2.1.4 语音提示电路设计APR9600进行语音提示,在到达所设定角度时进行相应提示。我们采用的是语音模块。电路如下图。图八2.2 系统显示软件设计 本系统设计采用C51进行设计,目录结构采用树状结构,操作简单方便。图九 2.2.1 PWM波产生 STC12C5A60S2单片机集成了两路可编程计数器阵列,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。根据本题所需,我们采用他的脉宽调制输出,产生相应的PWM波形,用以进行直流电风扇的驱动。其产生过程如下所述:先对与其相关的寄存器和端口进行初始化,然后选择其工作模式和时钟源频率,并对捕获寄存器进行

11、设定,因PWM的输出频率受其占空比影响,而占空比于其捕获寄存器有关。最后将其按照相应的频率变化输出即可。在PWM输出时对应的端口状态如下:图十其在单片机部进行的相关频率计算为: PWM的频率=PCA时钟输入源频率/256。相关数学计算如下:U t 1 t 2 t电机的电枢绕组两端的电压平均值U为: U=(t1*U)/(t1+t2) = (t1*U)/T = D*UD=t/TD为占空比。占空比D表示了在一个周期T里开关导通的时间与周期的比值。D变化围为0D1。当电源电压U不变的情况下,输出电压的平均值U取决于占空比D的大小,改变D也就改变了输出电压的平均值,从而达到控制电机转速的目的。 2.2.

12、2 STC12C5A60S2单片机AD转换的设计STC12C5A60S2自带AD转换端口,根据题目所需,我们使用其AD转换的十位寄存器。在进行AD转换口应用时,先将其AD中断开启,再对其进行初始化,然后启动AD转换,在启动后进行相应延时,给以电压相应的缓冲时间。然后才进行AD转换的信号采集。当所采集的角度电压信号进入后,会自动存入AD存储器,将其从ADC_RES和ADC_RESL中取出后对其进行的相应转换计算如下:=(5A/1023-3.75)/0.014。其中为所要显示的角度,A为由AD口进入的角度电压数字信号,3.75为其基准电压。在处理完后,将其发送至LCD显示模块显示。2.2.3 LC

13、D液晶显示的设计 本系统采用LCD12864屏作为本系统的显示器,12864有两种显示模式,串行及并行两种方式,本系统采用串行通信,采用较少的单片机管脚。液晶显示及树状目录分页是本系统设计的一大特色。 根据本题目要求,我们设计了人性化的开机及操作界面。我们程序设计采用了C语言进行设计,我们都知道C语言基于过程的,但我们树状目录采用类似C+语言的面向对象的变成思路。操作非常简单直观。 我们的显示部分的另一特色是充分发挥了单片机的定时器功能作用,把按键扫描、信息更新、菜单控制等都放到了定时器的中断里,使得控制、数据更新、按键响应及时准确。 2.2.4 AD转化后信号处理及角度控制的PID算法设计

14、我们采用的是STC12C5A60S2自带AD进行模拟信号的转换处理,处理信号不是单片机擅长的,根据本题设计要求,我们在AD信号处理的过程中采用了信号放大100倍来提高信号精度。对于本题中最后要求能再7-15cm 随意位置,5秒实现设定角度的要求,我们设计我们的PID算法,算法框图如下: 图十一 分析此题本题是PID控制中最典型的一种,其算法简单。但题目要求能再在5秒完成这一过程,这是本题的难点。我们通过分析提出了继电器和PWM控制结合的思路。主要思路是,通过控制继电器使风扇在1-2秒获得比较高的转速,然后通过PID算法控制风扇达到设定角度,实验证明此方法极大缩短了风扇提速时间。并最终能再题目要

15、求的时间达到设定角度。3. 系统测试 测试工具是符合国标的普通测角仪器 1、 角度测量测试有一定的误差,经过分析误差主要来之两个部分,帆船风帆的材料的选择理论角度测量值10度11度15度14.8度20度19度30度32度40度39度50度52度55度56.5度60度59.1度2、调整给定角度PID测试理论角度测量值(单位/s)10度3s15度4s20度4s30度5s40度6s50度8s55度8s60度8s系统性能分析与总结4. 系统测试4.1 指标测试和测试结果4.1.1 风扇转速系统的测试 4.1.1.1 出现的问题:电机驱动动力不足,帆板不能准确的到达设定的角度。 4.1.1.2 出现问题

16、的原因及解决方案:原因:经过分析后得出其原因是电机驱动电路的可承受功率有限,且风所吹得角度不是最好角度,当帆板有一定角度是,对帆板的作用力会相对减小。所以很难达到设定角度。解决方案:经过讨论后最后在三个地方一起做修改,最终达到要求。其三个地方是:在帆板的上方加上一定的配重,使其在到达一定角度,吹力减小的同时通过地球对配重的引力,利用跷跷板原理是帆板向上继续旋转,以此补偿风扇在帆板上所减少的吹力。把风扇的放置由水平放置改为带有一定倾角的放置,这样在帆板旋转一定角度后,风扇的吹力仍然可以保持不变。将电机驱动电路由原先的L298N驱动改为了由三极管和半导体功率管以及H桥驱动的电路。这一修改增强了读懂

17、电路的线性,易于调速的控制。4.1.1.3 最终结果:在各项修改后将其结合起来,最终能够精确的控制电机的转速和帆板所需角度的稳定。5. 结论 完成的功能和达到的技术指标 序号具体要求 实现情况 1 用手转动帆板时,能够数字显示帆板的转角 。显示围为060,分辨力为2,绝对误差5。可测角度为0 65度,分辨力为1度,绝对误差为 1度。 2 当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角能够在060围变化,并要时显示。在 15 cm可以实时显示角度。 3 当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角稳定在455围。要求控制过程在10秒完成,实时显示,并由声光提示,以便进行

18、测试。可以控制其稳定在45度左右,并在角度到达后进行相应提示。 4 当间距d=10cm时,通过键盘设定帆板转角,其围为060。要求在5秒达到设定值,并实时显示。最大误差的绝对值不超过5。可以进行相应的固定角度设置,并在限制围到达,进行语音提示。 5 间距d在715cm围任意选择,通过键盘设定帆板转角,围为 060。要求在5秒达到设定值,并实时显示。最大误差的绝对值不超过5。在715cm任意围在5秒实现达到的设定值最大误差绝对值不超过56其他。实现了语音播报功能 参考文献【1】 黄智伟.全国大学生电子设计竞赛技能训练【M】.:航空航天大学,2007.【2】 余凯.模拟电路基础与技能实训教程【M】

19、.:电子工业,2006.【3】 锡鹤.印制电路板电路设计实训教程【M】.:科学,2005.【4】余凯.数字电路基础与技能实训教程【M】.:电子工业,2006.学,2007.附录1主要元器件清单单片机 STC12C5A60S2 1个直流电机 DWJ36-2 1个驱动芯片 ULN2003 1片集成运算放大器 OP07 1块液晶显示 LCD12864 1个附录2 电路原理图及印制电路板图图十二图十三附录3程序清单主程序/=/电子/=/新板复示器/2010,7,10/=#include #include #include #include #define uchar unsigned char#def

20、ine uint unsigned intvoid main(void) uchar i,adv; PWM_NUM=0; init(); initpwm(); P1M1=0x00;P1M0=0xf0; pulse_0(255); ad_inint(); /adpro(); Menu=Open_view; Disp_View(Menu); wait(5000); Menu=Zhuanjiaodisp_view; Lcm_Clear(); Disp_View(Menu); wait(5000); wait(5000); wait(5000); wait(5000); for(adv=0;adv10

21、;adv+) adpro(); Zero_Vadv=(long float)(adbuf)*5/1023; for(adv=0;adv10;adv+) Zero_Vsum+=Zero_Vadv; Zero_V0=Zero_Vsum/10; while(1) key_Deal(); led=led; beep=beep; DelayMs(1000); 子程序void DelayMs(uchar ms) uint j;while(ms-) for(j = 0; j 125; j+);void PWM_clock(uchar clock) CMOD |= (clock1); CL = 0x00; C

22、H = 0x00;void pulse_0(unsigned char p_on) CCAP0L=p_on; CCAP0H=p_on; CCAPM0=0x42; void pulse_1(unsigned char p_on) CCAP1L=p_on; CCAP1H=p_on; void initpwm(void) motor0=0; motor1=1; PWM_clock(1); CR=1; 3.2.2 主界面显示及功能选择:uchar keybuf,keyscanreg,keyin_num;uchar PWM_NUM;uint Time_Flash;#define Gong_Neng 0x

23、07#define ESC 0x0b#define UP 0x0d#define DOWN 0x0euchar Menu,uLMenu; #define Open_view 0x01#define Nor_view 0x02 #define Zhuanjiaodisp_view 0x03 #define Tiaozhengfeng_view 0x04 #define Jiaoduyanshi_view 0x05 #define Shedingjiao_view 0x06 #define Jianju_JiaoTiao_view 0x07 #define Angle_Disp_view 0x08

24、 #define Fengsu_Adj_view 0x09 #define Jiaodu45_Disp_view 0x10 #define SheZhiJiaodu_Disp_view 0x11 /pwm部分/sbit motor=P13;sbit motor0=P11;sbit motor1=P12;/ 延时子程序/void DelayMs(uchar ms)时 uint j;while(ms-) for(j = 0; j 125; j+);void PWM_clock(uchar clock) CMOD |= (clock1); CL = 0x00; CH = 0x00;void puls

25、e_0(unsigned char p_on) CCAP0L=p_on; CCAP0H=p_on; CCAPM0=0x42; void pulse_1(unsigned char p_on) CCAP1L=p_on; CCAP1H=p_on; void initpwm(void) motor0=0; motor1=1; PWM_clock(1); CR=1; /wait(uint dat) uint data i,j; for (j=0;jdat;j+) i=220;while(i!=0)i-;/=/液晶显示命令/=void sendbytelcd(uchar wlcddata) uchar

26、data i; for(i=0;i8;i+) if(wlcddatai)&0x80)lcd_sid=1; else lcd_sid=0; lcd_clk=0;lcd_clk=1;sendcmd(uchar cmd) lcd_cs=1; sendbytelcd(0xf8); sendbytelcd(cmd&0xf0); sendbytelcd(cmd4)&0xf0); lcd_cs=0;wait(3);senddata(uchar odata) lcd_cs=1; sendbytelcd(0xfa); sendbytelcd(odata&0xf0); sendbytelcd(odata4)&0x

27、f0); lcd_cs=0;wait(1);lcd_init() P3M1=0x00;P3M0=0xff; lcd_rst=0;wait(10);lcd_rst=1; sendcmd(0x30);sendcmd(0x0c); sendcmd(0x01);sendcmd(0x02); sendcmd(0x80);sendcmd(0x04); sendcmd(0x0c);/=void Lcm_Clear(void) uchar data i,j; j=0x80; for(i=0;i32;i+) sendcmd(j);j+; senddata(0x20);senddata(0x20); /=cpu_init() P0=0x00; / P2=0xf0; / P1=0x78; / P3=0xf7; / IP=0x10; / TMOD=0x11; / TH0=c_timer0_h; TL0=c_timer0_l; TH1=c_timer1_h; TL1=c_timer1_l; PCON=0x00; SCON=0xf0; TCON=0x50; IE=0x92; EA=1; ET0=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1