温度控制实验指导书_第1页
温度控制实验指导书_第2页
温度控制实验指导书_第3页
温度控制实验指导书_第4页
温度控制实验指导书_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、温度控制实验指导书一、实验原理温度源把温度信号转成电信号,模块将采集到的模拟量转化成数字量与上位机(计算机)通过232接口通讯,上位机发出相应的指令控制反馈模块对输出量进行实时控制。这样就构成了一个计算机温度控制系统。在定时(秒)过程中通过控制加热开关的导通和闭合的时间比达到温度控制的目的。PID控制简介PID控制器是连续控制系统中技术成熟 、应用最为广泛的控制器,在模拟控制系统中 ,最常用的控制规律足 PID控制。常规 PID控制系统原理框图如图2所示。系统由模拟控制器和被控对象组成。图2.模拟PID控制系统的原理框图PID是一种线性控制器,它根据给定值r(t)与实际输出 y(t)构成控制偏

2、差。e(t)=r(t)一y(t)将偏差比例(P)、积分(I)和微分(D)通过一定的线性组合构成控制量 U(t)对被控对象进行控制。它的控制规律为: 式中:KP 为比例系数;KI为积分时间常数;KD为微分时间常数。将上式进行离散化处理,可得PID离散表达式:式中:k为采样序号,代表的是第k次采样。u(k)为第 k次采样时刻的计算机输出值;e(k)为第k次采样时刻的输入的偏差值;e(k-1)为第 k-1次采样时刻的输入的偏差值。同理可得u(k-1)的表达式:用u(k)减去u(k-1),可得u的值:u=KPe(k)-e(k-1)+KI e(k)+KDe(k)-2e(k-1)+e(k-2)KPe(k)

3、-e(k-1)是比例的贡献,KI e(k)是积分的贡献,KDe(k)-2e(k-1)+e(k-2)是微分的贡献。二、实验目的及内容1、目的建立计算机温度控制的实践基础。综合应用所学过的传感器知识,计算机数据采集知识和控制算法,自行设计一个计算机温度控制系统,理解计算机控制系统的基本构成。2、内容可通过图1中的路径来组建计算机温度控制方案。继电器输出计算机控制方法PID控制 温度源采集模块K型热电偶图1.计算机温度控制方案在本实验中,采用K型热电偶作为传感器,通过采集模块将信号输给计算机。通过在VB环境下对其进行编程,选用PID控制。三、实验仪器设备1、 CSY-2000型温度源,220V交流电

4、提供加热电源,24V直流电提供风扇电源。2、 工业控制计算机。3、 K型热电偶。4、 台湾铭纬开关电源,220V交流电输入,输出直流电压24V,电流1.5A。5、 SASR-25DA施耐德固态继电器,输入直流电压332V,输出交流电压24380V。6、 台湾泓格公司模块7018、7060、7520,24V直流供电。7、 计算机及232串口线。8、 导线若干。四、实验方法与步骤1、 按照图中所示接线。其中,220V交流电为系统提供加热电源,开关电源将其转化为24V直流电,为模块和温度源的冷却风扇供电。K热电偶作为传感器将温度信号转化为有用的电压信号传入7018模块。7018是一个AD转换模块,

5、它能将电压模拟量转化为机器能识别的数字量,通过DATA口与另外两个模块进行数据传输。各模块之间采用的是485方式通讯,而计算机只有232接口,7520能将这两种方式互相转化,从而使模块和计算机之间能够进行通讯。当信号传到计算机上时,计算机通过PID算法对7060模块发出相应的指令。7060是一个继电器开关模块,收到指令后,控制固态继电器的闭合时间,从而控制温度源加热的时间,起到调节温度的效果。 2、 温度实验一:定时,理解定时器应用语句。程序代码以及界面3、 温度实验二:用通讯采集信号,结合硬件系统熟悉用计算机和模块之间的通讯来采集温度信号。程序代码以及界面注释:关于控件的添加右键单击窗口左边

6、的工具栏 点击“部件” 勾选“Microsoft Comm Control 6.0” 点击“确定”即添加控件4、 温度实验三:用通讯控制继电器,断开温度源电源,运行程序,观察固态继电器的开关变化。5、 认识实验:PID程序,理解其中的算法部分。程序代码以及界面Dim y As SingleDim r As SingleDim kp, ki, kd As SingleDim Uap, Uac, OutT As SingleDim e(0 To 10) As SinglePrivate Sub Command1_Click() kp = Val(Textk(0).Text) 输入PID各控制量值

7、ki = Val(Textk(1).Text) kd = Val(Textk(2).Text) r = Val(Text1.Text) 输入目标温度值 e(2) = r - y 计算温度差 If Abs(e(2) 10 Then Uac = kp * (e(2) - e(1) + ki * e(2) + kd * (e(2) - 2 * e(1) + e(0)PID算法 Else Uac = kp * (e(2) - e(1) 只用比例控制,为的是在当前温度与目标温度相差较大时 加速升温 End If e(0) = e(1) e(1) = e(2) OutT = (Uap + Uac) Uap

8、 = OutTEnd Sub6、温度控制,理解其中PID有关算法的语句,并填补空缺的语句。使得程序在默认目标温度50摄氏度,默认的比例、积分、微分系数下能进行温度控制。程序代码以及界面Option ExplicitDim C(1 To 1000) As StringDim i As IntegerDim y(1 To 1000) As SingleDim e(10) As SingleDim Uac, Uap As SingleDim u(0 To 1000) As SingleDim Kp, Ki, Kd As SingleDim OutT As Single 继电器通电时间Dim r As

9、 Single 当前采集温度Private Sub Command1_Click() 开始Timer1.Enabled = TrueTimer2.Enabled = TrueDim t As Single r = Val(Text1.Text) 温度坐标图 t轴 For t = 0 To 420 Step 60 If t 0 Then Picture1.Line (t, 2)-(t, 0) End If Next t For t = 0 To 420 Step 12 If t 0 Then Picture1.Line (t, 0.6)-(t, 0) End If Next t y轴 For t

10、 = 0 To 160 Step 20 If t 0 Then Picture1.Line (3, t)-(0, t) End If Next t For t = 10 To 110 Step 20 Picture1.Line (1.5, t)-(0, t) Next t For t = 0 To 160 Step 1 If t 0 Then Picture1.Line (1, t)-(0, t) End IfNext t5条温度曲线辅助观察线 Picture1.Line (0, r)-(420, r), vbBlue Picture1.Line (0, r - 1)-(420, r - 1)

11、, vbGreen 超调1基准线 Picture1.Line (0, r + 1)-(420, r + 1), vbGreen Picture1.Line (0, r - 3)-(420, r - 3), vbBlue 超调3基准线 Picture1.Line (0, r + 3)-(420, r + 3), vbBlueEnd SubPrivate Sub Command2_Click()暂停Timer1.Enabled = FalseTimer2.Enabled = FalseEnd SubPrivate Sub Command3_Click() 温度曲线刷新按钮Dim t As Sing

12、leFor t = 1 To i - 1 Step 1 If t = 1 Then Picture1.PSet (t, y(t), vbRed ElseIf t 1 Then Picture1.Line (t - 1), y(t - 1)-(t, y(t), vbRed End IfNext tEnd SubPrivate Sub Command4_Click() 退出EndEnd SubPrivate Sub Form_Load() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If MSComm1.CommPort

13、 = 1 设置通讯 MSComm1.Settings = 9600,N,8,1 MSComm1.PortOpen = True Timer1.Interval = 5000 i = 1 Picture1.Scale (0, 160)-(420, 0) 建立图标坐标系 Uap = 0 e(1) = e(2) = 0End SubPrivate Sub Form_Unload(Cancel As Integer)EndEnd SubPrivate Sub Timer1_Timer() Dim buf As String 温度数据缓存变量 Dim t As Single Dim m As Singl

14、e MSComm1.Output = #011 & vbCr 读温度 m = Timer buf = Do Until Timer - m 0.2 确保采集到数据 buf = buf + MSComm1.Input 温度的字符的数据缓冲 If Right(buf, 1) = vbCr Then GoTo Run1 End If DoEvents Loop Text4.Text = 通讯失败!Run1: Text4.Text = 恭喜,通讯正常 y(i) = Val(Mid(buf, 4) 取温度数据 Text3.Text = y(i) Kp = Val(Text7.Text) Ki = Val

15、(Text8.Text) Kd = Val(Text9.Text) r = Val(Text1.Text) e(0) = r - y(i) If Abs(e(0) 4800 Then 开的时间过长或过短时的处理 OutT = 4800 End If If OutT 140 Then 防止温度超过140度,对温度源保护 OutT = 0 End If If OutT 10 Then MSComm1.Output = 021 & vbCr 开继电器 m = Timer buf = Do Until Timer - m 0.2 确保采集到数据 buf = buf + MSComm1.Input 温度

16、的字符的数据缓冲 If Right(buf, 1) = vbCr Then GoTo run2 End If DoEvents Loop Text4.Text = 通讯失败! End Ifrun2: Timeropen.Interval = OutT Timeropen.Enabled = True Text2.Text = OutT If i = 1 Then绘制温度曲线 Picture1.PSet (i, y(i), vbRed ElseIf i 1 Then Picture1.Line (i - 1), y(i - 1)-(i, y(i), vbRed End If i = i + 1

17、End SubPrivate Sub TimerOpen_Timer()Dim m As SingleDim buf As Stringm = TimerMSComm1.Output = 020 & vbCr 关继电器 Do Until Timer - m 0.2 buf = buf + MSComm1.Input 温度的字符的数据缓冲 If Right(buf, 1) = vbCr Then GoTo run3 End If DoEvents LoopText4.Text = 通讯失败!run3:Timeropen.Enabled = FalseEnd SubPrivate Sub Timer2_Timer()Label1.Caption = TimeEnd Sub7、 当程序运行无误后,在其窗口上输入目标温度50摄氏度,改变比例、积分、微分系数使得温度曲线在上升过程结束后,进入恒温过程时温度偏差在正负1摄氏度以内(如图 2所示),然后在表格中记下

温馨提示

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

评论

0/150

提交评论