北工大电工学训练课设报告_第1页
北工大电工学训练课设报告_第2页
北工大电工学训练课设报告_第3页
北工大电工学训练课设报告_第4页
北工大电工学训练课设报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

机械工程与应用电子技术学院电工课程设计报告 课设名称 电烙铁恒温控制器设计与制作 组 别 第N组 姓名学号 彩虹人 同组成员 彩虹人 指导老师 杨建武 成 绩 2016年6月12日目录一、目的、意义和方法21、实验目的22、实验意义23、试验方法3二、硬件电路设计31、硬件电路总体图及介绍32、前向通道硬件(固件)设计42.1 电路原理介绍与分析42.2 元件选型53、用户界面硬件(固件)设计63.1 电路原理介绍与分析63.2 元件选型64、后向通道硬件(固件)设计74.1 电路原理介绍与分析74.2 元件选型8三、软件算法设计81、软件总体结构82、数字滤波算法132.1 一阶惯性滤波原理142.2 算法的实现方法142、动态LED显示算法143、按键的控制算法154、数字PID算法16四、实验与测试171、实验系统总体介绍172、前向通道标定172.1 标定方法172.2 实验标定数据与曲线分析183、PID参数整定193.1 PID控制算法简介193.2 PID参数整定方法193.3 实验数据处理204、整体效果评价21五、总结改进22一、目的、意义和方法1、实验目的在本学期中,我们需要完成用PSOC作为主控元件,制作一套完整的温控器的原理样机。技术要求如下:(1)温度连续可调 30300(2)温度要准确稳定 0.5(3)升温速度要快 3分钟(4)操作要简便 (调整温度)(5)显示要清晰 数字显示(6)电路要简单 尽量少分立元件(7)成本要低廉 不使用昂贵元件图1 温控电烙铁2、实验意义本学期的电工学训练,使用PSOC来完成一套控温器的设计,旨在让我们熟悉并掌握简单的PSOC单片机操作与应用,完成一套简单而实用的常见用具的设计。在这一过程中我们能将课堂上学过的或自学的AD转换、滤波、PID整定等知识活学活用,能做到理解与掌握,并做到以后再遇到同类的问题时能够用这些东西来解决它。同时,以小组合作的方式来完成这一任务,不仅能锻炼我们的团队合作意识,还能培养我们人与人共事的能力。3、试验方法温控器的总体结构如下:其中,单片机采用实验室的PSOC,电烙铁由老师提供,传感器采用由老师统一提供的铂电阻PT100,后向通道中的功率放大器使用由老师提供的无触点继电器,其余部分小组内成员自己完成,用户界面显示采用LED7段数码管。具体如何制作并完成各个模块,后文会具体说明。二、硬件电路设计1、硬件电路总体图及介绍硬件电路总体设计图2、前向通道硬件(固件)设计2.1 电路原理介绍与分析图2 前向通道硬件(固件)设计图3 前向通道引脚分配如图所示,为前向通道的整体固件设计,其中,R_PT100就是传感器铂电阻在电路中所处的位置,由于被测温度的变化,影响到铂电阻的阻值,从而最终影响到运算放大器的放大效果,最终显示通过软件设计计算出的被测温度数值。在电路中采用两个电位器来完成对A/D转换输出数值的控制,如图2中R_4、R_5所示,使温度在可测范围内时,A/D转换的数值在04096(212)之间,保持两个电位器的值不变,此时,电路的放大效果应该只与铂电阻的阻值有关,进而完成对温度的测量与显示。2.2 元件选型2.2.1 铂电阻简介铂电阻是一种热敏电阻元件,电阻值会随温度改变而发生变化,我们选用的为PT100,其中,100表示它在0时阻值为100欧姆。它的阻值会随着温度上升,且阻值是成匀速增涨的。Pt100温度传感器的主要技术参数如下:测量范围:-200+850。允通电流5mA。另外,pt100温度传感器还具有抗振动、稳定性好、准确度高、耐高压等优点。图4 PT100电阻随温度变化2.2.2 其余元器件选型如图2中所示,定值电阻选型:R_1=2k,R_2=R_3=10k; 电位器选型:R_4=100k,R_5=10k。2.2.3 电路的调试(1)用电位器(200和20电位器串联)替代铂电阻,进行调试,当电位器为156时,调整R_5至Pin3处电压Uo1=1.65V,此时A/D转换应显示为2048左右。(2)将电位器调整至100,调整R_4使A/D转换显示为0左右。(3)调整电位器使其为212,此时,不调整任何器件,AD转换应显示为4096左右。此时,调试完成。再调整电位器阻值,示数应该在0到4096之间,如果再将电位器换为铂电阻,当改变铂电阻温度时,示数也会跟着改变。3、用户界面硬件(固件)设计3.1 电路原理介绍与分析图5 用户界面硬件(固件)设计图6 用户界面引脚分配在用户界面部分,我们主要需要完成两方面的任务,不但要完成对温度的显示,而且还要有用户输入部分,让用户手动输入需要的温度值。在此,我们就需要一个4位的七段数码管来进行温度的显示,并选择PSOC上的按键来完成用户对目标温度值的输入。其中,如图5所示,左边Timer_1模块为一个定时中断,来控制对数码管上数字的扫描显示和软件部分的定时控制;右上Control_Reg_1为七段数码管显示模块,通过真值表的构建,完成对09数值及小数点的显示;右下Control_Reg_2是用来控制4为七段数码管的扫描显示;左下的两个按钮就是用来控制用户输入目标温度值的模块。3.2 元件选型3.2.1 四位七段数码管简介及选型数码管是一种半导体发光器件,数码管可分为七段数码管和八段数码管,区别在于八段数码管比七段数码管多一个用于显示小数点的发光二极管单元DP(decimal point),其基本单元是发光二极管。数码管是一类价格便宜 使用简单的元器件,可以通过对其不同的管脚输入相对的电流,使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。在本次试验中,我们需要采用共阴极的4位七段数码管,因此,我们采购MT03641AR型号的数码管,并查找记录了其各个引脚位置,如图7所示:图7 4位七段数码管及其引脚3.2.2 其余元器件选型 在数码管每个引脚上,我们都需要接上一个定值电阻以保证安全,因此,我们采购了8个阻值相同的定值电阻R=200。4、后向通道硬件(固件)设计4.1 电路原理介绍与分析图8 后向通道硬件(固件)设计图9 后向通道引脚分配后向通道的硬件设计比较简单,我们只需要设计一个PWM模块和无触点继电器就可以了,引脚连接也很简单,只需要连接两个引脚就可以了,值得注意的是:在引脚分配中,我们只分配了继电器的正极引脚Pin_12,而它的负极引脚应该是接地的,继电器的正负两引脚不能接反,否则就会出现错误。在这一部分,我们通过控制PWM模块的输出值,来控制电烙铁的输入电压值,从而调节电烙铁的升温速度,以达到控制电烙铁温度的目的。4.2 元件选型这部分我们主要需要的元件是无触点继电器,由老师提供。4.2.1 无触点继电器简介无触点继电器,即固态继电(Solid State Relay,缩写:SSR)是由半导体控制负载流经固态开关的无接点继电器,输入端系利用发光二极管、光晶体管、功率晶体等半导体电路所组成光耦合器,经内部控制电路触发输出端的硅控整流器(SCR)或双向硅控整流器(TRIAC)进而导通负载电流,因此可以接受低压直流或交流信号输入之后,进而导通高压、高功率之输出电流,具隔离输出入及控制高功率输出电流之效果。与继电器的基本原理相同,具有两个输入端与两个输出端,输入与输出中间为光隔离,输入端加上直流或交流信号达到额定电流值后,输出端就能从断路转变成通路状态, 所以可以让小电流信号通过而激励电磁线圈,控制其接点导通或断开,进而控制大电流负载。 让相隔离之大小不同的电力系统间转换高功率输出及隔离输出入,以自动调节、保护电路安全。4.2.2 PWM功率放大器简介PWM(Pulse Width Modulator,脉冲宽度调制模块)是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。三、软件算法设计1、软件总体结构#include #include #define ROW_0 0#define COLUMN_0 0#define COLUMN_9 9#define COLUMN_10 10#define COLUMN_11 11#define CLEAR_TENS_HUNDREDS #define CLEAR_HUNDREDS 0void UpdateDisplay(uint16 voltageRawCount);float voltageRawCount1;int a,b,c,d;uint16 Disp_Count;/显示计时器int16 Target_Temp;/目标温度void main()float Disp_Data;int16 cm,mm;uint8 code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/ 不带小数点的位Opamp_1_Start();Opamp_2_Start();Opamp_3_Start();ADC_DelSig_1_Start();LCD_Char_1_Start();PWM_1_Start();Clock_2_Start();LCD_Char_1_Position(ROW_0,COLUMN_0);LCD_Char_1_PrintString(V Count:); ADC_DelSig_1_StartConvert();Clock_1_Start() ;Timer_1_Start();isr_1_Start();CYGlobalIntEnable;/a=0x06;/b=0x5b;/c=table3;/d=table4;while(1) for(;) cm=(uint16)voltageRawCount1; mm=voltageRawCount1*100; mm=mm%100; LCD_Char_1_Position(ROW_0,COLUMN_9); LCD_Char_1_PrintNumber(cm); LCD_Char_1_PrintString(.); LCD_Char_1_PrintNumber(mm); LCD_Char_1_PrintString(C ); if(Disp_Count199) Disp_Data=voltageRawCount1; else Disp_Data=Target_Temp; /拆分数字显示 b=table(uint16)(Disp_Data)%10; /求余数 if(uint16)(Disp_Data)/100=0&(uint16)(Disp_Data/10)%10=0) c=0x00; else c=table(uint16)(Disp_Data/10)%10; if(uint16)(Disp_Data)/100=0) d=0x00; else d=table(uint16)(Disp_Data)/100; if(Disp_Data=Target_Temp) a=0x00; else a=table(uint16)(Disp_Data*10)%10; /UpdateDisplay(voltageRawCount);void Timer_Int(void)static int8 cyc=0, t0=0;static int8 nyn=0;float xi,yi;static float yi_1=0;int16 voltageRawCount;uint8 b5,b6;static uint8 b5c=0,b50,b60;uint16 compare;static int16 pyp=0;float p,e;static float e1=0;float Kp,Ki,Kd;static float Ie=0,t=0;unsigned int ar120;/AD转换ADC_DelSig_1_IsEndConversion(ADC_DelSig_1_WAIT_FOR_RESULT);voltageRawCount=ADC_Delsig_1_GetResult16();voltageRawCount=voltageRawCount+2048;/一阶惯性滤波xi=(float)voltageRawCount;yi=0.01*xi+0.99*yi_1; voltageRawCount=(uint16)yi; yi_1=yi; /标度变换 voltageRawCount1=7.8106E-07*yi*yi+7.5841E-02*yi-1.8463E+01-0.8145;/动态显示 cyc+; nyn+; if(nyn100) nyn=0;if(cyc3) cyc=0; Control_Reg_2_Write(0x0F);if(cyc=0) Control_Reg_1_Write(a); Control_Reg_2_Write(0x0E);if(cyc=1)if(b5c=1 & nyn40)nyn=nyn+;/ Control_Reg_2_Write(4 | 0x80);else Control_Reg_1_Write(b | 0x80); Control_Reg_2_Write(0x0D); if(cyc=2)if(b5c=2 & nyn40)nyn=nyn+;/ Control_Reg_2_Write(4);else Control_Reg_1_Write(c); Control_Reg_2_Write(0x0B); if(cyc=3)if(b5c=3 & nyn400) Disp_Count=200; b5=Pin_10_Read();b6=Pin_11_Read();if(b5=0 & b50=1)if(b5c=0)b5c=1;else if(b5c=1)b5c=2;else if(b5c=2)b5c=3;else if(b5c=3)b5c=0;b50=b5;if(b5c!=0)Disp_Count=0;if(b6=0 & b60=1)if(b5c=1)if(Target_Temp%10=9)Target_Temp=Target_Temp-9;elseTarget_Temp+;if(b5c=2)if(Target_Temp/10)%10=9)Target_Temp=Target_Temp-90;elseTarget_Temp=Target_Temp+10;if(b5c=3)if(Target_Temp%100=0)if(Target_Temp/100=3)Target_Temp=Target_Temp-300;elseTarget_Temp=Target_Temp+100;elseif(Target_Temp/100=2)Target_Temp=Target_Temp-200;elseTarget_Temp=Target_Temp+100;/if(Target_Temp300)/Target_Temp=300;b60=b6;/compare=Target_Temp;/if(voltageRawCount1225)/compare=0;/if(voltageRawCount1=200)pyp=0;if(pyp=1)e=Target_Temp-voltageRawCount1;if(e10 | e255)p=255;if(p0)p=0;compare=p;e1=e;PWM_1_WriteCompare(compare);t+;if(t0120 & t=4)t=0;art0=voltageRawCount1;t0+;Timer_1_ReadStatusRegister();void UpdateDisplay(uint16 voltageRawCount) LCD_Char_1_Position(ROW_0,COLUMN_9);LCD_Char_1_PrintNumber(voltageRawCount); if(voltageRawCount10)LCD_Char_1_Position(ROW_0,COLUMN_10);LCD_Char_1_PrintString(CLEAR_TENS_HUNDREDS);else if(voltageRawCount100) nyn=0;if(cyc3) cyc=0; Control_Reg_2_Write(0x0F);if(cyc=0) Control_Reg_1_Write(a); Control_Reg_2_Write(0x0E);if(cyc=1)if(b5c=1 & nyn40)nyn=nyn+;/ Control_Reg_2_Write(4 | 0x80);else Control_Reg_1_Write(b | 0x80); Control_Reg_2_Write(0x0D); if(cyc=2)if(b5c=2 & nyn40)nyn=nyn+;/ Control_Reg_2_Write(4);else Control_Reg_1_Write(c); Control_Reg_2_Write(0x0B); if(cyc=3)if(b5c=3 & nyn400) Disp_Count=200; b5=Pin_10_Read();b6=Pin_11_Read();if(b5=0 & b50=1)if(b5c=0)b5c=1;else if(b5c=1)b5c=2;else if(b5c=2)b5c=3;else if(b5c=3)b5c=0;b50=b5;if(b5c!=0)Disp_Count=0;if(b6=0 & b60=1)if(b5c=1)if(Target_Temp%10=9)Target_Temp=Target_Temp-9;elseTarget_Temp+;if(b5c=2)if(Target_Temp/10)%10=9)Target_Temp=Target_Temp-90;elseTarget_Temp=Target_Temp+10;if(b5c=3)if(Target_Temp%100=0)if(Target_Temp/100=3)Target_Temp=Target_Temp-300;elseTarget_Temp=Target_Temp+100;elseif(Target_Temp/100=2)Target_Temp=Target_Temp-200;elseTarget_Temp=Target_Temp+100;4、数字PID算法Kp=12.69;Ki=0.325;Kd=109.7;pyp+;if(pyp=200)pyp=0;if(pyp=1)e=Target_Temp-voltageRawCount1;if(e10 | e255)p=255;if(p0)p=0;compare=p;e1=e;PWM_1_WriteCompare(compare);t+;if(t0120 & t=4)t=0;art0=voltageRawCount1;t0+;四、实验与测试1、实验系统总体介绍实验系统的搭建总体分为了三个部分来完成,分别为:前向通道部分、用户界面部分、后向通道部分,历经了15星期的时间完成了实验的搭建与测试,如图10所示为实验最终总体模型,从左到右依次是电烙铁、PSOC开发板及焊接电路、无触点继电器、电脑。图10 系统总体最终模型2、前向通道标定2.1 标定方法PT100铂电阻有其固定的温度与电阻的固定关系,如图11所示,我们在实验前,用之前提到的220电位器代替铂电阻,来模拟它完成标定。根据图11中0300PT100铂电阻对应的阻值,调节220电位器使其对应,每10调节一次,分别记录此时的电阻值、对应温度以及此时LED显示屏显示的数字,制成表格,并作出曲线,得到此曲线表示的对应关系。图11 PT100分度表 图12 实验标定结果2.2 实验标定数据与曲线分析根据标定方法,我们可以得到图12所示的标定结果以及图13所示的曲线。图13 前向通道标定结果并由此可得,LED读数与实际温度值之间的关系为:y = 7.8106E-07x2 + 7.5841E-02x - 1.8463E+013、PID参数整定3.1 PID控制算法简介PID控制器是一种线性控制器,它将给定值与实际输出值的偏差e(t)的比例、积分和微分进行线性组合,形成控制量u(t)输出,如图14所示。图14 PID控制器方框图3.2 PID参数整定方法PID参数整定方法很多,其方法的应用,不但需要操作的掌握,更重要的是经验的积累,在这里,我们选择了扩充响应曲线法来做PID参数的整定。(1)让系统处于手动操作状态,当系统在给定值处平衡后,突然改变给定值,给一个阶跃输入信号。(2)用记录仪表记录被控参数在此阶跃输入作用下的变化曲线。(3)在曲线最大斜率处做切线,求得滞后时间、被控对象时间常数,以及它们的比值。(4)选择控制度,方法与扩充临界比例度法相同。(5)查表4-3,即可求得PID调节器的采样周期。3.3 实验数据处理 在数字PID算法程序中加入以下一段程序:t+;if(t0120 & t=4)t=0;art0=voltageRawCount1;t0+;令其每5s采集一次温度值,并保存在数组ar当中,程序结束后,将ar数组中的数值记录下来并做成表格如图15所示,并使用表格绘制曲线,容易得到系挺稳定时间大约为150s左右。图15 PID整定结果4、整体效果评价根据最终得到的结果与曲线,我们可以得出本次试验整体上完成了试验开始时的技术要求,最终,我们可以得到,此实验模型可以测量与控制温度为室温到300之间的温度,并经过多次试验可得到,当目标温

温馨提示

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

评论

0/150

提交评论