首页 3_帆板控制系统

3_帆板控制系统

举报
开通vip

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

3_帆板控制系统
帆板控制系统设计报告(F 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ) 摘要: 该系统,以STC12C5A60S2单片机作为主控制器,产生PWM波,经过大功率功管IRF530芯片驱动电机让风叶转动,使帆板发生角度偏移,由角度传感器(型号WDJ22G—A6)将角度的变化转化为电压,然后经OP07放大器传送到单片机的P1.2口(即ADC口),通过单片机的A/D进行AD采样转换,对角度传感器采集到的电压进行分析和处理,转换成代表角度的数字信号,采集的信号最终由LCD12864显示。此外系统还可以通过按键随时控制风力大小,使帆板固定在某一转角上,并有声光、语音提示,以便进行测试。整个测量的分辨力为1度左右,绝对误差为1度。 关键字: 单片机、机械式角度传感器、PID,PWM 目录 1系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证及方案选择 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 总体设计方案 题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板Ø,并能实时显示其转角大小。设计主要由主控单片机STC12C5A60S2驱动直流电机,使风扇工作,带动帆板的转动,由角度传感器将偏移量进行电阻—电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号显示在LCD12864上,APR9600进行语音提示,当帆板角度到达所设定角度后,会进行提示,或者每变化多少度后进行一次提示。 图一 1.2方案论证与选择 1.2.1 设计要求及思路 题目要求设计一个帆板控制系统,通过对风扇转速的控制,调节风力的大小,改变帆板Ø,并能实时显示其转角大小。我们设计主要有主控单片机STC12C5A60S2控制直流电机(驱动芯片IFR530),使风扇工作,带动帆板的角度转动,由角度传感器将偏移量进行电阻—电压的转换,转换结果通过运算放大器OP07进行传输,单片机的AD口对采集到的数据进行分析与处理,最后将转换的数字信号在LCD液晶显示屏上显示。 1.2.2 方案论证与选择 风扇转速控制系统的方案论证与选择 方案一:以普通单片机为核心,配以外围电路。 采用AT89C52单片机,单片机模拟产生PWM,通过H桥及专用的驱动芯片。如: L298N驱动直流风扇,角度信号通过专用的数字芯片、光电编码器、旋转变压器、机械式角度传感器等,实现角度测量。再配以LCD屏、数码管、TFT屏、点阵屏等实现控制信息以及数字信息的显示。由于普通单片机功能有限,因此在使用时外围电路较复杂,所以在较短时间实现与完成稳定性、可靠性较差。 方案二: 以高性能的处理芯片,如ARM、DSP、FPGA等为核心、配以外围驱动电路。高性能的处理芯片,处理速度比较快,片内资源丰富,库函数丰富,软件编写方便。但是价格贵。分析本题,该系统的处理量并不是很大,所以我们不选择此方案。 方案三:以中高档单片机为核心,配以外围驱动外围芯片组成的系统。 本系统的设计采用STC12C5A60S2单片机,其特点是高速、低功耗、超强抗干扰,指令代码完全兼容8051,速度快8—12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。其内部包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振荡电路等模块。STC12C5A60S2单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片上系统。同时价格不高,掌握较易。基于这个特点我们选择这个芯片作为我们的控制核心。 角度传感器的选择与介绍: 数字式倾角(角度)传感器和单片机技术研制而成的现代智能化倾角测量仪器,广泛应用于测量平面和圆柱面对水平方向的倾角度,以及检验各种机床及其它设备工作台及导轨的平面度、直线度和垂直位置的正确度。其特点精度高,使用方便,功能齐全,但不易调节,对调试造成困难。机械式位移传感器,是一种以电压输出与轴旋转角度或直线位移为线性关系的非线绕电位器,其特点是高精度、高寿命、高平滑性、高分辨率。可用作位置反馈、位置 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 、电平调节等。该传感器使用简单,稳定。本方案就采用此传感器。接线方式如下图。 接线 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 图二 通过分压获得含有角度信息的电压信号,再通过op07进行3倍放大,输入进 STC12C5A60S2单片机的AD输入口。本系统使用了本单片机的10位AD. 目前比较流行直流电机驱动及速度控制采用专用驱动芯片及大功率的晶体管组成的H桥实现。分析本系统,只要求风扇旋转0-60度,所以我们采用了通过单管IFR530配以9014来实现直流风扇的驱动电路如下。控制方式采用Pwm。Pwm信号由STC12C5A60S2单片机的产生。 图三 显示部分有多种选择,如数码管、Lcd、点阵屏等,根据本题的特点,我们采用LCD12864来实现控制信息及测量数据的显示。根据题目要求我们选择12v12W的不带调速的直流风扇。 本系统软硬件设计 系统主要由单片机产生PWM信号,通过大功率的场效应管驱动直流风扇,对其的转速进行控制,使帆板偏离原来的方向,采用角度传感器 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 偏移量并实现角度—电压的转换,将单片机处理结果在显示在LCD12864。根据题目要求,我们的设计分硬件、软件两部分。 2.1 单元硬件电路设计 2.1.1 MCU系统及外围方案设计 因此单片机本身就具有AD口和PWM波的产生端口,所以在其外部进行采集数据时采用了它的AD十位数据存储器。电机驱动直接采用单片机自身的PWM来驱动。其原理图如下所示: 图四 2.1.2 角度传感器信号采集电路设计 采用机械式角度传感器采集通过分压电路,实现电阻电压转换。用OP07进行信号放大,再通过单片机自带的AD口送入单片机内部,进行采集信号的处理,其电路如下: 图五 Op07放大电路及传感器信号转换电路 图六 2.1.3 直流电机风扇的驱动设计 采用单管(IFR530)配以9013驱动电路如下图。 图七 2.1.4 语音提示电路设计 APR9600进行语音提示,在到达所设定角度时进行相应提示。我们采用的是语音模块。电路如下图。 图八 2.2 系统显示软件设计 本系统设计采用C51进行设计,目录结构采用树状结构,操作简单方便。 图九 2.2.1 PWM波产生 STC12C5A60S2单片机集成了两路可编程计数器阵列,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。根据本题所需,我们采用他的脉宽调制输出,产生相应的PWM波形,用以进行直流电风扇的驱动。其产生过程如下所述:先对与其相关的寄存器和端口进行初始化,然后选择其工作模式和时钟源频率,并对捕获寄存器进行设定,因PWM的输出频率受其占空比影响,而占空比于其捕获寄存器有关。最后将其按照相应的频率变化输出即可。在PWM输出时对应的端口状态如下: 图十 其在单片机内部进行的相关频率计算为: PWM的频率=PCA时钟输入源频率/256。 相关数学计算如下: U t 1 t 2 t 电机的电枢绕组两端的电压平均值U为: U=(t1*U)/(t1+t2) = (t1*U)/T = D*U D=t/T D为占空比。 占空比D表示了在一个周期T里开关导通的时间与周期的比值。D变化范围为0≤D≤1。当电源电压U不变的情况下,输出电压的平均值U取决于占空比D的大小,改变D也就改变了输出电压的平均值,从而达到控制电机转速的目的。 2.2.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 LCD液晶显示的设计 本系统采用LCD12864屏作为本系统的显示器,12864有两种显示模式,串行及并行两种方式,本系统采用串行通信,采用较少的单片机管脚。液晶显示及树状目录分页是本系统设计的一大特色。 根据本题目要求,我们设计了人性化的开机及操作界面。我们程序设计采用了C语言进行设计,我们都知道C语言基于过程的,但我们树状目录采用类似C++语言的面向对象的变成思路。操作非常简单直观。 我们的显示部分的另一特色是充分发挥了单片机的定时器功能作用,把按键扫描、信息更新、菜单控制等都放到了定时器的中断里,使得控制、数据更新、按键响应及时准确。 2.2.4 AD转化后信号处理及角度控制的PID算法设计 我们采用的是STC12C5A60S2自带AD进行模拟信号的转换处理,处理信号不是单片机擅长的,根据本题设计要求,我们在AD信号处理的过程中采用了信号放大100倍来提高信号精度。对于本题中最后要求能再7-15cm 内随意位置,5秒内实现设定角度的要求,我们设计我们的PID算法,算法框图如下: 图十一 分析此题本题是PID控制中最典型的一种,其算法简单。但题目要求能再在5秒内完成这一过程,这是本题的难点。我们通过分析提出了继电器和PWM控制结合的思路。主要思路是,通过控制继电器使风扇在1-2秒获得比较高的转速,然后通过PID算法控制风扇达到设定角度,实验证明此方法极大缩短了风扇提速时间。并最终能再题目要求的时间内达到设定角度。 3. 系统测试 测试工具是符合国标的普通测角仪器 1、 角度测量 测试有一定的误差,经过分析误差主要来之两个部分,帆船风帆的材料的选择 理论角度 测量值 10度 11度 15度 14.8度 20度 19度 30度 32度 40度 39度 50度 52度 55度 56.5度 60度 59.1度 调整给定角度PID测试 理论角度 测量值(单位/s) 10度 3s 15度 4s 20度 4s 30度 5s 40度 6s 50度 8s 55度 8s 60度 8s 系统性能分析与总结 4. 系统测试 4.1 指标测试和测试结果 4.1.1 风扇转速系统的测试 4.1.1.1 出现的问题: 电机驱动动力不足,帆板不能准确的到达设定的角度。 4.1.1.2 出现问题的原因及解决方案: 原因:经过分析后得出其原因是电机驱动电路的可承受功率有限,且风所吹得角度不是最好角度,当帆板有一定角度是,对帆板的作用力会相对减小。所以很难达到设定角度。 解决方案:经过讨论后最后在三个地方一起做修改,最终达到要求。其三个地方是: ①在帆板的上方加上一定的配重,使其在到达一定角度,吹力减小的同时通过地球对配重的引力,利用跷跷板原理是帆板向上继续旋转,以此补偿风扇在帆板上所减少的吹力。 ②把风扇的放置由水平放置改为带有一定倾角的放置,这样在帆板旋转一定角度后,风扇的吹力仍然可以保持不变。 ③将电机驱动电路由原先的L298N驱动改为了由三极管和半导体功率管以及H桥驱动的电路。这一修改增强了读懂电路的线性,易于调速的控制。 4.1.1.3 最终结果: 在各项修改后将其结合起来,最终能够精确的控制电机的转速和帆板所需角度的稳定。 5. 结论 完成的功能和达到的技术指标 序号 具体要求 实现情况 1 用手转动帆板时,能够数字显示帆板的转角Ø 。显示范围为0~60°,分 辨力为2°,绝对误差≤5°。 可测角度为0~ 65度,分辨力为1度,绝对误差为 1度。 2 当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角Ø能够在 0~60°范围内变化,并要求实时显 示Ø。 在 15 cm内可以实时显示角度。 3 当间距d=10cm时,通过操作键盘控制风力大小,使帆板转角Ø稳定在 45°±5°范围内。要求控制过程在 10秒内完成,实时显示Ø,并由声光 提示,以便进行测试。 可以控制其稳定在45度左右,并在角度到达后进行相应提示。 4 当间距d=10cm时,通过键盘设定帆板转角,其范围为0~60°。要求Ø在5秒内达到设定值,并实时显示Ø。最大误差的绝对值不超过5°。 可以进行相应的固定角度设置,并在限制范围内到达,进行语音提示。 5 间距d在7~15cm范围内任意选择,通过键盘设定帆板转角,范围为 0~60°。要求Ø在5秒内达到设定值,并实时显示Ø。最大误差的绝对值不超过5°。 在7~15cm任意范围内在5秒内实现达到的设定值最大误差绝对值不超过5° 6 其他。 实现了语音播报功能 参考文献 【1】 黄智伟.全国大学生电子设计竞赛技能训练【M】.北京:北京航空航天大学出版社,2007. 【2】 孙余凯.模拟电路基础与技能实训教程【M】.北京:电子工业出版社,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 #define uint unsigned int void 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;adv<10;adv++) { adpro(); Zero_V[adv]=(long float)(adbuf)*5/1023; } for(adv=0;adv<10;adv++) { Zero_Vsum+=Zero_V[adv]; } 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 |= (clock<<1); CL = 0x00; CH = 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 0x07 #define ESC 0x0b #define UP 0x0d #define DOWN 0x0e uchar 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 #define Fengsu_Adj_view 0x09 #define Jiaodu45_Disp_view 0x10 #define SheZhiJiaodu_Disp_view 0x11 //////////////pwm部分////////////////////// //sbit motor=P1^3; sbit motor0=P1^1; sbit motor1=P1^2; ////////////////////// 延时子程序///////////////////////////// void DelayMs(uchar ms)时 { uint j; while(ms--) { for(j = 0; j <125; j++); } } void PWM_clock(uchar clock) { CMOD |= (clock<<1); CL = 0x00; CH = 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; } ///////////////////////////////////////// wait(uint dat) { uint data i,j; for (j=0;j=0)&&(PWM_NUM<=255)) PWM_NUM+=2; pulse_0(PWM_NUM); PWM_DISPLAY(PWM_NUM); break; case Jiaodu45_Disp_view: // if((PWM_NUM>=0)&&(PWM_NUM<=255)) PWM_NUM+=2; pulse_0(PWM_NUM); PWM_DISPLAY(PWM_NUM); break; case SheZhiJiaodu_Disp_view: if(J_ShuRu<60)J_ShuRu++; if(J_ShuRu==60)J_ShuRu=0; Disp_Buff[0]=J_ShuRu/10; Disp_Buff[1]=J_ShuRu%10; sendcmd(0x88+5); senddata(Disp_Buff[0]+0x30); senddata(Disp_Buff[1]+0x30); break; default:break; } } void DOWN_Deal(void) { switch(Menu) { case Zhuanjiaodisp_view: Disp_View(Tiaozhengfeng_view); break; case Tiaozhengfeng_view: Disp_View(Jiaoduyanshi_view); break; case Jiaoduyanshi_view: Disp_View(Shedingjiao_view); break; case Shedingjiao_view: Disp_View(Jianju_JiaoTiao_view); break; case Fengsu_Adj_view: if((PWM_NUM>=0)&&(PWM_NUM<=255)) PWM_NUM-=2; pulse_0(PWM_NUM); PWM_DISPLAY(PWM_NUM); break; case Jiaodu45_Disp_view: if((PWM_NUM>=0)&&(PWM_NUM<=255)) PWM_NUM-=2; pulse_0(PWM_NUM); PWM_DISPLAY(PWM_NUM); break; case SheZhiJiaodu_Disp_view: if(J_ShuRu>0)J_ShuRu--; if(J_ShuRu==0)J_ShuRu=60; Disp_Buff[0]=J_ShuRu/10; Disp_Buff[1]=J_ShuRu%10; sendcmd(0x88+5); senddata(Disp_Buff[0]+0x30); senddata(Disp_Buff[1]+0x30); break; default:break; } } void key_Deal(void) { if(keyin_num!=0x0f) { switch(keyin_num) { case Gong_Neng: Gong_Neng_Deal(); break; case ESC: ESC_Deal(); break; case UP: UP_Deal(); break; case DOWN: DOWN_Deal(); break; default:break; } keyin_num=0x0f; } } //====================================== disp_huanying() { uchar data i,j,p; j=0x80; for(i=0;i<32;i++) {sendcmd(j);j++; senddata(0x20);senddata(0x20);} j=0x80;p=0; for(i=0;i<8;i++) {sendcmd(j);j++; senddata(open1[p]);p++; senddata(open1[p]);p++; } j=0x88;p=0; for(i=0;i<8;i++) {sendcmd(j);j++; senddata(open2[p]);p++; senddata(open2[p]);p++; } } //=================================================== //定时中断 //=================================================== intt0() inte
本文档为【3_帆板控制系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_677394
暂无简介~
格式:doc
大小:373KB
软件:Word
页数:48
分类:工学
上传时间:2013-08-10
浏览量:35