帆板控制系统设计(F题).doc_第1页
帆板控制系统设计(F题).doc_第2页
帆板控制系统设计(F题).doc_第3页
帆板控制系统设计(F题).doc_第4页
帆板控制系统设计(F题).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

帆板控制系统设计(F题) 摘要:本系统以单片机STC12C5A48S2为控制核心及数据处理核心,采用加速度传感器MMA7260作为角度检测的核心器件,设计并制作了一个帆板控制系统。以L293构成电机的电路,通过对风扇转角的控制,调节风力的大小,改变帆板的转角。可以通过键盘设置帆板转角060o,并在LCD上实时显示。使用了PID算法,使系统能快速达到稳定。由于采用了低功耗单片机,并且使用了一些高性价比、低功耗的器件去设计电路,因此本放大器具有成本低,功耗小,性价比高的优点。关键词:控制系统;角速度传感器;单片机;PID; 一、方案比较与选择题目分析:综合分析题目要求,转动帆板时,实现实时显示角度,且能够通过键盘控制风力,是本题的最大难点,也是设计的重点之一。另一难点是使帆板转角达到60o。要得到更好的性能指标,放大电路的零点漂移也是一个很难解决的问题。此外,在整个电路的设计中,要考虑其成本。1、数据处理和控制核心选择方案一:采用DSP最小系统板。即由DSP来实现电机的控制、传感器信号采集和人机界面控制等功能。方案二:采用单片机STC12C5A48S2最小系统板。即由单片机STC12C5A48S2实现整个系统的统一控制和数据处理。本系统不涉及大量的数据存储和复杂处理,虽然方案一控制更灵活更方便,但DSP的资源得不到充分利用,且系统规模大,成本高。而单片机STC12C5A48S2是一种8位低功耗微、高性能处理器,具有丰富的片上外设和较强的运算能力,且可串口编程,使用十分方便,性价比高。综上所述,故采用方案二。2、角度传感器的比较与选择方案一:角度传感器KMZ41与信号调理芯片UZZ9001组成的角度采集模块。KMZ41与信号调理芯片UZZ9001一起,能够对180范围内的角度信号进行测量,并利用SP I方式提供11位的角度信号输出。调试繁琐,且电路稳定性差。方案二:采用MMA7260三轴加速度传感器。这个三轴加速度计用的是Freescale(飞思卡尔)公司生产性价比高微型电容式加速度传感器MMA7260芯片。用三轴加速度计利用重力分量换算原理,来测量角度与其他数字量倾角传感器相比自然要精准许多,因为模拟量的,可将电压值换算对应倾斜角度值,所以在许多需要测量角度的场合,非运动的条件下,不妨可以试试使用加速度计。综上所述,采用方案二,电路集成度高、控制方便、易于用单片机处理。3、显示系统的比较与选择 方案一:用数码管进行显示。数码管由于显示速度快,使用简单,显示效果简洁明了而得到了广泛应用。但是由于本题中要同时显示两个方向的倾斜角度,用数码管无法显示如此丰富的内容。方案二:用LCD液晶进行显示,由于其显示清晰,内容丰富、清晰,信息量大,使用方便。综上所述,本系统要显示的内容较丰富,采用方案二。二、总体方案设计及系统方框图本设计由角度传感器,经单片机控制器采集角度信息,再由单片机控制信号到驱动板,以调节风扇的转速,从而控制帆板的角度。根据设计要求,此系统难点在于角度传感器的选取,及对于流体力学控制。因此,为能够检测到角度,本系统采用加速度传感器,利用重力分量,从而得到帆板的角度。对于自动调节帆板的角度,是由风扇的转速决定,而风扇是直流电机,对于直流电机的调速,本设计的驱动方式采用双H桥并联,控制信号上采用了PWM的调节方式,并可以调节电机运行在四象限。由于系统设计各数据的难以测量,如风叶片与风流大小,风向的扩散性等因数。为了能够在自动稳定在设定的角度内,本设计采用PID的算法,通过试验方法,可以从采样频率,及调节PID三个参数中,方便找到合适的值,以快速控制帆板到达设定的值。图2-1 系统总体框图三、理论分析与计算帆板系统控制算法采用了PID算法,包括3个部分:测量、比较和执行,即把测量得到的量与期望值相比较,然后用合格误差纠正调节控制系统的响应。PID控制算法是建立在经典控制理论上的一种控制策略。PID控制算法能够在保证基本不影响系统稳定精度的前提下提高系统的稳定性,并很好的改善系统的动态性能。PID控制器原理框图如图3所示。图3-1 PID控制器原理框图系统主要由PID 控制器和被控对象组成。它根据给定值与实际输出值构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。PID的图形表达式:上式中为积分时间常数,为微分时间常数,为比例系数,为误差项,为控制量。 若令采样时间为,离散控制算法为:上式中是采样周期,必须足够小,以保证系统有一定的精度,为调节器的积分时间,为调节器微分时间,为调节器的比例系数,为第次采样时的偏差值,为控制量。采用增量式PID进行控制,由,可得到如下式子:上式中为第次与中心位置的偏差程度,、分别为、次误差项,以此算法为基础,很容易用C语言编写出控制算法程序。四、主要硬件电路设计1、风扇控制电路L293的驱动方式比较简单,详细可见L293的说明书,这样简略说明,L293有两个电压输入,一个给电机的电压,一个是给芯片工作与控制逻辑的参考电压。L293相当于有四个驱动门,每个IN1,对应该一个OUT1,当IN1为高电平是,OUT1输出高电平,电压为VSS,也就是给这个芯片电机的供电电压。对于设计中采用的直流电机,因此调节直流电机的转速,采用了L293驱动芯片。由于一片L293内部有两路H桥,为了增大驱动能力,本设计中,把L293的两路H桥并联,即输入信号成输出引脚直接并联。因为本设计中控制方面,采用PWM信号控制,而电机运行在四象限,即正转,反转,停车,自由滑行。所以在PWM关断时刻,要为电机有一个续流通道,所以在H桥上均设计到续流二极管。同时为了可以方便测试,本设计中,为电机的两端输出接上指示的LED。L293驱动电路如图所示。 图4-1 L293驱动电路2、角度测量电路下图是MMA7260三轴加速度计的结构图。图4-2 MMA7260三轴加速度计的结构图G1和G2两位数字量输入4种组合代表4中量程。G1G2量程选择灵敏度选择001.5g800mV/g012g600mV/g104g300mV/g016g200mV/g通过实验,可以输出测得的模拟值,然后通过将模拟值转换成电压值再参考MMA7260芯片手册就可以得知物体的姿态或者角度了。将X、Y、Z三接口分别接到单片机的模拟0、1、2接口,EN使能和3.3V短接。3、控制电路本设计采用的单片机为STC公司型号为:STC12C5A48S2的单片机,其中35个IO口分配为:P0与P4.4-P4.6为1602液晶显示的接口,P2接4*4的矩阵键盘,P3.4-P3.6控制电机方向与转速,P3.6接一只LED,P3.7接一蜂鸣器。P1.0接角度传感器的电压模拟量,P0.2接一电位器,控制板的原理图如图所示图4-3 控制板原理图五、程序设计本系统设计可分为四种模式:1,风扇不转,调节帆板,可以显示角度;2,控制风扇转动,调节风扇量,实时显示角度;3,输入一个设定的角度;4,根据设定角度,由系统自动调节风扇,把帆板吹动到设定角度,并保持平衡。因此,为系统设计的4*4矩阵键盘,4种模式,分别由键盘上的“A”,“B”,“C”,“D”。设计程序入口。图5-1 主程序流程图六、测试数据与结果分析1、测试仪器及型号数字示波器 Tektronix TDS 1002;直流稳压电源CALTEK-CA17303D; 三位半万用表UT33D; 量角器; 秒表2、测试方案安装好硬件,接通电源,风扇开始以小转速转动,此时,帆板角度几乎不变化,然后,按下加速键,调整帆板的角度,帆板实际转角与液晶显示的角度进行比较,得出实验数值。3、测试结果基本要求测试当风扇页面与帆板的距离d=10cm 时,通过键盘控制风力大小,使帆板转角在0范围内变化,实际值、测量值和偏差如下表:表1 d=10cm 时测试序号实际值(度)测量值(度)偏差(度)100025503109-141515052017-362526+173030083534-1940400104544-11150500125554-1136061+1发挥部分测试当间距d在715cm范围内任意选择,通过键盘设定帆板转角,范围在0变化,测试结果如下表:d=7cm时的测试结果表1 d=7cm 时测试序号实际值(度)测量值(度)偏差(度)1000255031010041514-152019-162525073031+183534-1940400104544-1115052+21255550136059-1d=11cm时的测试结果表1 d=11cm 时测试序号实际值(度)测量值(度)偏差(度)1000254-131010041514-152020062523-273030083536+194039-110454501150500125554-1136061+1d=15cm时的测试结果表1 d=15cm 时测试序号实际值(度)测量值(度)偏差(度)100025503109-141514-152021+162528+373030083534-1940400104547+2115051+1125554-1136059-13、测试结果分析 从测试数据结果来看,所有测试结果精度都较高,误差极小。在d=15cm时,误差只有。本系统能够达到这样的高精度,首先是由于本系统PID自动调节功能功能,在很大程度上减小了误差。七、总结本帆板控制系统完成了题目中所有的基本要求和发挥部分的要求,本设计的亮点是在设计中运用到了PID调控方法,此方法在系统中能很好的消除系统性的误差,使得精确度更高。同时本设计的另一个亮点是在控制风力方面,运用键盘控制的同时辅助以电位器控制,这样在调节范围方面更加精确。整个系统的设计成本较低,性价比高。八、参考文献1 曹宇;翁惠辉;陈永军;冯定;. 基于dsPIC30F4013控制器旋转角度检测系统的研究 J. 长江大学学报(自然科学版), 2011.01 2 余梦迪,董明亮,马彦文,孙立. IAM1智能测角仪的研制 J. 矿冶工程, 1994.03 3 邓宏贵;吴让亮;施佳佳;. 数字角度传感器在建筑角度测量仪中的应用 J. 传感技术学报, 2010.08 4 王启东,陈纯坤. 激光动态角度测量系统研究 J. 光子学报, 1995.01 5 夏晓晶. 单片机实现的仿人智能PID控制器D大连海事大学, 2004 . 6 李名慧. 智能PID控制器的设计与应用D天津大学, 2006 . 7 纪佳彤. PID自整定控制仪的研制与开发D大连理工大学, 2008 . 附录1、系统电路图2、主程序include#include1602.h#includeAD_UART.h#include#include #include #includekeyboard.h#includedouble SetPoint; / 设定目标 Desired Valuedouble Proportion; / 比例常数 Proportional Constdouble Integral; / 积分常数 Integral Constdouble Derivative; / 微分常数 Derivative Constdouble LastError; / Error-1double PrevError; / Error-2double SumError; / Sums of Errorsint pre_speed=0;int pre_angle=0;float M_pid=0;sbit EN1=P33; /与驱动板的接线,对应L293驱动板上的6个信号sbit IN1=P34;sbit IN2=P35;sbit LED=P36;sbit beed=P37; /定义了蜂鸣器与单片机的连接sbit GS1=P13;sbit GS2=P14;sbit SLEEP=P15;int speed_R=0; /定义电机的速度,有正负之分,为正是,正转。(范围100100)int speed=0;unsigned int get_speed_v=0;unsigned int set_angle=0;unsigned int set_angle_buff2=0;unsigned int now_angle=0;unsigned int cnt_s=0;/用于计数PWM的点空比0100;unsigned int cnt=0;/0.1ms unsigned int cnt_set=0; /设定计数,用于采用电位器的电压。unsigned int cnt_time; /用于软件延时int angle_err=0;int get_ang=0;int set_ang=0;unsigned char flag_auto=0;unsigned int x_value=0;unsigned int y_value=0;unsigned int z_value=0;unsigned int value=0;unsigned int angle3=0;unsigned char key;unsigned char pattern=0; /用于控制程序执行不同的功能,通过键盘切换unsigned char flag_pid=0;/*delay*/void delay2(unsigned int t)unsigned int j,k;for(t;t0;t-)for(j=50;j0;j-)for(k=100;k0;k-);/*1602显示*/void display_1602()unsigned char w4,i;unsigned long temp;temp=x_value;w0=temp/10%10;w1=temp%10;for(i=0;i2;i+)print2(3+i,wi);temp=y_value;w0=temp/10%10;w1=temp%10;for(i=0;i2;i+)print2(13+i,wi);temp=z_value;w0=temp/100%10;w1=temp/10%10;w2=temp%10;for(i=0;i0)IN1=0;IN2=1;speed_R=m_R;else if(m_R0)IN1=1;IN2=0;m_R=-m_R;speed_R=m_R;elseIN1=0;IN2=0;void sample_ang(unsigned int ch)unsigned int i;unsigned char ang_value10=0;unsigned long all_value=0;for(i=0;i=speed_R)EN1=0;if(cnt_s=100)EN1=1;cnt_s=0;if(cnt=2000 ) /50ms 采样角度sample_ang(0);get_ang=abs(angle0-40)*1.8;if(abs(get_ang-pre_angle)10)get_ang=(get_ang+pre_angle)/2;elseget_ang=pre_angle;pre_angle=get_ang;x_value=get_ang;display_1602();cnt=0;flag_auto=1;cnt_time+;/* PID */double PIDCalc( double NextPoint ) double dError, Error; Error = set_angle - NextPoint; / 偏差 SumError += Error; / 积分 dError = LastError - PrevError; / 当前微分 PrevError = LastError; LastError = Error; return (Proportion * Error / 比例项 + Integral * SumError / 积分项 + Derivative * dError / 微分项 );/* main */void main(void)int test=0;unsigned int num=0; Proportion = 2.25; / Set PID Coefficients Integral = 0.11; Derivative = 0.0;CLK_DIV=0x01;/系统分频工作,速度太快,1602控制不了。init_T0();/初始化定时器。 InitADC(); /Init ADC sfrinit_port();LCM2402_Init();print(0x00,A);print(0x01,:);print(0x05,1);print(0x08,Set:);print(0x0f,1);print(0x40,Fan:); /

温馨提示

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

评论

0/150

提交评论