基于水箱液位控制系统的wincc与matlab的opc通讯系统设计.docx
- 文档编号:9917206
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:50
- 大小:1.92MB
基于水箱液位控制系统的wincc与matlab的opc通讯系统设计.docx
《基于水箱液位控制系统的wincc与matlab的opc通讯系统设计.docx》由会员分享,可在线阅读,更多相关《基于水箱液位控制系统的wincc与matlab的opc通讯系统设计.docx(50页珍藏版)》请在冰豆网上搜索。
基于水箱液位控制系统的wincc与matlab的opc通讯系统设计
1、毕业设计内容分析
1.1毕业设计主要任务
a.四容水箱与控制系统的接线
b.系统硬件及网络组态
c.PLC编程下载,
d.WinCC系统设计
e.Matlab系统设计
1.2四容水箱系统概述
四容水箱系统是一个完整的控制系统模型,通过管道的耦合实现了模拟多输入多输出的过程控制系统。
在学习和应用这套系统的过程中,使我对实际生产中的过程控制有了更为深入的认识。
整个水箱控制系统的结构图如下图所示:
2、系统的设计与说明
2.1PLC系统设计
2.1.1系统设计思路说明
本系统当中,PLC的作用是读取传感器产生实际液位的模拟信号,并通过自己相应的AI模块将其转换为数字量,并由wincc采集以备使用。
而由MATLAB运算得到的控制量(驱动电机)也由PLC传给电机驱动器。
所以本系统中,PLC的作用在于数据的收发。
2.1.2系统的硬件接线
a.硬件清单
SITOP电源:
西门子专用电源
24V稳压电源:
为水位传感器、驱动器、电机提供电压
S7-300系列PLC:
CPU315-2PN/DP
AISM3318*12BIT:
模拟量输入,转换成0—27648的数字量送入CPU
订货号:
6ES7331-7KF02-0AB0
AOSM3328*12BIT:
模拟量输出
订货号:
6ES7332-5HF00-0AB0
MH-C超声波物位变送器:
液位传感器
电机驱动器:
接收SM332输出信号,以此为控制电压驱动电机
b.接线说明
根据PLC所选的AI、AO模块的不同,测量量和控制量的不同,测量精度的不同,所选择的接线方式也不相同。
具体到本系统,因为传感器(物位变送器)是将水位转换成4-20mA的电流信号,所以AI模块采用4线制电流接法。
而电机是通过1-5V的电压信号进行驱动,所以AO模块采用2线制的电压接法。
传感器与驱动器通过说明书完成对应的接线。
SM331的电流测量接法原理图
说明:
根据管脚的标号进行对应的接线,采用4线制接法,即下半部分的原理图,L+和M端为传感器信号的接线端,
SM332用于两线制电压接法原理图
说明:
根据管脚的标号进行对应的接线,采用2线制接法,即采用CH4的接法,系统中使用的是CH2与CH3。
图中的电阻相当于输出的负载,系统中电机驱动器的相应输入端即为负载。
2.1.3STEP7硬件组态设计说明
STEP7对S7-300系列PLC的各种应用都是基于组态硬件的基础上的
a.打开simaticmanager软件,单击“新建”,输入相应的工程名称与路径,单击“确定”。
b.在新建的工程项目上右键,插入一个S7-300站,在新插入的工程站中单击hardware,进入硬件组态画面
c.在硬件组态画面中,根据系统的实际硬件情况,插入相应的CPU,AI,AO模块(根据模块的订货号查找,模块详细信息在2.1.2有所说明)。
并设置CPU的相应通讯IP地址(系统采用工业以太网TCP/IP通讯方式),组态完成后的画面如下图
至此,已经完成了PLC系统的硬件与通讯组态。
西门子公司对每一个模块的每一个点都设定有唯一的绝对地址,编程时可根据这个地址直接进行编程和访问。
AI模块的设置;实际中使用的是通道0、1通道,所以勾选第一组,并选择4线制(4DMU),并将区间设定为4—20mA。
AO模块的设置:
实际中使用的是2、3通道,所以勾选后两组,并规定OutputRange为1—5V的输出区间。
2.1.4STEP7程序编写与说明
根据本系统的要求,PLC中编写的程序应该能够实现数据的收发,因为数据的模数,数模转换已经由AI/AO模块实现,所以程序所需要实现的目标就是将代表水位的模拟量还原成真实的水位值,并且将电机的控制量限定在合适的范围内,使得控制的灵敏度达到最好,同时避免电压过高损坏电机。
由上面所述的编程思路,在STEP7的编程软件中,使用FC105和FC106功能模块,这两个模块功能正好对应,其实质是对输入量或者输出量进行线性映射,使其对应到实际的区间当中。
例如,由AI模块SM331转换后的代表水位的数字量在0——27648的范围内,通过FC105将其与0——26的区间进行线性映射,从而反映出实际的水位值,FC106同理。
程序块说明
IN端口输入为SM331模块转换后的数字量,PIW256为SM331模块一通道的绝对地址。
LO_LIM与HI_LIM为线性映射区间的范围,将映射后的数值存储在DB1.DBD0当中。
与FC105相对应,将电机控制量的值线性对应到输出量0——27648的范围上。
这里LO_LIM与HI_LIM构成的范围选取详见3.5.3节。
两个程序块中的BIPOLAR和RET_VAL引脚没有使用,由于编程时需要定义它们的地址,所以任意加入了两个存储地址。
2.2WinCC系统设计
2.2.1WinCC软件简介
SIMATICWinCC是第一个使用最新的32位技术的过程监视系统,具有良好的开放性和灵活性。
WinCC集生产自动化和过程自动化于一体,实现了相互之间的整合,这在大量应用和各种工业领域的应用实例中业已证明,包括:
汽车工业、机械和设备成套工程等。
2.2.2WinCC系统设计思路
WinCC作为控制系统数据传递的核心,担负着交换水箱参数与MATLAB控制量的任务。
因为WinCC软件是由西门子公司开发的,所以其与PLC的通讯较为简单,只要通过建立变量,设定正确的地址,即可与PLC进行通讯。
WinCC与MATLAB的通讯则要通过OPC协议进行。
由于WinCC运行后,本身就可以作为OPC通讯方式的服务器,所以不需要再做其他设置,由MATLAB完成客户端的设置即可。
2.2.3WinCC系统设计说明
a.打开WinCC软件,选择“文件”→“新建”→“单用户项目”,在“创建新项目”对话框中填写工程名称和选择路径,然后单击“创建”即可
项目创建后,画面如下图
b.在第一个选项“计算机”中,右键选择“属性”,在弹出的对话框中再选择“属性”,之后在弹出的“计算机属性”对话框中选择“启动”,勾选“变量记录运行系统”、“图形运行系统”、“用户归档”三个选项,然后单击“确定”
c.在“变量管理”选项上右键,单击“添加新的驱动程序”,选择“SIMATICS7ProtocolSuite.chn”驱动集,添加完成后如下图所示
d.本系统的设计采用的通讯方式,所以变量的添加都在“TCP/IP”选项下进行。
在“TCP/IP”选项上右键,单击“新驱动程序的连接”,在“连接属性”对话框中单击“属性”,然后在“连接参数”对话框中,输入PLC的CPU的IP地址和相应槽号。
这一步是WinCC在TCP/IP的通讯方式下与PLC通讯的关键。
e.在新生成的连接上右键,单击“新建变量”,在弹出的“变量属性”对话框中,对变量命名,选择类型,并选择变量地址,地址与PLC编程中的相应变量地址一致。
重复上述过程,将所需变量添加完成。
同理,在“内部变量”选项中,添加变量,这些变量的作用将在2.。
。
详细说明。
到此,主要的连接工作已经设置完成。
如下图
L1,L2分别代表液位计1,2的水位;P1,P2分别代表泵1,2
内部变量,in_L1、in_L2代表水位值,out_P1、out_P2代表泵的输出值,SP是目标液位指针。
f.双击“变量记录”选项,将液位值和泵值进行归档设置,便于以后的利用。
完成如下图
g.双击“图形编辑器”选项,在弹出的图版中就可以组态监控画面了。
实验期间建立了多个监控画面,虽不太相同,但实质功能是一致的,最后完成的组态画面如图所示
左边的上图是液位变化的曲线显示。
下图是水泵的输入电压的变化曲线。
右边分别是液位和泵的实时值,还可以设置目标水位置。
右下角是系统的模拟图。
2.3MATLAB系统的设计
2.3.1MATLAB软件简介
MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
2.3.2MATLAB系统设计思路
MATLAB在整个系统中是作为控制部分而存在的。
MATLAB通过应用PID算法,对水位进行实时的调整和控制。
而要实现这一功能,就需要水位数据和控制数据的实时传输,即MATLAB与WinCC进行实时的数据交换。
在2.2.2节已经说明WinCC本身运行即成为OPC通讯方式的服务器,所以只需对MATLAB进行OPC客户端设置,实现OPC通讯即可。
2.3.3MATLAB系统设计说明
在MATLABR2008a(7.6.0)及以上版本中,提供了OPCtoolbox,可以在MATLAB的simulink仿真下直接使用,只要进行相应的设置即可实现OPC通讯。
a.在MATLAB主程序界面中,单击
(simulink)按钮,新建仿真界面,在模块库中找到OPCtoolbox,将模块拉入界面中。
模块说明:
建立opc通讯的组态模块,设置服务器的相关选项,模块搭建时不参与连线。
OPC读取变量模块,用于从wincc读取水位数据。
OPC写变量模块,用于将运算值传送回wincc并以此控制电机的运转。
b.双击“OPCConfiguration”模块,在弹出的对话框中,单击“ConfigureOPCClients”按钮,在弹出的“OPCClientManager”对话框中选择“add”按钮,再单击“select”按钮,找到“OPCserverWinCC”,单击“ok”。
单击“connect”按钮,即可与WinCC相连接。
c.双击“OPCRead”模块,在弹出的对话框中选择服务器,修改sampletime(采样时间)为0.05,之后单击“AddItems”,在相应菜单中即可找到WinCC中关于水位的内部变量,选中即可。
这一步实质上就是WinCC和MATLAB关于相应变量进行对接的过程。
如下图所示
选择服务器,添加变量,修改采样时间
d.双击“OPCWrite”模块,与OPCRead模块的修改方式相同,选择服务器,添加变量,修改该采样时间,使控制输出量与电机驱动变量实现对接。
选择服务器,添加变量,修改采样时间
b.在完成了OPC通讯的基本准备后,只需要搭建起控制部分的模型就可以了。
根据自动控制原理的基本知识,对于单个输入,单个输出的系统,搭建其闭环反馈控制模型如下
SP(目标水位)与in_L1(实际水位)的差值构成输入,经过PID控制器之后输出,通过Saturation限幅模块给电机从而调整水位达到目标值。
由于PID运算的数值没有一个固定的范围,所以通过限幅模块将输出归一化为0—100,当运算值小于0时均输出0,大于100时均输出100
OPCRead与OPCWrite构成一个实际上存在的反馈环,实现系统的闭环控制。
本系统最后的算法并不是简单的普通PID控制,关于算法的研究在第三部分进行详细的说明。
3、PID算法及参数整定的研究与实验
3.1PID控制原理与参数整定方法
3.1.1、PID控制简介
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。
PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型与传递函数时,亦或控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合PID控制技术。
3.1.2、PID控制原理
PID控制,实际中也有PI和PD控制。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
比例(P)控制
比例控制是一种最简单的控制方式。
其控制器的输出与输入误差信号成比例关系。
当仅有比例控制时系统输出存在稳态误差(Steady-stateerror)。
积分(I)控制
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。
对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(SystemwithSteady-stateError)。
为了消除稳态误差,在控制器中必须引入“积分项”。
积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。
这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳态误差。
微分(D)控制
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。
其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。
解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。
这就是说,在控制器中仅引入“比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。
所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。
3.1.3、PID控制器的参数整定
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类。
1.理论计算整定法:
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
2.工程整定方法:
它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。
但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
3.2PID各个参数对系统性能影响的实验验证
3.2.1比例环节(P)
算法选择:
MATLAB自带普通PID
实验方法:
Ki与Kd设置为0,通过Kp的不同大小来反映其对系统的影响
实验取样:
Kp值分别取10,20,30,40,起始水位0CM,水位目标10CM
实验截图:
Kp=10
水位稳定在4CM左右,存在稳态误差。
Kp=20
水位稳定在7CM左右,亦存在稳态误差,但比Kp=10时稳态误差要小。
Kp=30
水位值在目标值附近震荡,说明Kp过大会导致严重超调,且无法进入稳态。
Kp=40震荡进一步严重。
实验结论:
可见,在只有比例作用时,系统存在稳态误差,而随着比例作用的增强,系统会出现严重超调甚至是震荡,所以单独的比例控制很难保证系统的控制效果,需要加入其他的控制方式。
3.2.2积分环节(I)
算法选择:
MATLAB自带普通PID
实验方法:
Kp=10,Kd=0,通过Ki的不同大小来反映其对系统的影响
实验取样:
Ki值分别取1,2,5,起始水位0CM,水位目标10CM
实验截图:
Ki=1
加入一定的积分作用后,稳态误差消除,系统反应较好,没有过大超调。
Ki=2
增大积分作用,系统反应速度减慢(峰值达到15CM),调节时间增长。
Ki=5
系统反应速度进一步减慢(峰值达到18CM),调节时间非常长。
实验结论:
由实验可以看出,积分环节可以有效的消除稳态误差,但是当积分环节的作用过强时,系统响应速度会变慢,调节时间过长,这显然是不符合要求的。
所以需要利用比例环节和积分环节的配合,来达到系统所要求的目标,一个水箱环节用比例与积分的作用就可以达到比较满意的控制效果。
3.2.2微分环节(D)
算法选择:
MATLAB自带普通PID
实验方法:
Kp=15,Ki=1,通过Kd的不同大小来反映其对系统的影响
实验取样:
Kd值分别取0,2,5,起始水位0CM,水位目标10CM
实验截图:
Kd=0
在只有比例和积分的作用时,系统没有过大的超调,但是调节时间较长。
Kd=2
Kd=5
实验结论:
由实验可以看出,微分项对系统的动态性能有修正的作用,可以使系统提前对误差作出反应,避免出现较大的超调。
但是当微分作用过强时会影响积分的作用时间,使系统离目标水位还有一定距离的时候就开始减缓上水速度,影响工作效率。
实际调节时,微分仅用来进行微调整,不作为主要的控制手段。
3.3对控制系统参数的整定
3.3.1整定思路与具体方法
思路
在明确了各个参数的实际作用后,按照先P后I最后D的一般顺序进行整定。
由于系统本身的数学模型并不知道,所以采用工程整定的方式,系统保持运行状态,在线整定。
具体方法
a.确定比例环节P
确定比例环节Kp时,首先去掉PID的积分项和微分项,一般是令Ki为较大值、Kd=0,使PID为纯比例调节。
由0逐渐加大比例环节Kp,直至系统出现振荡;再反过来,从此时的比例环节Kp逐渐减小,直至系统振荡消失,记录此时的比例环节Kp,设定PID的比例环节Kp为当前值的50%~70%。
比例环节P调试完成。
b.确定积分环节I
比例增益Kp确定后,设定一个较小的Ki的初值,然后逐渐增大Ki,直至系统出现振荡,之后再反过来,逐渐减小Ki,直至系统振荡消失。
记录此时的Ki,设定PID的Ki为当前值的45%~60%。
Ki调试完成。
c.确定微分环节D
Kd一般不用设定,为0即可。
若要设定,与确定P和Ki的方法相同,取不振荡时的30%。
d.系统在线运行,再对PID参数进行微调,直至满足要求。
3.3.2参数整定的试验过程与分析
实验方法:
按照上述调节方法在线整定
实验过程:
经过反复筛选,最终确定Ki值为1,Kp值取10—25之间基本能达到最好的效果。
水位变化为10CM到15CM,15CM到10CM,10CM到20CM,20CM到10CM,截图如下
KP=10,Ki=1,Kd=0
10CM到15CM
15CM到10CM
10CM到20CM
20CM到10CM
KP=15,Ki=1,Kd=0
10CM到15CM
15CM到10CM
10CM到20CM
20CM到10CM
KP=20,Ki=1,Kd=0
10CM到20CM
20CM到10CM
KP=25,Ki=1,Kd=0
10CM到20CM
分析:
将上述实验过程的数据列成表格如下,数据从左至右为调整水位的动态过程,例如第一行,当水位位于10CM时,设定目标值15CM,水位最高超调到达16.3CM,然后回落至15CM附近。
PID参数
Ki=1
Kd=0
10CM
超调点
15CM
超调点
10CM
超调点
20CM
超调点
10CM
Kp=10
10
16.3
15
7
10
24.4
20
4.6
10
Kp=15
10
16.1
15
8.7
10
22.7
20
6.5
10
Kp=20
10
22.3
20
6.7
10
Kp=25
10
15.9
15
6.8
10
22.0
20
7.0
10
可见,虽然在稳态时的性能已经能达到要求,但是系统的动态特性却不尽如人意,尤其是在水位大范围变动时,超调严重。
参数的调节方法已经达到较好,说明问题可能出在算法自身或者是驱动器的可利用调节范围上面。
通过这两种方式,有可能使动态性能达到最佳化。
3.4PID算法的研究与改进
3.4.1算法的选择
PID算法多种多样,不同的算法对应解决不同的问题,应用于不同的领域。
在对水箱的控制过程中,水位从高水位回落时,原始PID的运算控制量会呈现线性趋势(即偏差存在的时间越长,控制量就越发加大),水位回落过程中,控制量会出现负值,而实验的所有数据转换都进行了归一化处理,即保证0—100对应有效的1—5V控制电压,所以当水位回落至要求的高度时,控制量开始从负值增加,而从负值增加到0的这段时间属于无效控制,即“饱和”的现象。
从PID的控制性质来看,这种问题是由于PID控制中积分环节(I)的积累作用导致的。
偏差存在时间越长,积分积累的作用就越明显,进入饱和状态的时间也越长,从而导致系统控制性能恶化。
这种现象又称为积分饱和现象。
当明确了控制性能上的问题之后,随即进行了算法的改进。
抗积分饱和的算法有很多种,如积分分离PID,积分反馈PID,变速积分PID,梯形积分PID等等。
后来从应用上考虑,选择了积分分离和积分反馈PID两种算法进行实验。
3.4.2积分分离PID算法的实验
算法介绍:
所谓积分分离PID,就是在被控量与设定值偏差较大时,取消积分的作用,以免由于积分的作用使系统的稳定性降低,超调量增大。
当被控量接近目标值时,从新引入积分控制,以便消除稳态误差。
搭建的matlab仿真模块如下图
仿真模块说明:
中间部分如2.。
。
介绍,即为搭建的PID模块,其关键是利用switch模块,当第二通路的值大于某一设定值时,接通第一通路,即去掉了积分作用。
当第二通路小于设定值时,接通第三通路从新引入积分作用。
实验结果:
进行了几组实验,部分截图如下
可见动态效果得到明显改善,但是对于有些位置的控制很难保证,若过晚的引入积分作用,因为只有比例作用的存在,使系统稳定在稳态误差位置不再变化,或者比例作用过强而进入振荡状态。
而过早的引入积分作用,又会使饱和作用抑制的不够完全,恶化系统的动态性能。
平衡点的选取很难把握,所以最终放弃了这种算法。
3.4.2积分反馈PID算法的实验
算法介绍:
所谓积分反馈PID,就是对积分本身引入反馈,使PID的运算过程能够快速脱离饱和区甚至是不进入饱和状态。
进入饱和区越深,反馈作用越明显,形成一种弹性控制效果,保证系统的快速反应能力。
而在非饱和区运行时,积分反馈效果为0,即为一般PID控制。
搭建的matlab仿真模块如下图
仿真模块说明:
积分的反馈量来自于限幅模块(将PID运算结果归到0—100之间,小于0时输出0,大于100时输出100)的两端,将他们的差值进行一定的增益后反馈给积分环节,从而达到抗积分饱和的效果。
在文献中,积分反馈的增益称为Tt,即为四个参数的PID控制。
同时,在水位较低的区间,积分积累的时间较短(水位上升快),应选用较小的积分反馈的增益Tt,避免过快的退出满运行状态,使调节时间增大。
而在水位较高的区间,积分积累的时间较长(水位上升慢),应选用较大的积分反馈的增益Tt,避免积分退出饱和区过慢,产生大的超调,调节时间增长。
根据这一思路,对上述的模块进行微小的改进,重新搭建的模块如下图所示
通过引入一个switch复合开关模块实现要求,switch模块是由第二通道作为选择开关,当满足switch的内部设置条件时,开关接通一通道;不满足条件时开关则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 水箱 控制系统 wincc matlab opc 通讯 系统 设计