SPS软件学习总结.docx
《SPS软件学习总结.docx》由会员分享,可在线阅读,更多相关《SPS软件学习总结.docx(15页珍藏版)》请在冰豆网上搜索。
SPS软件学习总结
一、SPS软件模块结构
1.1Trainer
通过SPS软件提供的功能模块和软件接口,仿照SCADA系统界面,可开发出培训器操作界面,并通过StOPC与界面进行数据连接,从而将后台的仿真模型与前台的操作界面有机地结合起来。
主要是用来做培训器操作界面,并在此界面上可以显示全线的参数及一些趋势图,也可以完成一些实验(干线截断阀被意外关闭)。
1.2Leakfinder
1.3Statefinder
1.4Predictor
1.5Simulator
是SPS仿真软件系统的内核;图形建模(ModelBuilder)和文本编辑(INPREP)相互配合。
INPREP文件
1模型基础文件,用于油品信息、环境信息和站场信息等的编辑;
2PREPR:
预处理,检查INPREP
3用户自己编写,经预处理后生成两个文件。
(RESTRT:
二进制文件,供TRANS调用;OUTPRP:
预处理后的信息)
INTRAN文件
模型基础文件,用于相关模拟逻辑和仿真命令等的编辑;
TRANS:
预处理,检查INTRAN
SAI.COUT文件:
最后的TRANS错误或报警信息
OUTTRN文件:
INTRAN文件每一行的判断描述,记录操作中的信息
TRANS窗口:
距离曲线(DISTPLOT),时间曲线(TIMEPLOT),报表REPORT,SHOW:
显示模型中的所用到的所有内容的信息,SHOWGLOBALS:
显示全局参数,FLIP:
显示当前距离/时间曲线画面的设置信息。
INC文件
子程序文件;一般在INPREP中用于站场的编辑;在INTRAN中用于一些控制逻辑的编辑。
SIMPLOT:
数据输出;TPORT:
出一些图表结果
二、SPS标准的设备
三、语言
3.1INPREP文件
首先要建立基础模型,保证可以运行。
1、相关信息的收集:
1管道信息:
直径,长度,壁厚,高程,最大允许工作压力(MAOP),管线材质,杨氏弹性模量,管道摩擦因子或管内壁粗糙度;
2阀门信息:
•尺寸
•类型(球阀、闸阀、止回阀、泄压阀、控制阀等)
•阀门操作的频度(对从不操作的阀门,可不对其建模)
•在各开度位置的流动特性曲线(阀门流量系数对阀门开度)
•阀门的开关特性:
行程时间、开关曲线(阀门开度对阀门开、关时间)
•阀门全开时的阀门系数
•站场出口端(或进口端)控制阀的描述,包括设定点类型(如吸入压力设定点、排出压力设定点、流量设定点)
•阀门出厂时的测试参数(包括泄压阀
3压缩机:
1)离心式压缩机
•离心式压缩机的性能数据(压头、效率、排量与转速的关系
•透平的性能曲线(透平的最大功率、环境温度和转速的关系、最小和最大转速)
•驱动机类型(感应电机、同步电机、透平等,可选)
•站控方式(最小流量关停、排出压力低关停、排气温度关停等)
2)往复式压缩机
•压缩机气缸数据(直径、冲程、速度范围等)
•卸载设备描述
•驱动机类型(一体式或分体式)
•站控方式(最小流量关停、排出压力低关停、排气温度关停等)
2、编辑
例子:
/*:
单行注释;
1基础信息:
模型名称,相态(LIQUID/GAS),单位(ENGLISH/METRIC),
对于缺省的单位可单独定义;
热力模式,状态方程(液体:
STATETABLE:
温度对其物理属性有明显影响的单一油品;SCL:
一种或多种油品;BWRS:
液化气体。
气体:
CNGA:
天然气;BWRS:
气体组分跟踪;AGA:
有用户自定义的碳氢气体),CUSTODY,管线全局参数(PIPEPARMS);
2控制系统元件:
PID控制器,传感器,继电器,执行机构;
3=EQUIPMENT:
来分隔开基础信息和设备信息;
4管道设备:
长管道(TransferLines)和短管(Header),泵(Pumps)与压缩机(Compressors),油气源及接收设施(Externals),调节阀,理想调节阀(RE/RG(gas)),控制阀(ControlValve),截断阀(BlockValve),止回阀(BC/CV(gas)),换热器,泄压阀。
Externals:
TransferLines:
长度(LEN),外径(OD),壁厚(WT),粗糙度,高程(elevation),MAOP(最大允许操作压力),地表温度和热力信息
BlockValves:
初始状态,开关阀门系数曲线,阀门系数,行程,开度
BINITNAME-CNC+CNCCRV-OCRV-CCvcCvotFR
类型:
–B:
既可以用于气体,也可以用于液体–BV:
只能用于气体
其他阀门:
–CheckValves(BC/CV(gas),止回阀)–理想调节阀(RE/RG(gas))–ControlValve(控制阀)–SurgeReliefValve(水击泄放阀)
控制阀(PID):
CV-阀门系数,行程时间,开关曲线,设定点
必须有相对应的控制系统(执行器、控制器、传感器)
特殊的阀门曲线(线性-“C(X)2”,等百分比-“EQPC”,用户自定义)
/*NAME-CNC+CNCCRV-CXCvcCvo//CRV-CX阀门曲线
VVLV1ND2ND3EQPC0.00180.
+CHECK0.12500./*Checkvalvemodeledinseries/*DPQ
传感器(S):
提供信号给控制器(C)和继电器(Y)
(PRES压力TEMP温度FLOW体积流量RPM泵/压缩机的转速POWR泵/压缩机的功率STEMBlock,CheckorControlValve的阀位DENS密度VISC粘度其他...)
连接在一个设备的前(+)或后(-);不要连接在一个节点名称上;由TYPE来决定测量的类型。
SNAME±CNCTYPEVZCURVV1V2Z1Z2//V:
输入;Z:
输出;VZCURV?
SSDIS+CV1PRESV(Z)20100001000
控制器(C):
/*CNAMEINPUTSPKCTDTIVSNC//SP设定值
CCSUCSSUC:
OUT501.20-0.20-50
继电器(Y):
通常在长输管道中用低选(LO)。
/*YNAMETYPEIN1IN2...
YY1HICC1CC2
执行器(A):
通常接收控制器(Controller)的输出:
–用来控制转速,压力,流量,阀门等
–其从输入到输出的曲线用线性曲线X(V)2
/*NAMELNAMEPEQUIPXV-CRVV0V1VR//LNAME:
由什么控制;PEQUIP:
控制什么
AA1YYLVCV1X(V)201V15
理想调节阀(RE):
控制流量,上下游压力,阀门开度
/*NAME-CNC+CNC[CRV-CX]CvcCvo
RERE3ND12ND13C(X)20.001250
+TRAVEL.TIME0.5//行程时间
+DOWNSTREAM.PRESS.SET300//下游压力
+CHECK
Header:
用在局部管段时。
HNAME-CNC+CNCLENODWT[T-][T+]
+PPQP-P+FLOW
+MOODYFRICT
Pumps:
串联的截断阀&止回阀在入口和出口;旁路的止回阀;能够控制转速/功率。
/*NAME-CNC+CNC[SPEED][HPWR]
PPUMP1ND14ND1512002500
/*±RPM-BPHP-BPHD-BPQ-BP
/*Plussignmeanspumpison,Minussignmeanspumpisoff
-12001800320655
/*+H-CURVEHD-MULTQ-MULTRPM
+HDCRV111200
/*+P-CURVEHP-MULTQ-MULTRPM
+PWRCRV111200
Compressors:
1往复式的压缩机(RC):
模拟汽油发动机驱动的单级往复式压缩机与理想化的控制
2理想可控制的离心压缩机(KCorCC)-模拟一个或多个变量高速,燃气轮机驱动离心压缩机并联运行
3可变导叶的压缩机(KV)-模拟一个或多个可变导叶压缩机并联运行和模拟作为一个单一的单位
4理论功率-流量的压缩机(KPorGC)-模拟理想化压缩机理论模型,用于任何类型的压缩机
KPCOMP1ND21ND22ND21
+RATED.POWER3100//额定功率
+PARAMETERS1931920.231//参数
+MAX.DISC.PRESS1000//最大压力
+DISCH.PRESS.SETP985//
+MAX.POWER10000//最大功率
3.2INTRAN文件
1、BEGIN:
用来定义启动或定义重新启动的时间,必须在INTRAN文件的第一行
2、INTERACTIVE:
告诉TRANS可以执行交互式的命令
编辑INTRAN文件最少需要BEGIN和INTERACTIVE
BEGIN0,/*启动一个新的模拟
+BEGIN.TIME=0,/*初始时刻为0
+ERROR.TOLER=3/*最大的压力误差,缺省值为2
INTERACTIVEMSWIN/*指定模拟发生在Windows™窗口下
3、进入TRANS窗口的初始画面:
MACRO(INIT,PROF1)
/*当运行TRANS后,显示的画面为PROF1
/*(通常用一个距离曲线,如主干线的水力坡降线)
4、上游用“-”表示:
PIPE1:
P-
BLOCK1:
Q-
PUMP1:
P-
Note:
气体模型中用U来表示PIPE1:
PU
下游用“+”表示:
REG1:
P+
CHECK1:
Q+
COMP1:
P+
Note:
气体模型中用D来表示PIPE1:
PD
5、定义是否所有的计算数据都用有趋势显示:
TRENDLIST*,KEY.LETTER=T,PEEK.MATCH=*:
P-*:
P+*:
Q?
TRENDLIST*,K.L=E,P.M=*:
P*:
Q*:
SP
/*慎用下面的语法格式
TRENDLIST*
注:
*可表示任何长度的字符串,而?
仅代表单一字符。
6、POKE:
影响模拟速度,降至最小时步;会影响水力相关值的变化。
SET:
保证当前的时步,不用到最小时步。
RAMP:
给一个可赋值的变量定义一个”schedule”(线性变化的值;可以随着时间的变化输入一系列的值;也可以指定一个特殊的方程来定义)
RAMPDELIV:
SNQ=1211.511121921
+TIME=1120300360480540
/*AffectHydraulics
POKECNTRL1:
SP=300,TIME=120
/*NoAffecttoModelHydraulics
SETABC_COUNTER=2
7、TimeStep
DT-时步
DTMIN-最小允许的时步(PREPR决定的这个值)
DTMAX-最大时步
8、SHARE:
给TPORT使用的。
SHARE*/*共享所有的数据SHARE*,KEY.LETTER=T,PEEK.MATCH=*:
P-*:
P+*:
Q?
REVIEWSIZE//定义REVIEW文件的大小
9、DEFINE:
定义变量或数学表达式
10、存储当前状态ARCHIVE的语法:
/*ARCHIVEFILENAME[,TIME=T1T2...Tn][,DT=INTERVAL]
ARCHIVESTATE1,TIME=120,DT=60
/*minutes存储当前状态SAVE.STATUS的语法:
/*SAVE.STATUSFILENAME[,TIME=T1T2...Tn][,DT=INTER]SAVE.STATUSSTATE1,TIME=120,DT=60/*minutes
SAVE.STATUS存储的信息少于ARCHIEVE,调用的速度快.
调用存储的状态LOAD.STATUS的语法:
LOAD.STATUSSTATE1.ARK,SET.TIME=300
11、定义一个命令顺序DEFINE.SEQUENCE:
DEF.SEQNAME(ARG1,ARG2…ARGn){}
OPENCLOSESTARTSTOPPOKESETWAITWAIT.UNTILSUB.SEQARCHIVEDO.INTERACTIVEIF
定义一个名为OPEN_START的顺序命令,来开一个编号为VALVE1的阀门,等2分钟后启动1台名为UNIT1的泵或压缩机。
DEF.SEQOPEN_START
{
OPENVALVE1
WAIT2.0
STARTUNIT1
}
12、提交一个命令顺序SUBMIT.SEQUENCE:
/*从INTRAN文件
SUB.SEQLAUNCH_ABC
/*从交互命令行:
只输入该命令顺序的名称即可
LAUNCH_ABC
13、WAITWAIT.UNTIL
WAIT–等到一个特定的时间后,执行下面的命令。
WAIT.UNTIL–等待一个特定的条件满足之后执行下面的命令
{OPENBLK1/*OpenValve
WAIT2/*2minutes
CLOSEBLK2}/*CloseValve
{WAIT.UNTIL(PUMP1:
ST=RUNNING)/*Pump1status
STARTPUMP2}/*StartPump2
14、WHENEVER–无论任何时候满足条件,就执行下面的命令:
IF–只要一满足条件,就执行下面的命令,只执行一次:
15、INCLUDE–调用INC子程序
16、POKEALL-给所有满足条件的变量同时赋值
/*PokethePMAXatallExternalsto1200psig:
POKEALL,
+KEY.LETTER=E,
+PEEK.MATCH=*:
PMAX,
+TO=1200
17、LINE.FILL–定义管线中存储的介质
LINE.FILLFROMTO,
+FLUIDF1F2...Fn,
+VOLUMEV1V2...
18、PROFILE–定义距离曲线在REVIEW文件中存储的时间间隔。
PROFILEINT/*INT–时间间隔,分钟
19、DEFINE.PATH–定义一个特定的路径
DEFINE.PATHLOOP1=PATH(E1,LP1,B2)
COLSEP–模拟SLACKLINE现象//不光滑的曲线
20、ALARM–定义报警触发条件,报警显示信息以及报警级别
ALARM.CATEGORY–定义报警的级别
ALARM.CATEGORYINFOALERTWARNFATAL
ALARM(AL1)=(UNIT:
P-<300),
+FIRST.MESSAGE=“SUCPRESS,[UNIT:
P-],TOOLOW”,+REPEAT.MESSAGE=“SUCPRESSSTILLTOOLOW”,+REPEAT.PERIOD=1,+CLEAR.MESSAGE=“SUCTIONPRESSUREOKNOW”,+CATEGORY=WARNING
21、MACRO–宏定义:
MACRO(short-form[()],long-form)
22、PROFILE:
来记录由TRANS在给定时段得到的沿管长分布的仿真数据。
•分布数据(如压力、高程、温度、流量等)在每一物理步长被收集并沿整个管长来计量。
•在INTRAN文件中设置Profile命令:
PROFILEINT(INT是以分钟计的时间间隔)如:
PROFILE20
3.3SIMPLOT
1.某(地)点数据随时间的变化(即趋势图)
2.某时点数据沿管长方向的变化(即分布图)
四、应用
4.1体积,热值,组分跟踪以及进行成品油界面跟踪
4.2热力模型(能够模拟等温模型,传热模型和温变模型)
4.3理论模拟(能够在现场设备和模拟设备建立相应的连接,以达到与现场相一致)