Page 152 - 《软件学报》2024年第6期
P. 152

2728                                                       软件学报  2024  年第  35  卷第  6  期


                 串行思维. 在图    3(a) 中, 计算域为  StartNode (发起点) 的全局参数   FireSource, 和计算域为  All (所有节点) 的全局参
                 数  Alarm, 是火灾报警信号对应的场变量在发起点和所有节点上的数据投影. 图                     3(a) 第  5  行的全局参数表达式直
                 接将  FireSource 的值赋值给  Alarm, 实现了火灾报警信号从发起点扩散到人员疏散系统中的所有节点.

                                                                                Information of building basic unit
                 Domain                         Node
                                                                                 + Name: string
                  + Name: string                 + ID: int                       + MeasuringUnit: string
                  + DomainType: string    1  1···n  + Name: string        1 1···n  + BitsLength: int
                  + Condition: string            + NodeType: string              + Value: string
                  + ToPology: string             + NeighborConnection: string    + Read()
                                                                                 + Write()
                                                                                                    1
                                                                                                    1
                                                                                Field-oriented variable
                                                Parameter
                 Expression               1  1···n
                                                 + Name: string                  + Name: string
                  + ParameterName: string        + DataType: string       Project   + DataType: string
                  + Operator: string             + ComputationalScope: string    + NodeTypeSet: string
                                                 + Value: string                 + DomainName: string
                                                                                 + Data: string


                                                                                Swarm parallel statement
                 Global parameter expression    Local parameter expression
                                                                                 + NodeTypeSet: string
                  + GlobalParameterName: string  + LocalParameterName: string  *  1  + DomainName: string
                  + Operator: string             + Operator: string              + Condition: string
                                                                                 + SubStatement: string
                                                图 2 SwarmL  关键语言元素类图


                                                                                                 域边界
                                                                                                 发起节点
                                                                                                 参与节点
                                                                                                 未参与节点


                         (a) 全局扩散                  (b) 全局求和                  (c) 邻域数据校核
                    1  VPN EvacuationSystem {NodeType: ROOM;}        // 定义人员疏散功能系统对应的域
                    2  VAR FireAlarm {NodeType: ROOM; VPN: EvacuationSystem; DataType: bool;}    // 定义火灾报警信号对应的场变量
                 (a)   3  bool FireSource (Refer to: FireAlarm @global: StartNode);    // 定义表示火灾报警信号的全局参数, 计算域为发起点
                    4  bool Alarm (Refer to: FireAlarm @global: All);   // 定义表示火灾报警信号的全局参数, 计算域为所有节点
                    5  Alarm = FireSource;                            // 将火灾报警信号从发起点扩散到域中所有节点
                    1  VPN VAVsystem {NodeType: [ROOM, AHU];}          // 定义变风量空调系统对应的域
                    2  VAR AirVolume {NodeType: ROOM; VPN: VAVsystem; DataType: float;}            // 定义房间需求风量对应的场变量
                 (b)   3  float AirVolume_Sum (Refer to: AirVolume @global: StartNode);  // 定义表示房间需求风量之和的全局参数
                    4  float AirVolume_All (Refer to: AirVolume @global: All);   // 定义表示每个房间需求风量的全局参数
                    5  AirVolume_Sum = +AirVolume_All;               // 发起点求取所有房间需求风量之和
                    1  VAR damperOpen_Correction {NodeType: ROOM; VPN: VAVsystem; Datatype: float;} // 定义房间风阀开度变化量的校核值对应的场变量
                    2  Swarm (Nodetype: [ROOM]; VPN: [VAVsystem])       // 定义Swarm语句实现邻域并行计算
                 (c)   3  {  float dOpen_Cor_0(Refer to: damperOpen_Correction @local: Me);   // 定义表示风阀开度校核值的局部参数, 计算域为本节点
                    4     float dOpen_Cor_U(Refer to: damperOpen_Correction @local: Upstream);  // 定义表示风阀开度校核值的局部参数, 计算域为上游节点
                    5     dOpen_Cor_0 = max(dOpen_Cor_U)*delta_0; }                                           // 邻域风阀风阀开度校核运算
                                         图 3 基于   SwarmL  的典型群体智能控制逻辑描述
   147   148   149   150   151   152   153   154   155   156   157