《毕业设计帆板控制系统.doc》由会员分享,可在线阅读,更多相关《毕业设计帆板控制系统.doc(26页珍藏版)》请在三一办公上搜索。
1、张家界航空工业职业技术学院毕业设计报告设计题目: 帆板控制系统 专业名称: 电子信息工程技术 学生班级: 学生姓名: 学生学号: 指导教师: 2012年4月8号 摘要: 本帆板控制系统由单片机ATMEGA328作为帆板转角的检测和控制核心,实现按键对风扇转速的控制、调节风力的大小、改变帆板转角、液晶显示等功能。引导方式采用角度传感器感知与帆板受风力大小的转角的导引线。通过PWM波控制电机风扇风力的大小使其改变帆板摆动的角度。风扇控制核心采用L298电机驱动模块,用ATMEGA328单片机为控制核心,产生占空比受数字PID算法控制的PWM脉冲,实现对直流电机转速的控制,同时利用光电传感器将电机速
2、度转化成脉冲频率反馈到单片机中,实现转速闭环控制,达到转速无静差调节的目的。MMA7455三轴加速传感器把角度输出信号传送给ATMEGA328单片机进行处理。关键词: ATMEGA328,MMA7455,PWM波,PID算法Abstract: The This windsurfing control system by the microcontroller ATMEGA328 as windsurfing corner detection and control of the core to achieve the size of the buttons for fan speed cont
3、rol, adjust the wind, changing windsurfing corner , LCD functions. Guide to angle sensor perception and windsurfing by the wind the size of the corner of guides. PWM wave control the size of the motor fan wind to change the the windsurfing swing angle . Core fan control L298 motor driver module, ATM
4、EGA328 microcontroller to control the core, resulting in a duty cycle of the digital PID control algorithm of the PWM pulse of the DC motor speed control, while taking advantage of the photoelectric sensor to the motor speed is converted into a pulse frequency feedback to the MCU, the speed closed-l
5、oop control to achieve the speed static error adjustment purposes. The MMA7455 triaxial acceleration sensor angle output signal transmitted to the ATMEGA328 microcontroller for processing.Keywords: ATMEGA328, MMA7455 PWM wave, the PID algorithm张家界航空工业职业技术学院毕业设计(论文)目录1. 系统设计 31. 设计要求 31.1.1 基本要求 31.1
6、.2 发挥部分 41.1.3 说明 41.2总体设计方案 41.2.1 设计思路51.2.2 方案论证与比较51.2.3 系统的组成 62. 单元电路设计82.1 风扇控制电路92.2角度测量原理92.3控制算法103. 软件设计 123.1风扇控制电路设计计算 133.2控制算法设计与实现133.3程序流程图134. 系统测试144.1 调试使用的仪器与方法144.2 测试数据完整性 144.3 测试结果分析144.4 结束语155. 总结 15参考文献15附录1 元器件明细表16附录2 电路图图纸17附录3 程序清单17张家界航空工业职业技术学院毕业设计(论文)1.系统设计1.1设计要求
7、设计并制作一个帆板控制系统,通过对风扇转速的控制,调节风力大小,改变帆板转角,如图 1 所示。 1.1.1 基本要求(1)用手转动帆板时,能够数字显示帆板的转角。显示范围为060,分辨力为2,绝对误差5。 (2)当间距 d=10cm 时,通过操作键盘控制风力大小,使帆板转角能够在 060范围内变化,并要求实时显示。 (3)当间距 d=10cm 时,通过操作键盘控制风力大小,使帆板转角稳定在 455范围内。要求控制过程在10 秒内完成,实时显示,并由声光提示,以便进行测试。1.1.2发挥部分(1) 当间距 d=10cm 时,通过键盘设定帆板转角,其范围为 060。要求在 5 秒内达到设定值,并实
8、时显示。最大误差的绝对值不超过5。 (2) 间距 d 在 715cm 范围内任意选择,通过键盘设定帆板转角,范围为060。要求在 5 秒内达到设定值,并实时显示。最大误差的绝张家界航空工业职业技术学院毕业设计(论文)对值不超过 5。 (3) 其他。1.1.3 说明(1) 调速装置自制。 (2) 风扇选用台式计算机散热风扇或其他形式的直流供电轴流风扇,但不能选用带有自动调速功能的风扇。 (3) 帆板的材料和厚度自定,固定轴应足够灵活,不阻碍帆板运动。帆板形式及具体制作尺寸如图 2 所示。 1.2 总体设计方案1.2.1 设计思路 题目要求设计一个翻版控制系统,通过对风扇转速的控制,调节风力的大小
9、,改变帆板转角。设计中采用单片机PWM波电机控制方式,使得控制风扇风力的大小,帆板受到风力的大小从而改变帆板偏转的角度,角度传感器把检测到帆板的偏转角度传给ATMEGA48单片机进行处理达到设计所需的要求再用键盘进行调整,用液晶显示屏进行显示。 1.2.2 方案论证与比较1.电源的设计方案论证与选择系统需要多个电源,ATMEGA328、L298、MMA7455都使用5V的稳压电源,电张家界航空工业职业技术学院毕业设计(论文)机驱动需要24V电压。方案一、采用LM2596开关电压调节器,能够输出3A的输出电流,同时具有很好的线性和负载调节特性,固定输出3.3V、5V、12V经过调整可输出小于37
10、V的电压。方案二、采用升压型稳压电路。用两片MC34063芯片分别将3V的电池电压进行直流斩波调压,得到5V和12V的稳压输出。只需使用两节电池,既节省了电池,又减小了系统体积重量,但该电路供电电流小,供电时间短,无法是相对庞大的系统稳定运作。方案三、采用三端稳压集成7805与7824分别得到5V与24V的稳压电压。利用该方法方便简单,工作稳定可靠。综上所述,选择方案三,采用三端稳压电路。2.角度传感器的设计方案论证与选择 方案一、采用WDS35D4精密导电塑料角位移传感器,利用该传感器的输入端加上一个直流电压,在输出端得到一个直流电压信号,把角度位移的机械位移量转化成电压信号,用输出电压进行
11、角度位移的控制。用此传感器只要测量导轨电阻两端的直流电压,不同的角度有不同的电阻值,通过电阻来算出角度,计算不方便。电刷在导轨上移动获得输出,数值越小,精度越高。该传感器的优点: 对环境条件要求低,线性精度高、分辨率高、动态的噪声小等优点,由于该传感器的各项精度都比较精细使其价格过高。 方案二、采用电位器进行调角:帆板转动时电位器跟着转动,电压随之发生变化,通过电压的值转换成角度值。但扭力过大,而且精度也不高。 方案三、采用MMA7455三轴加速度传感器,利用物体运动和方向改变输出信号的电压值,把检测到的信号传送给ATMEGA328的AD转化器进行转化与读取此输出信号。通过不同的角度,X、Y、
12、Z三个方向的加速度输出不同,将电容值的变化转化为电压值,电容值的计算公式是:C=Ae/D,其中A是极板的面积,D是极板间的距离,e是电介质常数,再用反正弦函数把角度算出来,计算比较方便。该传感器的优点:线性精度高、体积小、工作可靠、标识清晰、扩展性好等优点。综上所述,选择方案三,用MMA7455三轴加速传感器。3.显示方式的选择 方案一、采用LED数码管显示。使用数码管动态显示,由于显示的内容较少,给人的视觉冲击不怎么的舒适,具有亮度高、工作电压低功耗小、易于集成、驱动简单等优点。但在此次设计中需要设定的参数种类多,使用LED数码管不能完成设计任务,不宜采用。 方案二、采用字符型LCD显示。可
13、以显示英文及数字,利用程序去驱动液晶显示模块,设计简单,且界面美观舒适,耗电小。 综上所述,选择方案二,用字符型LCD进行显示。张家界航空工业职业技术学院毕业设计(论文)4.帆板的设计方案论证与选择 方案一、采用电路板作为帆板。根据设计需要的要求,电路板需做成宽:10cm,长:15cm;在所拥有的风扇下采取电路板作为帆板,很难满足设计所需达到的角度。考虑风力的大小和自身重力,不宜采用。 方案二、采用泡沫作为帆板。泡沫的体积太轻,很容易满足设计所需要的角度,缺点:泡沫的稳定性不高,干扰成分太多。考虑不稳定性的因素太多此方案不宜采用。 方案三、采用铝板作为帆板。经过多次实验:铝板可以作为帆板使用,
14、能过达到设计所需要的要求,而且铝板的稳定性比较好,抗干扰能力强,受干扰的成分比较小。综上所述,选择方案三,用铝板作为帆板使用。 1.2.3 系统的组成 经过方案比较与论证,最终确定的系统组成框图如图1.1.1所示。其中的集成电路ATMEGA328单片机驱动液晶显示模块、控制电机驱动改变风扇风力的大小从而改变帆板的角度,角度传感器把接收到的输出信号传送给ATMEGA328单片机进行处理再更新显示。张家界航空工业职业技术学院毕业设计(论文) 图1.1.1 系统组成框图PID算法:由于单片机的处理速度和RAM资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再除以一个2的N次方数据
15、(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。遇限消弱积分:一旦控制变量进入饱和区,将只执行削弱积分项的运算而停止进行增大积分项的运算。具体地说,在计算Ui时,将判断上一个时刻的控制量Ui-1是否已经超出限制范围,如果已经超出,那么将根据偏差的符号,判断系统是否在超调区域,由此决定是否将相应偏差计入积分项积分分离法:在基本PID控制中,当有较大幅度的扰动或大幅度改变给定值时, 由于此时有较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的超调量和长时间的波动。特别是对于温度、成份等变化
16、缓慢的过程,这一现象将更严重。为此可以采用积分分离措施,即偏差较大的时,取消积分作用;当偏差较小时才将积分作用投入。离散化公式: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)微分控制对系统性能的影响:微分作用可以改善动态特性,偏大时,超调量较大,调节时间较短。偏小时,超调量也较大,调节时间也较长
17、。只有合适,才能使超调量较小,减短调节时间。 由于快速傅立叶变换FFT算法设计大量的浮点运算,由于一个浮点占用四个字节,所以要占用大量的内存,同时浮点运算时间很慢,所以采用普通的8位MCU一般难以在一定的时间内完成运算,所以综合内存的大小以及运算速度,采用32位的单片机ATMEGA328,它拥有较大的RAM,并且时钟频率高达16M,所以对于浮点运算不论是在速度上还是在内存上都能够很快的处理。2. 单元电路设计2.1 风扇控制电路 张家界航空工业职业技术学院毕业设计(论文)风扇控制电路主要是由ATMEGA328、L298电机驱动模块组成。L298电机驱动模块主要由放大电路、OPAMP运算放大电路
18、、电机驱动组成。用电阻和电容组成高通滤波电路,用单片机控制达林顿管使之工作在开关状态,通过调整输入脉冲的占空比,调整电机转速。用L298驱动两台直流减速电机的电路引脚A,B分别用PWM控制。如果电机运动则可将IN1,IN2和IN3,IN4两对引脚分别接高低电平,仅用单片机的两个端口给出PWM 信号控制A,B即可。特点:工作电压高,可以达到46V;输出电流大,瞬间峰值可达3A,持续工作电流2A;额定功率25W。当步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转的越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速,从而控制了风扇的风力的大小。L
19、298电机驱动的特点:可以实现电机正反转及调速、启动转矩大。 图1.1.2 L298电机控制电路 2.2角度测量原理MMA7455三轴加速传感器是检测物体运动和方向的传感器,它根据帆板运动和方向改变输出信号的电压值。当帆板受到风扇风力运动时,三轴加速传感器检测到帆板运动的输出信号,把该输出的电压值用三角函数数出来在把结果送往张家界张家界航空工业职业技术学院毕业设计(论文)ATMEGA328单片机进行处理,通过按键控制与液晶显示屏进行显示。MMA7455三轴加速传感器:如图1.1.3所示 2.3控制算法由ATMEGA328单片机组成的数字控制系统控制中,PID控制器是通过PID控制算法实现的。A
20、TMEGA328单片机通过AD对信号进行采集,变成数字信号,再在单片机中通过算法实现PID运算,再通过DA把控制量反馈回控制源。从而实现对系统的伺服控制。图1.1.4位置式PID控制算法的简化示意图A、图B。 图1.1.4(A)张家界航空工业职业技术学院毕业设计(论文) 图1.1.4(B)传递函数为:时域的传递函数表达式:对上式中的微分和积分进行近似:式中n是离散点的个数。于是传递函数可以简化为:其中张家界航空工业职业技术学院毕业设计(论文)3. 软件设计3.1风扇控制电路设计计算由单片机ATMEGA328的处理速度和ram资源的限制,一般不采用浮点数运算,而将所有参数全部用整数,运算到最后再
21、除以一个2的N次方数据(相当于移位),作类似定点数运算,可大大提高运算速度,根据控制精度的不同要求,当精度要求很高时,注意保留移位引起的“余数”,做好余数补偿。 图1.1.5 PID算法流程图张家界航空工业职业技术学院毕业设计(论文)3.2控制算法设计与实现 由PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采
22、样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。将采样值PID通过算法转化为PWM的占空比输出。按键模块一共5个按键,其中一个是单片机复位按键(PC6),还有4个功能键,分别为:1号键(对3个功能进行切换)、2号键(确定功能并且确定微调值)、3号键(减号键)、4号键(加号键)。0号功能(通过3号键和4号键控制风力,使帆板角度变化);1号功能(控制帆板角度在45);2号功能(设定帆板角度);3号功能(长按2号键进行自校准)。相关程序:struct PID_DATA p
23、idData;volatile unsigned char Function_is_done = 0;/ 系统功能编号static volatile unsigned char System_Function = 0;/ 5号功能: 校准角度传感器,长按2号按键开始校准/ 0号功能: 通过键盘控制操作风力,使帆板转角变化/ 1号功能: 控制帆板在45/ 2号功能: 10cm时通过键盘设定帆板角度/ 3号功能: 715cm时通过键盘任意设定帆板角度/ 角度设定功能用PID算法调节,PID达到稳态时,声光提示/ 4号功能: 未用/ 数码管使用安排/ 位0: 功能编号/ 位5、6: 实时显示角度/
24、位2、3: 按键设定角度时显示设置值,调整中闪烁显示,执行后停止闪烁。3.3 程序流程图张家界航空工业职业技术学院毕业设计(论文) 图1.1.6 风扇控制系统程序流程图 风扇控制系统程序流程图如图1.1.6所示。首先系统开始初始化,然后再把MMA7444所读取风扇的角度值分别送给单片机进行处理,然后通过按键进行控制,然后用LED进行显示,蜂鸣器叫鸣。4 系统测试4、1调试使用的仪器与方法序号名称、型号、规格数量备注1YB4363双踪示波器1江苏扬中电子仪器厂2爱使牌AS1051S函数信号发生器1 上海爱使电子仪器厂3游标米尺1 文雅文化用品厂4角度测量计1上海测量仪器厂 张家界航空工业职业技术
25、学院毕业设计(论文)用函数信号发生器给电机驱动模块加上12V以上的电压,用双踪示波器查看单片机的PWM波的脉冲信号,查看电机输出的占空比的大小。用游标米尺去测量风扇与帆板的距离,风扇吹起帆板的角度用角度测量计去测量角度的大小,并记录相关的数据。4.2 测试数据完整性距离 实际角度理论角度误差稳定时间7cm40140110s10cm4524517s7026536s4034016s15cm5035015s4.3 测试结果分析 经过系统的测试发现该设计存在着误差,在帆板受到风扇风力转动时,帆板受力发生转动,帆板的角度表现的很不稳定,实际值与理论值相差13的误差。从而得出帆板的偏转角值可能受到外部环境
26、的干扰或者是电路硬件出现的导致的问题。指针和转轴由于不同心而出现了一些小误差。还有角度传感器上的一些细软线导致帆板的中心发生改变。4.4 结束语 d = 10cm时,帆板转角 = 060。 d = 10cm时,帆板转角 = 45。 d = 15cm时,帆板转角 = 78。由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。5. 总结本系统以单片机ATMEGA328芯片为核心部件,用MMA7455三轴加速度传感器来检测L298电机驱动风扇改变帆板的偏转角度,把这输出的信号传送给单片机进行处理,利用了角度传感技术并配合独特的软件算法实现了用按键控制风力的大小
27、使帆板转角能够在060度范围内变化,并在液晶屏上进行了显示。在系统设计过程中,力求硬件线路简单,充分发挥软件编程的灵活方便的特点,来满足设计的要求。因为时间有限,该系统还有许多值得改进的地方:三轴加速度传感张家界航空工业职业技术学院毕业设计(论文)器对帆板偏转角检测不精确,帆板有可能还受外部环境的影响。在本次设计的过程中,遇到了很多突发事件和各种困难,设计制作中一度中断,但通过仔细分析和自我状态的调整解决了很多问题。在这个过程中我们深深地体会到共同协作和团队精神的重要性,提高了自己解决问题的能力。参考文献:晶体管电路设计上,铃木雅臣著,北京:科学出版社,1997年;模拟电子线路基础,吴运昌著,
28、广州:华南理工大学出版社,2004年;数字电子技术基础,阎石著,北京:高等教育出版社,1997年;单片机原理及应用,李晓峰著,北京:北京理工大学出版社,2010年;附录:附1:元器件明细表:元器件名称型号个 数单片机ATMEGA328个 数三轴加速度传感器MMA74551个电机驱动模块L2981个风扇24V0.25A1个液晶显示OCMJ4X8C1个发光二极管LED3个电阻10K4个47K1个 电容贴片1045个张家界航空工业职业技术学院毕业设计(论文)附2:电路图图纸张家界航空工业职业技术学院毕业设计(论文)附3:程序清单unsigned char Function_is_begin = 0;
29、unsigned char SettingAngle = 0;static volatile unsigned char TempAngle = 0;static volatile unsigned int Openloop_PWM = 100;static volatile unsigned char Openloop_Step = 5;void Key1_Press(unsigned char ktype)Function_is_begin = 0;PWM_Off();if(+System_Function 5)System_Function = 0;switch(System_Funct
30、ion)case 0:Openloop_Step = 5;Openloop_PWM = 100;PWM_OutPut(Openloop_PWM);/Digit_Set(STEP_POS, 2); LCD12864_SetXY(0,2);LCD12864_PutNumber(2);/Digit_Number(1, Openloop_PWM);break;case 1:/Digit_Off(STEP_POS);TempAngle = 45;SettingAngle = 45;case 2:case 3:LCD12864_SetXY(0,4);LCD12864_PutNumber(TempAngle
31、/10);LCD12864_SetXY(0,5);LCD12864_PutNumber(TempAngle%10);张家界航空工业职业技术学院毕业设计(论文)/Digit_Set(SETTING_POS0, TempAngle/10);/Digit_Set(SETTING_POS1, TempAngle%10);/Digit_FlashMode(SETTING_POS0);/Digit_FlashMode(SETTING_POS1);break;case 4:break;case 5:/Digit_Off(SETTING_POS0);/Digit_Off(SETTING_POS1);break
32、;/Digit_Set(0, System_Function);/ 显示系统功能编号LCD12864_SetXY(0,0);LCD12864_PutNumber(System_Function);void Key2_Press(unsigned char ktype)switch(System_Function)case 0:switch(Openloop_Step)case 1:Openloop_Step = 5;/Digit_Set(STE./P_POS, 2); LCD12864_SetXY(0,2);LCD12864_PutNumber(2);break;case 5:Openloop
33、_Step = 10;/Digit_Set(STEP_POS, 3); LCD12864_SetXY(0,2);LCD12864_PutNumber(3);break;case 10:Openloop_Step = 50;/Digit_Set(STEP_POS, 4); LCD12864_SetXY(0,2);张家界航空工业职业技术学院毕业设计(论文)LCD12864_PutNumber(4);break;case 50:Openloop_Step = 1;/Digit_Set(STEP_POS, 1);LCD12864_SetXY(0,2);LCD12864_PutNumber(1);bre
34、ak;break;case 1:case 2:case 3:/Digit_NormalMode(SETTING_POS0);/Digit_NormalMode(SETTING_POS1);LCD12864_SetXY(1,2);LCD12864_SetXY(1,3);SettingAngle = TempAngle;Function_is_done = 0;break;case 4:break;case 5:if(ktype = eKTYPE_LPRESS)MMA7455_Calibrate();break;Function_is_begin = 1;void Key3_Press(unsig
35、ned char ktype)switch(System_Function)case 0:if(Openloop_PWM parma.data0)case 1:Key1_Press(pmsg-parma.data1);break;case 2:Key2_Press(pmsg-parma.data1);break;case 3:Key3_Press(pmsg-parma.data1);break;case 4:Key4_Press(pmsg-parma.data1);break;void Function_Init(void)System_Function = 6;Function_is_begin = 0;SettingAngle = 0;Openloop_Step = 5;Openloop_PWM = 100; 张家界航空工业职业技术学院毕业设计(论文)int16_t inputValue;if(SysTickFlag)angle = MMA7455_Angle();if(angle 45)pwm_value = 512 - (int16_t)(g_angle - 45)*15;if(pwm_value 0)