计算机控制技术课程设计-温度控制系统设计内容摘要:

p)()()()()()()()()(iDk 式中, T 为采样时间,  项为积分项的开关系数   )( )(01 ke ke 5 系统仿真 仿真程序及图形设计 被控对象为: G(S)= 采用 simulink 仿真 , 通过 simulink 模块实现积分分离 PID 控制算法。 选择合适的 Kp, Ki, Kd 是系统的仿真效果趋于理想状态。 MATLAB 编写程序如下: clear all。 close all。 ts=2。 %采样时间 2s sys=tf([1],[400,40,1])。 dsys=c2d(sys,ts,39。 zoh39。 )。 %将 sys 离散化 [num,den]=tfdata(dsys,39。 v39。 )。 %求 sys 多项式模型参数 kp=10。 ki=。 12 kd=5。 Simulink 仿真图如图 51 所示: 图 51 simulink 仿真图 13 心得体会 本次计算机控制技术课程设计我的题目是电炉温度控制系统。 通过本学期专业课程的学习,我打算通过传感器,单片机,计算机来实现炉温的自动控制系统。 最后通过 simulink 仿真波形,观察 PID 参数变化对系统结果的影响,从而对计算机控在技术中的 PID 控制有更深刻的理解和认识。 拿到题目后,首先我纲举目张地初步将我的整个报告完成过程分为了六个步骤:分析题目要求,列出报告提纲,查找资料,设计硬件和软件,进行 Matlab仿真,撰写课程设计说明书。 通过计算机控制技术这门专业课的学习,已经对整个控 制系统的组成和原理有了初步认识,所以题目理解起来并不困难,主要就是用到了 A/D 和 D/A 转换,以及单片机编程实现。 接下来就是查阅资料和列提纲了,这两步基本是同时进行。 紧接着就是根据手头上已有的课本和网络上找到的资源进行软硬件设计,在理解了课本上的知识后,设计起来也并不复杂。 整个炉温控制系统大致工作流程是这样的:采集当前温度数据进行 A/D 转换后送至计算机系统,与给定标准温度进行偏差计算,通过控制算法给出下一步执行决策,并通过 D/A 转换器送出至控制系统,控制系统根据指令进行人为或自动控制处理,这样整个控制流程就 比较清晰了。 下一步是进行 simulink 仿真。 不得不说对 simulink 的学习仍需加强,对整个软件不是很了解的情况下就去做仿真的结果就是浪费大量时间做无用功,而且还得不出结果。 最后是撰写课程设计报告。 其实这个过程考验的是自己的细心和耐心 , 格式方面的修改有时候确实让人头疼 , 但一旦你这一次做到了这些 ,下次再写报告的时候就会事半功倍,为人处世也会学着更加细致谨慎。 14 参考文献 [1]李建忠 .单片机原理及应用 .西安 :西安 电子 科技大学出版社 [2]潘新民 .王燕芳 .微型 计算 机控制技术 .北京 :高等 教育 出版社 [3]何立民 .单片机应用系统设计 .北京 :北京航空航天大学出版社 [4]韩志军 ,沈晋源 ,王振波 .单片机应用系统设计 .北京 :机械工业出版社 [5]周航慈 .单片机程序设计基础 .北京 :北京航空航 天大学出版社 ,2020. 15 附录 1 芯片资料 ADC0809 芯片 图 ADC0809 芯片 ADC0809各脚功能如下: D7D0: 8位数字量输出引脚。 IN0IN7: 8位模拟量输入引脚。 VCC: +5V 工作电压。 GND:地。 REF( +):参考电压正端。 REF( ):参考电压负端。 START: A/D 转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动 A/D 转换) . EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为 500KHz)。 A、 B、 C:地址输入线。 16 DAC0832芯片: 图 DAC0832 芯片 DAC0832 芯片为 20 引脚,双列直插式封装。 其引脚排列如图 6所示。 ( 1)数字量输入线 D7~D0( 8 条) ( 2)控制线( 5条) ( 3)输出线( 3条) ( 4)电源线( 4条) DAC0832 的技术指标 ( 1)分辨率 : 8位 ( 2)电流建立时间 : 1181。 S ( 3)线性度(在整个温度范围内) 9 或 10位 ( 4)增益温度系数 : 0. 0002% FS/℃ ( 5)低功耗 : 20mW ( 6)单一电源: +5 ~ +15V 17 附录 2 程序清单 积分分离 PID 控制算法子程序: START: MOV 68H,KP ;分别将 KP , TI , TD, T,β送入指定的存储单元 MOV 54H,TI MOV 55H,TD MOV 56H,T MOV 57H,β MOV A,68H ;计算 KI=KP*T/TI MOV B,56H MUL AB MOV B,54H DIV AB MOV 69H,A MOV A,68H ;计算 KD=KP*TD/T MOV B,55H MUL AB MOV B,56H DIV AB MOV 6AH,A LOOP0: MOV DPTR 7FF0H ;读取预定温度值,送 ADC0809 的 IN0 口地址 MOV @DPTR,A ;启动 A/D 转换 LOOP1 JB ,LOOP1 ;等待转换数据 MOVX A,@DPTR ;读取 ADC0809 的 IN0 口转换后的数据 MOV 5CH,A ;将预定值数据放入指定的存储单元 MOV DPTR,7FF1H ;读取采样温度值,送 ADC0809 的 IN1 口地址 18 MOVX @DPTR,A ;启动 A/D 转换 LOOP2: JB ,LOOP2 ;等待转换数据 MOVX A,@DPTR ;读取 ADC0809 的 IN1 口转换后的数据 MOV 49H,A ;将采样值数据放入指定的存储单元 MOV A,5CH ;计算 e(i),先取温度给定值 CLR C SUBB A,50H ;温度给定值 采样值 JNC AA0 ;判断 e(i)的正负,如果为正,跳至 AA0 CPL A ; e(i)为负,下两条指令求补 ADD A,01H AA0: MOV R0,57H SUBB A,57H ; |e(i)|β JNC AA1 ; |e(i)|β跳至 AA1 SJMP AA2 ; |e(i)|β跳至 AA2 AA1: LCALL PD ;调用 PD 算法 AA2: LCALL PID ;调用 PID 算法 MOV A,7CH ;将△ Ui通过 DAC0832 输出 MOV DPTR,7FF2H MOVX @DPTR,A INC DPTR MOVX @DPTR,A LCALL DELAY ;调用延时子程序,等待下一次采样计算 SJMP LOOP0 ;进入下一次控制计算 DELAY PROC NEAR DL0: MOV R6,FFH DL1: MOV R7,FFH DL2: MOV R5,FFH DLS: DJNZ R5,DLS 19 DJNZ R7,DL2 DJNZ R6 DL1 RET DELAY ENDP PID PROC NEAR PID:MOV。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。