案例9:使用计算—离线和在线使用的主要区别

案例9:使用计算—离线和在线使用的主要区别
(\Program Files\ShellGlobalSolutions\PCTP\Tutorial\SMOCPro\Tutorial9_CalculationsRecursive.wsp)
在离线仿真与在线仿真中递归计算(计算中某个输出位号作为自身的函数)的行为是不一样的。行为的不同是因为嵌入离线仿真和嵌入在线系统的设计差异导致的。本教程的目的是着重介绍这一差异。
•在离线仿真器中,k时刻的值被用于初始化k+1时刻的仿真。如果你有计算[A] =[A]+1且[A]=0,那么开始时产生的顺序是1,2,3,4….
•而在在线系统中,嵌入对过去的值没有保存。它从SMOCPro数据库中接收最新值并将其传递到SMOCPro内核。与离线仿真器相反的是,在线系统中,HMI上计算[A] =[A]+1且[A]=0将始终返回1。这是因为在每个新的时间步骤中,[A]的值被重新设置为HMI分配值0。
举一个例子来说明其中的差别。正在考虑的预内核计算是:
1.[Reflux.MV.MaxMove]=Iif([Bot Qual.CV.SetrangeHighLim]-[Bot Qual.POV.Measurement]; [REFLUX.MV.MaxMove];1.5*[REFLUX.MV.MaxMove])

如果底部质量CV超过其上限,计算将把回流的max move size增加到初始值的1.5倍。
2.[Reboiler.MV.MaxMove]=Iif([Bot Qual.CV.SetrangeHighLim]-[Bot Qual.POV.Measurement]; [REBOILER.MV.MaxMove];1.5*[REBOILER.MV.MaxMove])

如果底部质量CV超过其上限,计算将把再沸器负荷的max move size增加到初始值的1.5倍。
离线仿真
下列结果是使用离线仿真器获得的。我们给出了时间的2~5步。在第2步,回流和再沸器负荷的max move sizes初始值分别是100和1。在第2步我们向底部质量CV注入干扰,这导致了其在第3步触碰到了高限。如下图所示,从这个角度上来说计算是活动的且Max Move条目被覆盖。





注意在第3步时max moves sizes是第2步时的1.5倍。由于离线仿真设计使用第2步的终值初始化第3步,第3步的max move值是第2步的1.5倍。因此,在离线仿真中我们获得一个max moves的递增序列。
在线仿真
如上所述,在线嵌入没有记忆。在每个时间步,其从HMI获取一套全新的值,并将其传递到SMOCPro内核。因此在每个时间步中,回流和再沸器负荷的max move被分别重新设定为HMI值100和1。因此,对于在线系统我们获得:



注:由于变量初始化的问题,必须避免将外部输出位号使用于任何计算的右侧(RHS)。如果有任何外部输出位号处于RHS侧,则计算的结果质量通常将设置为“BAD”。
带回家的消息
SMOCPro内置的计算引擎对在线和离线实现的行为可能造成不同的结果。这种差异是由离线软件包仿真在线嵌入的方式引起的。更具体地,在离线环境下,当一个参数被计算引擎修改时,变化被记录到存储中,SMOCPro记住这个值并将其用于下一次执行中。然而,在线环境下计算引擎执行的改变仅修改进入内核的值,而不写入数据库中,下一次执行时的值是从HMI条目中下载的。


原文:
Case 9: Using Calculations – A key difference between offline and online use
Recursive calculations (i.e. a calculation in which an output tag is a function of itself) behave differently in offline simulation compared to their behavior online. The difference in behavior is due to a design difference between the embedding for the offline simulator and the embedding for the online system. The purpose of this tutorial is to highlight this difference.
• In the offline simulator, the values at time k are used to initialize the simulation at time k+1. Consequently, if you have a calculation of the form [A] =[A]+1 and [A]=0 initially, the sequence generated is 1, 2, 3, 4 ….
• In the online system, the embedding has no memory of past values. It receives the latest values from the SMOCPro database and passes that on to the SMOCPro kernel. In contrast to the offline simulator, a calculation of the form [A]=[A]+1 with [A]=0 on the HMI will always return a 1 in the online system. This is because at each new time step, the value of [A] is reset to the HMI assigned value of 0.
Consider an example to illustrate the difference. The pre-kernel calculations under consideration are:
1.[Reflux.MV.MaxMove]=Iif([Bot Qual.CV.SetrangeHighLim]-[Bot Qual.POV.Measurement]; [REFLUX.MV.MaxMove];1.5[REFLUX.MV.MaxMove])
This calculation increases the max move size for the reflux to 1.5 times its original value if the bottom quality CV exceeds its upper limit.
2.[Reboiler.MV.MaxMove]=Iif([Bot Qual.CV.SetrangeHighLim]-[Bot Qual.POV.Measurement]; [REBOILER.MV.MaxMove];1.5
[REBOILER.MV.MaxMove])
This calculation increases the max move size for the reboiler load to 1.5 times its original value if the bottom quality CV exceeds its upper limit.
Offline Simulation
The following results are obtained using the offline simulator. We show the time steps 2-5. At time step 2, the initial values for the max move sizes for reflux and reboiler duty are 100 and 1 respectively. At step 2 we inject a disturbance into the bottom quality CV which makes it violate its upper limit at step 3. From this point on, the calculations are active and the Max Move entries get overwritten as can be seen on the figures below.
Notice at time step 3 that the max moves sizes are 1.5 times their values at time step 2. Because the offline simulator design uses the final values at time step 2 to initialize time step 3, the max move at time step 3 is obtained as 1.5 times its value at time step 2. Hence, we obtain an increasing sequence of max moves with the offline simulator.
Online Simulation
As mentioned above, the online embedding has no memory. At each time step, it picks up a fresh set of values from the HMI and passes that on to the SMOCPro kernel. Consequently, at each time step, the max move for the reflux and reboiler duty are reset to their HMI values i.e. 100 and 1 respectively. Therefore, for the online system we obtain
NOTE: Due to a problem with variable initialization, utilizing External Output Tags on the right hand side (RHS) of any calculations must be avoided. If any External Output Tags appear on the RHS the resulting quality of the calculation will always be set to “BAD.”
Take Home Message
The behavior of the Calculation engine built into SMOCPro may show different results between its online and offline implementation. This discrepancy is caused by how the offline package simulates the online embedding. To be more specific, in the offline environment when a parameter gets modified by the Calculation engine the change gets recorded to memory and SMOCPro remembers this value for its next execution. However, in the online environment a change that gets implemented by the Calculation engine only modifies the values entering the kernel and do not get written to the database, rather the values are updated with the entries from the HMI at the next execution.


2016.6.19

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • 佳节且欢且笑 要愁哪得功夫 酒肉穿肠长膘 诗书全无是处 昨夜门前醉倒 问犬我醉何如 心疑犬动要来扶 抬脚蹬犬曰 去
    行者无疆6887阅读 176评论 0 1
  • 在我们生活当中,风险和意外无处不在的!特别是交通安全事故,有多少条鲜活的生命就断送在车轮下。让多少家庭...
    阿萍姐姐阅读 664评论 0 2
  • 又画了一个小宝贝,真是吸取了爸爸妈妈之精华!小无辜的表情,好可爱啊! 好啦!明天继续!
    小妍绘画阅读 306评论 0 5
  • 我终于找到了我喜欢的工作,可是想象和现实还是有点差距的,也可能是自己能力不够,文章总写不出来,或者写的不尽如人意,...
    Grace姐姐来啦阅读 229评论 2 0