计算机控制实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机控制技术仿真实验》
实验报告
姓名:
学号:
班级:
专业:电气工程及其自动化
学院:电气与工程信息学院
2019年11月30日
目录
实验1:数字PID控制器设计 (1)
一、任务描述 (1)
二、设计过程 (1)
2.1 创建画面 (1)
2.2 数据库组态 (2)
2.3 动画连接 (2)
2.4 脚本设计 (3)
三、运行结果分析 (6)
3.1 调试过程 (6)
3.2 运行结果 (7)
实验2:基于Smith预估器的纯滞后控制系统设计 (7)
一、任务描述 (7)
二、脚本修改 (7)
2.2 具有纯滞后补偿的数字控制器算法设计 (9)
三、运行结果分析 (12)
3.1 调试过程 (12)
3.2 运行结果 (13)
实验3:综合控制系统设计 (14)
一、任务描述 (14)
二、设计过程 (14)
2.1 创建画面 (14)
2.2设备组态 (14)
2.3 数据库组态 (15)
2.4 动画连接 (15)
三、运行结果分析 (16)
3.1 调试过程 (16)
3.2运行结果 (16)
实验1:数字PID控制器设计
一、任务描述
本实验创建一个液位调节阀控制的范例,主要目的是学习使用力控的脚本来完成自定义功能。
系统采用PI控制算法,对单容水箱液位进行控制,由于没有连接真实控制对象,所以使用仿真算法获得对象特性。
运行范例时,需要合上开关,打开出水阀门,然后设置值。
这样才能看到变化。
系统默认状态:开关关闭的,出口阀门打开的。
系统简介:一个锅炉热水系统,要求给水泵给锅炉供水,通过调节阀控制。
水泵上有一个上水开关。
同时锅炉向外供水,是一个自由开口。
控制要求:要求控制锅炉液位到一个指定的高度。
控制策略:使用Pl控制。
二、设计过程
2.1 创建画面
(1)图库的“罐”中找出一个合适的锅炉容器;在“管道”组中选择管道,在“阀门”中选择调节阀和出水阀门,在“泵”中选择一个水泵;
(2)在“开关”中选择一个电源开关;
(3)操作面板可以根据图库里的进行修改,或自己绘制一个,从工具箱中拖放一个实时趋势;
(4)制作画面需要显示的文本;
(5)PI控制器是自己制作的一个单元。
首先绘制一个面板,插入垂直标尺线,插入黑色文本框。
绘制两个色条,分别连接到标记PID_P和PID_I,绘制两个文本,分别连接到PID_P和PID_I。
选择所有这些图形,然后右击,选择“选择”菜单下“打成智能单元”。
完成界面如图1-1所示:
图1-1 液位调节阀控制画面图
2.2 数据库组态
在“中间变量”里定义如下内存变量:
图1-2 中间变量设置
2.3 动画连接
在界面上建立连接。
1) 游标,连接FV101变量,用于手动设置FV101,以便查看仿真系统是否
正常。
2) 为水泵开关,连接到PumpPower,控制水泵的开关。
3) 为两个流量计旁边的文本分别连接到FT101、FT102上。
4) 为出口阀门进行动画连接,双击出口阀门,在“阀门向导”里的“表达式”里填上点F101。
5) 溢出上面的长方形,设定“颜色相关动作”的“闪烁”,如图1-3设置:
2.4 脚本设计
2.4.1 仿真程序脚本
整个程序放在应用程序脚本中。
启动时,设置各个参数的初始值,在进入程序中输入:
FT101=0;
FT102=0;
在运行期间,按照1000毫秒的周期运行。
对于调节阀,其整个开度从0到100所需要的时间为20秒,那么每步最大变动5。
如果调节阀控制量为FV101,真实开度为FV101R,则在程序运行周期执行中输入:
IF FV101>FV101R THEN
FV101R=FV101R+5;
IF FV101R>FV101 THEN
FV101R=FV101;
ENDIF
ENDIF
IF FV101<FV101R THEN
FV101R=FV101R-5;
IF FV101R>FV101 THEN
FV101R=FV101;
ENDIF
ENDIF
//系统流量特性的仿真程序如下:IF PumpPower==1 THEN
FT101=FV101R;
ELSE
FT101=0;
ENDIF
//输出流量特性:
IF F101==1 THEN
FT102=10*Sqrt(LT101);
ELSE
FT102=0;
ENDIF
//锅炉液位高度特性
LT101=(FT101-FT102)/50+LT101; IF LT101<0 THEN
LT101=0;
ENDIF
IF LT101>100 THEN
OVER=1;
LT101=100;
ELSE OVER=0;
ENDIF
运行范例,合上开关,打开出口阀门。
然后通过游标设定调节阀的开度,可以看到各个流量在增加,液位不断按照指数上升,最终上升到一个稳定高度。
此时输入流量等于输出流量。
2.4.2 PI控制算法
在这里使用DDC的控制算法,具体的控制算法的理论依据可以参考《过程控制》(金以慧主编,清华大学出版社,第197页)。
这里按照增量算法,PI调节器输出等于上一次输出加上本次增量,在“应用程序动作”—》“程序运行周期执行”中输入:
e_k=SP-LT101;
FV101=PID_P*e_k;
IF FV101>100 THEN
FV101=100;
ENDIF
//显示期间,按照1000毫秒的时间间隔,积分时间单位也是毫秒
IF PID_I==0 THEN
PID_I==1;
ENDIF
FV101=FV101+PID_P*(SP-LT101-e_k)+1000/PID_I*(SP-LT101);
IF FV101<0 THEN FV101=0;
ENDIF
IF FV101>100 THEN
FV101=100;
ENDIF e_k=SP-LT101;
三、运行结果分析
3.1 调试过程
范例运行时,需要合上水泵开关,打开出口阀门,然后设置值,这样才能看到变化。
同时,设置液位给定值、比例系数、积分时间一个初始值,比如分别为50、100、200000,观察系统是否控制稳定,调节合适的参数,使得实时趋势中的曲线和理论曲线差不多,如图1-4所示:
图1-4实验运行结果整体图
3.2 运行结果
图1-5 实时曲线图
实验2:基于Smith预估器的纯滞后控制系统设计
一、任务描述
本实验设计设计的水箱液位定值控制系统主要是利用Smith预估器的纯滞后控制,根据外界因素的变化,诸如出水阀门的开度、外部用户用水量的变化等因素,对水箱中的液位值进行实时的采集,通过控制入水调节阀进行实时自动调节,以此使水箱液位保持恒定的状态。
系统简介:本系统是在实验原有的设备基础上建立和完善的。
系统控制的主要交量包括液位和阀门开度,对这些变量的控制应采取闭环控制方式。
控制要求:是对单容水箱控制液位调整范围为0-100Cm,液位控制情度小干等于Lcm,并能实现实时监控。
控制策略:使用Smith预估器的纯滞后控制
二、脚本修改
2.1 仿真脚本
//---进入窗口整个程序放在应用程序脚本中。
启动时,设置各个参数的初始值,在进入程序中输入:
//FT101:主回路流量FT102:出口回路流量//初始化
FT101=0;
FT102=0;
fa1=0;
flag=1;
//---------窗口运行
//①变量初始化
IF PumpPower==1 THEN
FT101=FV101R;
IF flag==1 THEN
flag=0;
PID_P=100;
PID_I=660;
PID_D=120;
uk=0;
uk_1=0;
uk_2=0;
ek_1=0;
ek_2=0;
yk_1=0;
yk_2=0;
Lk=0;
Lk_1=0;
Ek=0;
uuu=2;
d2e=0;
ENDIF
ELSE
FV101=0;
2.2 具有纯滞后补偿的数字控制器算法设计
//②求ek
e_k=SP-LT101;
//③PID计算+赋予输出
//避免分母0
IF PID_I==0 THEN
PID_I=1;
ENDIF
//--积分分离
d2e=SP/5;
IF e_k>d2e THEN
uuu=1;
ELSE
uuu=0;
ENDIF
//--uk表达式
uk=((PID_P+PID_P+1000/PID_I)*(e_k-yk_1+uk_1/50)+1000/PID_I*EK*uuu-PID_D*(ek_1-yk_2+(uk_2-uk_1)/50))/((PID_P+PID_P+1000/PID_I)/50+1);
//--EK累加+过调避免
EK=EK+e_k;
IF e_k<=0 THEN
uk=0;
ENDIF
//--uk限幅
IF uk<0 THEN
uk=0;
IF uk>100 THEN
uk=100;
ENDIF
//--yk计算
yk=yk_1+(uk-uk_1)/50;
FV101=uk_1;//延迟输入输出特性模拟//④其余限幅+记录前值---------
//前值记录
uk_2=uk_1;
uk_1=uk;
ek_2=ek_1;
ek_1=e_k;
yk_2=yk_1;
yk_1=yk;
//FV101限幅
IF FV101<0 THEN
FV101=0;
ENDIF
IF FV101>100 THEN
FV101=100;
ENDIF
//uk衍生系列限幅
IF uk_1<0 THEN
uk_1=0;
ENDIF
IF uk_1>100 THEN
uk_1=100;
ENDIF
IF uk_2<0 THEN
ENDIF
IF uk_2>100 THEN
uk_2=100;
ENDIF
//⑤输入同步
IF FV101>FV101R THEN
FV101R=FV101R+5;
IF FV101R>FV101 THEN
FV101R=FV101;
ENDIF
ENDIF
IF FV101<FV101R THEN
FV101R=FV101R-5;
IF FV101R>FV101 THEN
FV101R=FV101;
ENDIF
ENDIF
//⑥计算L+赋值LT101
//--防止过调
IF e_k<=0 THEN
FT101=0;
ENDIF
//--带有延迟的输出特性模拟
Lk=Lk_1+(FT101-FT102)/50;
Lk_1=Lk;
LT101=Lk;
//over+限幅
IF LT101<0 THEN
LT101=0;
IF LT101>70 THEN
OVER=1;
ELSE OVER=0;
ENDIF
//输出流量特性:
IF F101==1 THEN
FT102=10*Sqrt(LT101);
ELSE
FT102=0;
ENDIF
IF FV101R>0 THEN
fa1=1;
ELSE
fa1=0;
ENDIF
三、运行结果分析
3.1 调试过程
自动模式时,当操作者输入液体的液位值时,系统自动的控制整个过程,并最终以理想的方式稳定在输入值,误差不应大于0. 1CM。
当罐中的液位低于下限位置时,系统发出下限报警,当液体到达上限位置时能发出上限报警,计算机能够监控整个系统的工作过程包括:显示罐体的液位测量值、工程单位及控制泵的状态。
手动模式时,当系统处于手动模式时可以通过计算机或外部的按钮调节系统的参数,如阀门开度,水泵的启停,电池阀的关断等.
范例运行时,需要合上水泵开关,打开出口阀门,然后设置值,这样才能看到变化。
同时,设置液位给定值、比例系数、积分时间一个初始值,比如分别为
50、100、200000,观察系统是否控制稳定,调节合适的参数,使得实时趋势中的曲线和理论曲线差不多,如图2-1所示:
图2-1 范例运行图
3.2 运行结果
运行范例,可得监测实时曲线如图2-2所示。
图2-2监测实时曲线
实验3:综合控制系统设计
一、任务描述
本实验创建一个十字路口交通灯的范例,主要目的是使用力控组态软件实现对真实控制对象统的监测。
运行范例时,需要链接真实控制对象,打开启动开关,根据对象的变化,可以在监测画面上清楚的显示红绿灯的变化。
系统简介:一个十字路交通路口,要求链接控制对象,通过对象变化,实现监测。
控制要求:交通灯能够随控制对象变化而变化。
二、设计过程
2.1 创建画面
在窗口中创建如下图所示的十字路口交通灯画面
图3-1 十字路口交通灯画面
2.2设备组态
打开I/O设备组态选择PLC芯片,选择三菱公司,选择FX系列编程口,选择与计算机相匹配的串口,设置好设备组态,如下图所示:
图3-2 建立I/O设备组态
2.3 数据库组态
打开数据库组态,选择区域一选择单元一,创建如下图所示的7个数字I/O点
图3-3 创建数据库组态
2.4 动画连接
在界面上创立连接
(1)新建7个文本xo,y0,y1,y2,y3,y4,y5,在动画连接中选择模拟量数值输入,分别连接对应的数据库组态变量。
(2)南北方向的红黄绿灯按照颜色对应,两两一组连接分别连接到变量y0,y2,y4,并设置条件格式变量值为1时,路灯正常发亮,当变量值为0时,路灯颜色设置为黑色。
同理东西方向的红黄绿灯也按照颜色对应,两两一组连接分别连接到变量y1,y3,y5,并设置条件格式变量值为1时,路灯正常发亮,当变量值为0时,路灯颜色设置为黑色。
(3)马路上的路灯与该条路上对应的绿灯连接到同一变量,南北方向连接到y4,东西方向的连接到y5。
三、运行结果分析
3.1 调试过程
(1)自动监测:利用端口将组态软件与被控对象连接起来,打开启动开关,观察y0,y1,y2,y3,y4,y5的值是否与被控对象的变化一致,同时画面中红绿灯的变化是否与被控对象变化一致,如果不一致则继续调整。
(2)手动监测:打开启动开关,手动设置y0,y1,y2,y3,y4,y5的值,观察画面中的红绿灯变化是否与控制变量一致,如果不一致则继续调整。
3.2运行结果
手动监测,如果设置正确,可以得到如下图所示的运行结果图。
图3-4 运行结果图。