最新消息:

在线符号有向图推理机

未分类 王杭州 9385浏览 1评论 [编辑]

符号有向图(Signed Directed Graph,SDG)是一种基于模型方法的故障识别与诊断技术,是一种定性表示因果关系的图论方法。符号有向图(SDG)是定性研究化工过程中变量间关系的有力工具,利用SDG的正向反向推理机制可以快速发掘出系统中变量之间影响的因果关系,不仅可以用于在线的故障诊断,还可以用于离线的危险和可操作性(HAZOP)分析。

水箱体系如下图所示。

对于的SDG模型及推理运行的结果如下:

import sdg
digraph_content=”’digraph buffer_tank {
node [style=filled];
V1->F1[style=solid];
F1->L[style=solid];
L->V3[style=solid];
V2->F2[style=solid];
V3->F3[style=solid];
F2->L[style=dashed];
F2->V2[style=dashed];
F3->L[style=dashed];}
”’
set_nodes_init_state={‘V1′:1}

steps=2
sdg.sdg_run_forward(steps,digraph_content,set_nodes_init_state)

img = pylab.imread(‘digraph.png’)
pylab.imshow(img)
pylab.show()

推理结果

Nodes list:
['F1', 'F2', 'F3', 'L', 'V1', 'V2', 'V3']
Adjacency matrix:
[[ 0  0  0  1  0  0  0]
 [ 0  0  0 -1  0 -1  0]
 [ 0  0  0 -1  0  0  0]
 [ 0  0  0  0  0  0  1]
 [ 1  0  0  0  0  0  0]
 [ 0  1  0  0  0  0  0]
 [ 0  0  1  0  0  0  0]]
连续搅拌全混釜(CSTR)反应器如下图所示。
对于CSTR反应器模型,这是一个稍复杂一些的体系。

import sdg

digraph_content=”’digraph CSTR{
node [style=filled];
size=”8,8″;
F->V[style=dashed];
V->F[style=solid];
V->CA[style=dashed];
V->T[style=solid];
CA->CA[style=dashed];
CA->rA[style=solid];
CA0->CA[style=solid];
F0->V[style=solid];
F0->CA[style=solid];
F0->T[style=dashed];
T->T[style=dashed];
T->rA[style=solid];
T->Tc[style=solid];
rA->CA[style=dashed];
rA->T[style=solid];
T0->T[style=solid];
Fc->Tc[style=solid];
Tc->T[style=solid];
Tc->Tc[style=dashed];
Vj->Tc[style=dashed];
Tc0->Tc[style=solid];
Tj->Tc[style=dashed];
}
”’
init_state={‘F’:1}
steps=2
sdg.sdg_run_forward(steps,digraph_content,init_state)
img = pylab.imread(‘digraph.png’)
pylab.imshow(img)
pylab.show()

推理结果

Nodes list:
['CA', 'CA0', 'F', 'F0', 'Fc',..., 'Tj', 'V', 'Vj', 'rA']
Adjacency matrix:
[[-1  0  0  0  0  0  0  0  0  0  0  0  1]
 [ 1  0  0  0  0  0  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  0  0  0 -1  0  0]
 [ 1  0  0  0  0 -1  0  0  0  0  1  0  0]
 [ 0  0  0  0  0  0  0  1  0  0  0  0  0]
 [ 0  0  0  0  0 -1  0  1  0  0  0  0  1]
 [ 0  0  0  0  0  1  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  1  0 -1  0  0  0  0  0]
 [ 0  0  0  0  0  0  0  1  0  0  0  0  0]
 [ 0  0  0  0  0  0  0 -1  0  0  0  0  0]
 [-1  0  1  0  0  1  0  0  0  0  0  0  0]
 [ 0  0  0  0  0  0  0 -1  0  0  0  0  0]
 [-1  0  0  0  0  1  0  0  0  0  0  0  0]]
催化裂化反应器流程如下图所示。
对于催化裂化反应器模型,这是一个比较复杂的体系。

import sdg

#PCA-SDG FCCU
digraph_content=”’digraph FCCU{
node [style=filled];
size=”8,8″;
Qrgc->Qm[style=solid];
Qm->dTr[style=solid];
dTr->Tr[style=solid];
Patm->Fv12[style=dashed];
V12->Fv12[style=solid];
k12->Fv12[style=solid];
Fv12->dP5[style=dashed];
Fv11->dP5[style=dashed];
dP5->P5[style=solid];
P5->Fv12[style=solid];
P5->P4[style=solid];
Fv13->dP5[style=solid];
P4->Prb[style=solid];
Qout->dTr[style=dashed];
Qslurry->Qout[style=solid];
Qcracking->Qout[style=solid];
Qcatout->Qout[style=solid];
Qff->Qout[style=solid];
F1->Fcoke[style=solid];
F2->FB[style=solid];
FB->Fcoke[style=solid];
Psif->FB[style=solid];
WSHV->Fcoke[style=dashed];
Fcoke->dCsc[style=solid];
F3->Qcracking[style=solid];
F3->Qff[style=solid];
F3->Qm[style=solid];
F3->FB[style=solid];
F3->WSHV[style=solid];
F3->Fcoke[style=solid];
F3->rhoris[style=solid];
F3->Vris[style=solid];
F3->Fwg[style=solid];
F3->T2_ss[style=dashed];
Fwg->dP5[style=solid];
Tr->Fwg[style=solid];
Tr->Tsc[style=solid];
Tr->deltaHcrack[style=solid];
Tr->Qslurry[style=solid];
Tr->Qcatout[style=solid];
Tr->Qff[style=solid];
deltaHcrack->Qcracking[style=solid];
UAf->T2_ss[style=solid];
UAf->dT3[style=dashed];
T2_ss->dT2[style=solid];
F4->Qslurry[style=solid];
F4->Qcracking[style=solid];
F4->Fwg[style=solid];
F4->FB[style=solid];
F4->Fcoke[style=solid];
F4->WSHV[style=solid];
F4->rhoris[style=solid];
F4->Vris[style=solid];
taur->Fcoke[style=solid];
dWr->Wr[style=solid];
Wr->dCsc[style=dashed];
dCsc->Csc[style=solid];
Crgc->dCsc[style=solid];
Csc->dCsc[style=solid];
Fsc->dCsc[style=solid];
Fsc->dWr[style=dashed];
Frgc->dWr[style=solid];
Frgc->dCsc[style=dashed];
Frgc->rhoris[style=solid];
Frgc->Vris[style=solid];
Frgc->Wris[style=solid];
Frgc->Qcatout[style=solid];
Frgc->taur[style=dashed];
rhoris->Prb[style=solid];
Vris->rhoris[style=dashed];
Vris->Prb[style=solid];
Vris->Wris[style=solid];
Wris->WSHV[style=dashed];
Wris->taur[style=solid];
hris->Wris[style=solid];
dT2->T2[style=solid];
T2->dT2[style=dashed];
T2->Tlm[style=dashed];
T2->Qm[style=solid];
T1->T2_ss[style=solid];
T1->Tlm[style=solid];
Tlm->T2_ss[style=solid];
Tlm->dT3[style=dashed];
T3->Tlm[style=solid];
T3->Qloss[style=solid];
dT3->T3[style=solid];
Qloss->dT3[style=dashed];
F5->Qloss[style=solid];
F5->dT3[style=solid];
F5set->F5[style=solid];
}
”’

init_state={‘Qrgc’:1}

steps=2
sdg.sdg_run_forward(steps,digraph_content,init_state)
img = pylab.imread(‘digraph.png’)
pylab.imshow(img)
pylab.show()

推理结果

Nodes list:
['Crgc', 'Csc', 'F1', 'F2', 'F3', 'F4', 'F5',..., 'rhoris', 'taur']
Adjacency matrix:
[[0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 0 0]
 ..., 
 [0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 0 0]
 [0 0 0 ..., 0 0 0]]
 
通过修改steps的数值来改变推理的步数,查看偏差传播对应步数之后的结果。
在FCCU系统中,偏差传播的演示动画(如果当前浏览器无法正常显示,那么请更换浏览器后再次尝试)。

转载请注明:王杭州的个人网页 » 在线符号有向图推理机

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 老大。你好猛。
    wangbin12年前 (2013-07-04)回复 - (编辑)