欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    全国大学生电子设计竞赛论文F题.docx

    • 资源ID:5594540       资源大小:1.03MB        全文页数:33页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    全国大学生电子设计竞赛论文F题.docx

    1、全国大学生电子设计竞赛论文F题2011年全国大学生电子设计竞赛帆板控制系统F 题【120212组】2011年9月6日摘 要 本文主要介绍了一种帆板控制系统。通过对直流风扇风速的控制,调节风力大小,改变帆板的转角。其主控芯片为MC9S12XS128,通过PWM对电机驱动7960的控制,来调节电机的转速,同时应用光电编码器和倾角传感器作为反应,对整个调速系统进行PID闭环调节,以到所预期的角度。并且介绍了在调试过程中的实时监控、宏观曲线分析和数据分析应用等调试手段。文章着重介绍核心器件的选择、各局部电路、软件的设计和调试手段关键词:PID调速 MC9S12XS128 调试手段帆板控制系统F 题【高

    2、职高专组】1系统方案本系统主要由倾角传感器模块、电机驱动模块、MCU控制模块、电池组成,下面分别论证这几个模块的选择。角度调整系统方案的论证与选择方案一:线性电位WDD35D-4是360连续机械转角的线性电位器,精度可到达1%,将电位器旋钮和电位器分别于帆板和连杆结合,在帆板转动的同时带动旋钮改变阻值,用AD测出电压变化,从而换算出倾斜角度。方案二:飞思卡尔公司的MMA7445 三轴加速度传感器,它MMA7260 三轴加速度传感器功能类似,不同点是它输出的是数字量,同样拥有低功耗,高稳定性等特点。 方案三:飞思卡尔公司的MMA7260 三轴加速度传感器,它具有灵敏度可选,低功耗,高稳定性等特点

    3、,并且输出模拟信号,同时它的体积小,工作可靠,调试倾角方便等特点也是一方面优势。方案一线性度好但是机械结构比拟复杂,方案三输出的是数字量,精度不可调,方案二可以改变外部AD来实现。综合以上三种方案,选择方案三。 电机驱动方案的论证与选择方案一:用三极管搭建H桥来控制电机正反转,通过2个8550和2个8050三极管搭建成H桥,其原理简单,通用,但是负载经过电流太小。方案二:L298N是内部集成的双H桥电路,它的最高电源电压到46 V。直流电流可到达4A。低饱和压降。同时还有过热保护过热时逻辑“0的输入和高噪声免疫力。是一款常用的电机驱动芯片方案三:BTS7960是一款半桥驱动芯片,就是说需要2个

    4、芯片来驱动一个电机,电流最高43A,其内阻很小,所以散热不是很厉害。并且开关频率可到达25kHz以上,同时兼容TTL控制电平。由此可见:方案三无论是最大电流和开通内阻相比于方案一和方案二很优秀。综合考虑我们选用方案三综合以上三种方案,选择方案三。 MCU控制系统的论证与选择方案一:89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器ROM32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但是定时器过少,并且没有PWM和ADC功能。方案二:AVR的MEGA16L是一款高性能、低功耗的 8 位AVR微处

    5、理器,具有高速,还有四通道PWM和8路10 位ADC以及两个可编程的串行USART都是本系统所需的重要资源。方案三:MC9S12XS128拥有最高总线速度40MHz,同时实现了8M存储空间连续寻址,同时还有12位的ADC以及支持16位的SPI有4通道24位周期中断定时期。通过对系统的综合设计考虑以及外设的要求,我们最终选择了MC9S12XS128这款功能更完善,速度更高的单片机。2系统理论分析与计算2.1 帆板受力的分析与计算 帆板转角的原理帆板受力情况如下图2-1-1,再不受外力的作用下,由于物体重力产生一个重力,竖直向下,所以在没有受到风力的作用时,帆板是竖直的,当受到一个水平的风力的时候

    6、,重力和风力合成一个斜向下的力使帆板移动,与竖直方向有一个夹角,当连杆对帆板的拉力等于重力与风力的合力时,帆板可以保持平衡,即理论上的静止,形成一个角度。我们就是利用这一原理通过控制锋利的大小来实现帆板转动或者保存的角度。图2.11 受力情况示意图 帆板的受力分析图2.12 受力分析当风扇翻开时,产生风力F,它与重力G同时作用在翻版上,使帆板与竖直方向角度为的夹角,且 (1)由此可以通过控制F的大小来控制角的大小。当角形成后,帆板的受风面积S也会随之改变 2且 3综公式123所述, 4有上述公式可看出S与G都是的定量,通过对K的控制就能改变的大小,从而完成系统的要求实现功能。 倾角传感器的分析

    7、与计算 倾角传感器系统原理加速度传感器的测量原理本质是两片弹性间距的平板电容,改变间距即改变电容,因而改变输出电压。MMA7260Q的重力感测单元由基于半导体材料的微机械结构构造而成。MMA7260Q以重力为输入矢量来决定物体在空间的姿态,把加速度传感器固定在物体的水平面上,当物体姿态改变时,加速度传感器的敏感轴随之转动一定角度,由于重力的作用,传感器敏感轴上的加速度会发生改变,从而通过正交两个加速度确定出倾角关系。 倾角传感器的计算当传感器处于水平位置时,如图4所示,图中,XOY平面为水平面,Z轴为重力势方向。当传感器以O点为参考点绕X轴或绕Y轴转动时,这时传感器的输出和倾角的关系为:式中,

    8、 ,为传感器X敏感轴和Z敏感轴的输出;g为重力加速度值;为传感器水平面与坐标系水平面上X轴和Y轴的倾斜角度。 电机转速控制的分析与计算 电机转速控制的分析系统需要控制直流电机的转速,在正常情况下,当电机通电时速度增加;电机断电后,速度逐渐减小。控制转速比拟容易实现的就是用单片机输出PWM波,只要按一定规律,改变占空比即可让电机速度得到控制。在电机转速控制的过程中,免不了的要用到各种各样的算法。而我们为了更好地稳定电机速度使用了工业中最常用的PID控制算法。为了算法的设计方便,我们采用了数字PID控制算法。 数字PID控制算法的计算数字PID控制算法在生产过程中是一种最普遍采用的控制方法,在冶金

    9、、机 械、化工等行业中获得广泛应用。究其原因是:该算法蕴涵了动态控制过程中现在(P)、过去(I)和将来(D)的主要信息,具有本质上的鲁棒性、优化控制特性和智能化,算法简单明了,易于掌握。单位反应的PID控制原理框图如图1: 图 PID 控制原理框图单位反应代表理想输入与实际输出的误差,这个误差信号被送到控制器, 控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合, 得到输出量。 (5)其中,、分别称为比例系数、积分系数、微分系数。接着被送到了执行机构,这样就获得了新的输出信号,这个新的输出信号被再次送到感应器以发现新的误差信号,这个过程就这样周而复始地进行。3电路与程序设计电

    10、路的设计系统总体框图系统总体框图如下图,图 系统总体框图 控制电路系统硬件以MC9S12XS128单片机为核心,MC9S12XS128 是一种低功耗、高性能16位微控制器。倾角传感器以电信号形式传给单片机,从而实现单片机对调控系统的控制作用。图 控制电路原理图 键盘管理电路 ZLG7289A是一片具有串行接口的,可同时驱动8为共阴式数码管的智能显示驱动芯片,该芯片同时还可连接多达64键的矩阵键盘,单片机即可完成LED显示,键盘接口的全部功能。图 键盘管理电路原理图 显示系统电路 本系统采用的是ILI9325为控制器的TFT液晶显示屏,分辨率为240X320,能到达26万色,本系统采用STC12

    11、C5A60S2对其进行驱动,在通过主控制器的串口与之进行通信,实时显示数值。 图 显示系统电路3.1.5倾角传感器电路 MMA7260Q输出的模拟信号输入到MC9S12XS128单片机的模拟量转换通道,经过ADC转换形成对应的数字量,从而实现数字倾角传感器。图5倾角传感器电路3.1.6电机驱动电路BTS7960是一款半桥驱动芯片,就是说需要2个芯片来驱动一个电机,电流最高43A,其内阻很小,所以散热不是很厉害。并且开关频率可到达25kHz以上,同时兼容TTL控制电平。图6电机驱动电路3.1.7测速反应电路本系统采用150线的光电编码器对电机进行测速,单片机通过定时器中断来读取脉冲数,进而控制电

    12、机的闭环反应。图7测速反应电路3.1.8电源电路本系统采用7.2V的镍镉电池对整个系统进行供电,本系统采用的低压差线性稳压芯片LM2940,输出电流可到达2A,能满足系统的整体需要。图8电源电路程序的设计程序功能描述与设计思路1、程序功能描述根据题目要求软件局部主要实现键盘的设置、数据的显示和帆板转角的稳定。1键盘的设置局部:通过键盘设定风力大小、设定帆板转角。2数据的显示局部:显示当前角度、设定角度、当前风力、设定风力。3帆板转角的稳定局部:利用工业上常用的PID控制算法来稳定帆板转角。2、程序设计思路根据题目要求实现键盘控制风扇风力以及帆板转角,故设定了风力模式和角度模式。在风力模式下,用

    13、按键直接调整风扇的转速。在角度模式下,用按键调整设定角度再利用PID控制算法对角度进行控制,进而给出风扇转速的控制量再通过PID控制算法对风扇转速进行稳定,从而实现稳定的帆板转角控制。同时,为了测试方便设定45角的一键锁定模式,锁定之后进行声光提示。程序流程图1、主程序流程图图3.22 主程序流程图2、角度、转速双闭环控制子程序流程图图3.23 角度、转速双闭环控制子程序流程图3、键盘子程序流程图图3.24 键盘子程序流程图4、速度控制子程序流程图图3.25 速度控制子程序流程图4测试方案与测试结果测试方案硬件测试通过示波器对电机测速反应电路进行测试,其波形如下列图 所示:完全到达要求,可以应

    14、用。通过万用表对传感器模块电压值进行测量数据如下表所示电压档信号测试结果好下表所示: 单位/V信号值010203040506070显示完全到达要求,可以应用。软件仿真测试1在线调试工具BDM是MC9S12XS128单片机常用的调试手段,在每一局部程序调试通过后,对所有子程序进行整合,编写出完整的主程序,在CodeWarrior 界面完成程序编译后,通过BDM工具,将程序下载到MC9S12XS128微处理器中,然后进行小车的调试。BDM的优点是入门简单、可观察参数全面,特别适用于软硬件静态调试设计阶段;缺点是必须与PC时刻保持有线连接,不能够用于小车的动态调试阶段,整体界面如图4.12。图4.1

    15、2 CodeWarrior IDE V调试界面2MATLAB的仿真MATLAB对于数据的处理统计分析能力较强,故多作为数据的静态分析使用。MATLAB做曲线拟合界面如图4.13所示:图 MATLAB曲线拟合界面3、硬件软件联调无线串口调试工具为了解决在调试过程中能够更清晰明确的看出数据变化,我们应用了一套无线的调试工具。用nRF24L01无线数据传输模块作为数据的传输。把数据通过串口传输电脑上,再利用所做的LabVIEW上位机界面或者是MATLAB所做的上位机界面来作为整个小车监控的一个手段。LabVIEW对于数据的实时处理能力较强,故多作为实时动态监控使用。LabVIEW上位机界面如图4.3

    16、1所示:图4.31 LabVIEW上位机界面4.2 测试条件与仪器测试条件:经屡次检查,仿真电路和硬件电路与系统原理图完全相同,并且检查无误,硬件电路无虚焊,同时测试时保持无风状态。测试仪器:高精度的数字毫伏表,数字示波器,数字万用表,直角三角板,量角器。 4.3 测试结果及分析测试结果(数据)角度距离15304560时间s10cm153144617cm163347649cm1532456211cm1429446013cm1327435915cm12274257测试分析与结论根据上述测试数据,可以清楚地看出不同的距离、不同的风力、不同的风速的数据比照,由此可以得出以下结论:1、电机驱动方案和电

    17、机很重要,一般的电机驱动方案和直流电机很难把帆板吹到60;如果减轻帆板重量那么抖动很厉害;如果连杆太粗糙角度不好控制。2、闭环调速系统很必要,完整的闭环系统在电机和电源工作范围内不在乎距离和偏向角度的问题。3、数据处理手段多样,不但要有实施监控的,还有整体宏观曲线,同时数据的分析与拟合等多种手段。综上所述,本设计到达设计要求。附录1:电路原理图主控原理图主控PCB附录2:源程序/*This program was produced by theCodeWarrior IDE VAutomatic Program GeneratorCopyright 1993-2007 Freescale Se

    18、miconductor,Inc.This program was edited by theEditPlus V2.12.Project : TestIntegralDate : 2011-9-3Author : 付保俊&王杰&郑三江Company : Electrical Make & Repair CenterComments: 整版测试系统,用键盘改变速度。Chip type : MC9S12XS128MAAProgram type : ApplicationBus Clock frequency : 40.000000 MHz*/*用户变量*#define CHANGE_NON 0#d

    19、efine CHANGE_ANGLE 1#define CHANGE_DUTY 2#define ONE_KEY 3/节奏extern unsigned int beat_Sensor=0,beat_Display=0,beat_ect=0,beat_send=0;/ECT data unsigned int ect_data=0,speedSet=0; unsigned int keyTemp; unsigned int g_keyNum=0,g_keyDownFlag=0; unsigned int g_angle=20,g_anglePID=0,g_duty=20; unsigned i

    20、nt g_changeMode=0; unsigned int g_runMode=CHANGE_DUTY; unsigned int g_displayTimeCnt=0; unsigned int g_displayClrCnt=0; unsigned char TxBuf13=0; unsigned int g_colorTimeCnt=0; unsigned int g_colorCnt=0; unsigned int g_soundlightFlag=0; #includeinclude.hvoid init(void) Init_PLL(); /初始化PLL Init_ATD();

    21、 /初始化ATD 角度测量 Init_PIT(); /初始化PIT Init_PID_Data(); /初始化PID Init_ECT(); /编码器 Init_LCD5110(); /液晶显示 Init_KeyINT(); /按键 ZLG7289_init(); /按键 Init_PWM(); /电机驱动 Init_SCI(); PORTB|=0X08;void main(void) /* put your own code here */ unsigned char addrX=0,addrY=0; unsigned int ADValue=0; unsigned int SendCnt=

    22、0; float a; float hudu; float jiaodu; init(); addrX=0; addrY=0; Display_String_LCD5110(&addrX,&addrY,Current Angle:); addrX=0; addrY=2; Display_String_LCD5110(&addrX,&addrY,PWM Duty:); EnableInterrupts;for(;) if (beat_Sensor=10)/350ms采集一次 控制一次 beat_Sensor=0; Process_ATD_Value(&ADValue); a=(float)(do

    23、uble)(ADValue/12.4-170)/80); if (a1) a=1.0; hudu=acos(a); jiaodu=(float)(hudu*180/3.14); jiaodu=DataFilter(unsigned int)jiaodu); switch (g_runMode) case CHANGE_ANGLE: g_anglePID=angle_PID_Con(g_angle,(unsigned int)jiaodu); if (g_anglePID80) g_anglePID=80; if (g_anglePID=20) speedSet=0.086*g_anglePID

    24、*g_anglePID-0.04*g_anglePID+72.5; else if (g_anglePID=25)/由于角度偏低故进行*个脉冲的修正 speedSet=0.092*g_anglePID*g_anglePID-3.32*g_anglePID+138.42;else if (g_anglePID=240)/限制%80占空比M_PWM_Data=240; if (!g_angle) M_PWM_Data=0; Set_MOTOR(M_PWM_Data);/设置电动机速度 break; case CHANGE_DUTY: break; case ONE_KEY: g_anglePID=

    25、angle_PID_Con(g_angle,(unsigned int)jiaodu); if (g_anglePID80) g_anglePID=80; if (g_anglePID=20) speedSet=0.086*g_anglePID*g_anglePID-0.04*g_anglePID+72.5; else if (g_anglePID=25)/由于角度偏低故进行*个脉冲的修正 speedSet=0.092*g_anglePID*g_anglePID-3.32*g_anglePID+138.42; else if (g_anglePID=200)/限制%80占空比 M_PWM_Da

    26、ta=200; Set_MOTOR(M_PWM_Data);/设置电动机速度 if (!g_soundlightFlag&(jiaodu=40)&(jiaodu=50) g_soundlightFlag=1; TxBuf0=(unsigned char)5; TxBuf1=(unsigned char)0; TxBuf2=(unsigned char)0; TxBuf3=(unsigned char)5; for (SendCnt=0;SendCnt4;SendCnt+) while(!(SCI0SR1&0x80); SCI0DRL=TxBufSendCnt; if (g_soundlight

    27、Flag&(jiaodu50) g_soundlightFlag=0;/消除声光提示 TxBuf0=(unsigned char)6; TxBuf1=(unsigned char)0; TxBuf2=(unsigned char)0; TxBuf3=(unsigned char)6; for (SendCnt=0;SendCnt=500)/500ms显示一次 beat_Display=0; Display_Acsii_Senser_LCD5110(0,1,(unsigned int)jiaodu); Display_Acsii_Senser_LCD5110(25,1,g_anglePID);/取小数点儿后一位 Display_Acsii_Senser_LCD5110(50,1,g_angle); Display_Acsii_Senser_LCD5110(0,3,g_duty); Display_Acsii_Sens


    注意事项

    本文(全国大学生电子设计竞赛论文F题.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开