Page 219 - 《软件学报》2021年第6期
P. 219

陈小颖  等:面向 CPS 时空性质验证的混成 AADL 建模与模型转换方法                                           1793


         variables 对应于 HP-TCSP 中的离散变量集合,其中涉及的执行与位置的变化对应于条件执行算子的赋值变化,
         条件对应于算子中的 Pcon 与 Fin_Con(见表 3).
                      Table 3    Mapping rules from HAADL to HP-TCSP for aircraft collision avoidance
                                表 3   飞机避撞系统 HAADL 到 HP-TCSP 映射规则
                  HAADL        HP-TCSP         HAADL                    HP-TCSP
                   float v 1    Real v 1         s 1                    NORMAL
                   float v 2    Real v 2         s 2                     ENTRY
                   float r 1    Real r 1         s 3                   ROTATION
                   float r 2    Real r 2         s 4                     EXIT
                   float ω      Real ω          error                    ERROR
                 float distance   Real distance   p 1v?v 1             p 1v?v 1→STOP
                String direction   String direction   p 2v?v 2         p 2v?v 2→STOP
               float danger_wait   Real danger_wait   direction?     direction?→STOP
                 float in_wait   Real in_wait  (x in1,y in1,z in1)!   (x in1,y in1,z in1)!→STOP
                float end_wait   Real end_wait  (x in2,y in2,z in2)!   (x in2,y in2,z in2)!→STOP
                   float pr     Real pr   (x danger2,y danger2,z danger2)!  (x danger2,y danger2,z danger2)!→STOP
                   float ct     Real ct   (x danger1,y danger1,z danger1)!  (x danger1,y danger1,z danger1)!→STOP
                  float wait   Real wait   (x leave1,y leave1,z leave1)!   (x leave1,y leave1,z leave1)!→STOP
                 float compute   Real compute  (x leave2,y leave2,z leave2)!   (x leave2,y leave2,z leave2)!→STOP
                 float x danger1   Real x danger1   p 1w?              p 1w?→STOP
                 float y danger1   Real y danger1   p 2w?              p 2w?→STOP
                 float z danger1   Real z danger1   ω=0                ω=0→STOP
                 float x danger2   Real x danger2  (x end1,y end1,z end1)!   (x end1,y end1,z end1)!→STOP
                 float y danger2   Real y danger2  (x end2,y end2,z end2)!   (x end2,y end2,z end2)!→STOP
                 float z danger2   Real z danger2   ∧                      &
                                                           ENTRY (distance≠danger_wait*(p 1v!v 1+p 2v!v 2)∨
                  float x in1   Real x in1   s 1→s 2 的迁移序列
                                                              wait≠danger_wait∨compute≠pr)AERROR
                                                              ROTATION  ((r 1 )ω  2  ≠ v 1 ∨  2  2 ( ω  ) ≠ r  2  2 2 v ∨
                  float y in1   Real y in1   s 2→s 3 的迁移序列
                                                                wait≠in_wait∨compute≠ct)AERROR
                                                                                     2
                                                               EXIT  (( −r 1 ω  ) ≠  2  1 ∨ v 2  2 ( − r  ω  ) ≠  2  2 v ∨
                  float z in1   Real z in1   s 3→s 4 的迁移序列
                                                               wait≠end_wait∨compute≠bk)AERROR
                  float x in2   Real x in2    float z leave2            Real z leave2
                  float y in2   Real y in2     float x end1             Real x end1
                  float z in2   Real z in2     float y end1             Real y end1
                  float x leave1   Real x leave1   float z end1         Real z end1
                  float y leave1   Real y leave1   float x end2         Real x end2
                  float z leave1   Real z leave1   float y end2         Real y end2
                  float x leave2   Real x leave2   float z end2         Real z end2
                  float y leave2   Real y leave2

             由此得到的 HP-TCSP 的描述如下.
             •   进程变量集合 PV:={NORMAL,ENTRY,ROTATION,EXIT,ERROR};
             •   离散变量集 合 DV:={v 1 ,v 2 ,r 1 ,r 2 ,ω,distance,direction,danger_wait,in_wait,end_wait,pr,ct,wait,compute,
                x danger1 ,y danger1 ,z danger1 ,x danger2 ,y danger2 ,z danger2 ,x in1 ,y in1 ,z in1 ,x in2 ,y in2 ,z in2 ,x leave1 ,y leave1 ,z leave1 ,x leave2 ,y leave2 ,z leave2 ,
                x end1 ,y end1 ,z end1 ,x end2 ,y end2 ,z end2 }.
         其中,
             •   NORMAL=p 1 v?v 1 →STOP||p 2 v?v 2 →STOP||Place[distance=danger_wait*(p 1 v!v 1 +p 2 v!v 2 )]&
                (wait=danger_wait)&(compute=pr)>>ENTRY (distance≠danger_wait*(p 1 v!v 1 +p 2 v!v 2 )∨
                wait≠danger_wait∨compute≠pr)AERROR;
             •   ENTRY=direction?→STOP||(x in1 ,y in1 ,z in1 )!→STOP||(x in2 ,y in2 ,z in2 )!→STOP||p 1 v?v 1 →STOP||p 2 v?v 2 →STOP||
                (x danger1 ,y danger1 ,z danger1 )!→STOP||(x danger2 ,y danger2 ,z danger2 )!→STOP|| ((rω  1  ) =  2  v 1 2 ) & &((r ω  2  ) =  2  v 2 2 ) &&(wait=
   214   215   216   217   218   219   220   221   222   223   224