上下文感知可重构安全智能电网的软件框架
1. 框架基础组件
1.1 安全池
分布式节点之间的协调需要进行数据交换,其中一些数据可能是关键的。安全池是安全机制的容器,包含与区块链相关的算法等。由于经常使用加密/解密工具,我们使用椭圆曲线集成加密方案(ECIES)扩展了现有技术。
1.2 功能池
应用程序可以提供多种服务,其中一些服务之间可能会出现优先级和冲突。为了克服一致性约束,创建了功能排除矩阵;为了解决优先级约束,创建了功能优先级数组。
1.3 定时池
为了确保定时效率,创建了定时池。该池的作用是进行时间行为分析,有助于检查主导重新配置情况下的时间可行性。
1.4 服务层
服务层(SL)用于以独立功能单元(称为服务,用 $S_i$ 表示)的形式存储系统要提供的服务。因此,服务层定义为 $SL = {S_i|i = 0, …, n}$,其中 $n$ 是系统提供的所有服务的数量。一个服务 $S$ 以操作模式(用 $om$ 表示)的形式封装必要的操作方法。所以,服务定义为特定功能的操作模式集合 $S_i = {om_j|j = 0, …, m}$,其中 $m$ 是 $S_i$ 支持的所有操作模式的数量。
1.5 通信层
通信层(CL)负责向开发人员展示服务层的服务。其作用是暴露特定服务的必要动态。每个通信对象代表一个唯一的服务。
2. 应用案例
2.1 案例研究介绍
现代智能电网是一种电力分配网络,包括供应商和消费者之间的信息流,旨在实现更高效的管理,如实时调整电力流量。通过采用软件技术,实现了小电网单元的协调、能源生产和存储的优化、消费/生产峰值的平滑等。
2.1.1 智能电网模型和目标
本案例研究考虑智能电网的多代理模型。电网在现场和控制层面由分布式微电网组成,在软件层面由分布式软件代理网络组成,每个代理管理一个微电网。
2.1.2 微电网
微电网($mg$)是一个小型电网,具有自己的可再生能源(RES)、负载($L$)、存储系统(如电池,$B$)和远程操作开关($ROS$)。因此,微电网表示为 $mgi = (RES, L, B, ROS)$。
微电网的特点是集成了可再生能源,因此在高生产时可以孤岛模式运行,在短缺时可以与公用事业连接模式运行。由于可再生能源的波动性和间歇性,需要进行重新配置以保持服务的稳定性和连续性。此外,为了提高效率,微电网需要能够在发生变化和需要新的系统行为时自动重新配置。上下文感知计算在满足这些需求方面发挥着重要作用。在考虑的智能电网中,聚合器可以从独立生产者(即产消者)聚合电力,存储收集的电量并分配给消费者。它们与微电网协调工作,因此微电网的软件还包括与聚合器交互的逻辑。
2.2 设置准备
在开始开发软件应用程序之前,需要确定每个层的设置。
2.2.1 服务层
在本示例中,微电网执行七种服务:电力交易(ET)、存储系统管理(SSM)、可再生能源管理(RESM)、电力管理(EM)、消费者管理(ConsM)、能源聚合(EA)、与邻居和公用事业的开关管理(SNM)。因此,服务层为 $SL = {S_1ET, S_2SSM, S_3RESM, S_4EM, S_5ConsM, S_6EA, S_7SNM}$。
每个服务的操作模式定义如下表所示:
| 服务 | 定义 |
| — | — |
| $S_1ET$ | ${om_1b, om_2sas, om_3sps}$ |
| $S_2SSM$ | ${om_1hc, om_2hd, om_3mc, om_4md, om_5lc, om_6ld, om_7r}$ |
| $S_3RESM$ | ${om_1ta, om_2pa, om_3d}$ |
| $S_4EM$ | ${om_1dsm, om_2drm}$ |
| $S_5ConsM$ | ${om_1ss, om_2mc}$ |
| $S_6EA$ | ${om_1aip, om_2dc}$ |
| $S_7SNM$ | ${om_1os, om_2cs}$ |
2.2.2 上下文控制层
在下层(CCL),需要定义子上下文和子配置集以及池的要求。参与交易会话的决策需要考虑多个方面,包括财务、功能和战略效率。需要人工智能池来辅助做出正确决策。规则库定义如下表所示:
| id | Rule |
| — | — |
| R1 | if (BC is medium) & (L is low) & (CSG is high) & (TSG is high) & (MP is high) → sell all surplus |
| R2 | if (BC is high) & (L is low) & (CSG is medium) & (TSG is medium) & (MP is low) → sell part of surplus |
| R3 | if (BC is high) & (L is low) & (CSG is high) & (TSG is high) & (MP is high) → high charging |
| R4 | if (BC is high) & (L is medium) & (CSG is high) & (TSG is low) & (MP is high) → high discharging |
| R5 | if (BC is high) & (L is medium) & (CSG is high) & (TSG is high) & (MP is high) → sell all surplus |
其中,$BC$ 表示电池充电水平,$L$ 表示负载,$CSG$ 表示当前太阳能发电量,$TSG$ 表示预测的明日太阳能发电量,$MP$ 表示市场价格。
子配置将服务与其操作模式匹配,子上下文反映可以一起工作的服务。以下是子配置列表的摘录:
- $scfg1 = {S_2SSM.om_7r, S_3RESM.om_3d}$,$scfg6 = {S_6EA.om_1aip}$
- $scfg2 = {S_2SSM.om_4md, S_3RESM.om_2pa}$,$scfg7 = {S_6EA.om_2dc}$
- $scfg3 = {S_2SSM.om_1hc, S_3RESM.om_2pa}$,$scfg8 = {S_7SNM.om_2cs}$
- $scfg4 = {S_2SSM.om_2hd, S_3RESM.om_1ta}$,$scfg9 = {S_7SNM.om_1os}$
- $scfg5 = {S_4EM.om_1dsm, S_5ConsM.om_2mc}$,$scfg10 = {S_1ET.om_2sas}$
- $scfg11 = {S_1ET.om_1b}$,$scfg12 = {S_1ET.om_3sps}$
部分子上下文定义如下表所示:
| 子上下文名称 | 类型 | 定义 |
| — | — | — |
| RegularRoutine1 | 内部 | $sc_1 = {scfg_5, scfg_1}$ |
| RegularRoutine2 | 内部 | $sc_2 = {scfg_5, scfg_2}$ |
| RegularRoutine3 | 内部 | $sc_3 = {scfg_5, scfg_3}$ |
| RegularRoutine4 | 内部 | $sc_4 = {scfg_5, scfg_4}$ |
| Collaborating | 外部 | $sc_5 = {scfg_9}$ |
| SellingElectricity1 | 外部 | $sc_6 = {scfg_9, scfg_10}$ |
| BuyingElectricity2 | 外部 | $sc_7 = {scfg_9, scfg_11}$ |
| SellingElectricity2 | 外部 | $sc_8 = {scfg_9, scfg_12}$ |
| Disconnecting | 外部 | $sc_9 = {scfg_8}$ |
| Aggregating | 外部 | $sc_{10} = {scfg_6}$ |
2.2.3 重新配置层
在定义了服务层和上下文控制层的设置后,接下来定义重新配置层(RL)使用的上下文模型。在这个例子中,智能电网本体不仅考虑环境事实,还考虑影响交易活动的实体,如聚合器、产消者和电力市场本身。
2.3 使用案例场景
我们考虑一个需要上下文感知、人工智能、安全和功能要求来进行正确重新配置的场景。假设微电网 $mg2$ 的应用程序在内部上下文 “RegularRoutine2” 下运行,这意味着 $mg2$ 部分激活太阳能电池板发电,电池进行中等放电,并且聚合器处于活动状态;同时在外部上下文 “Aggregating” 下运行,这意味着 $mg2$ 的聚合器正在从产消者聚合能源。
$OC_0 = (sc_{int0}, sc_{ext0})$,其中 $sc_{int0} = sc_2$ 是 “RegularRoutine2”,$sc_{ext0} = sc_{10}$ 是 “Aggregating”。
最后由重新配置层输入池创建的上下文 $CR_0$ 如下:
$CR_0 =
\begin{cases}
i_1 : < oElectricityMarket.aActivity, false, 0 > \
i_2 : < oEnvironment.eWeather.aType, Sunny, 3 > \
i_3 : < oEnvironment.ePeriodOfDay.aType, Morning, 1 > \
i_4 : < oAggregators.aActivity, Aggregating, 1 > \
i_5 : < oConsumers.aSize, low, 1 > \
i_6 : < oBattery.aLevelOfCharge, medium, 2 >
\end{cases}$
在下一个定时器周期(即输入池的测量和读取周期),上下文推理器检测到一些变化,主要是电力市场的交易会话开始活跃,电池充电水平变高,消费变为中等。新的上下文为:
$CR_1 =
\begin{cases}
i_1 : < oElectricityMarket.aActivity, true, 1 > \
i_2 : < oEnvironment.eWeather.aType, Sunny, 3 > \
i_3 : < oEnvironment.ePeriodOfDay.aType, Morning, 1 > \
i_4 : < oAggregators.aActivity, Aggregating, 1 > \
i_5 : < oConsumers.aSize, medium, 2 > \
i_6 : < oBattery.aLevelOfCharge, high, 3 >
\end{cases}$
根据输入池的上下文推理过程,需要查询上下文规则存储(CRS)。我们根据定义的上下文本体定义了这个 CRS,如下表所示:
| id | Rule |
| — | — |
| R1 | if (Weather is Rainy) & (Season is Summer) & (PeriodOfDay is Night) → Put off REG |
| R2 | if (Weather is Sunny) & (Season is Summer) & (PeriodOfDay is Morning) → Put on REG |
| R3 | if (Market is Active) & (Battery is Low) & (PeriodOfDay is Midday) → Buying electricity |
| R4 | if (Market is Active) & (Battery is High) & (PeriodOfDay is Morning) → Selling electricity |
| R5 | if (Weather is Sunny) & (Season is Summer) & (PeriodOfDay is Morning) → Charge Battery |
解析 CRS 后触发了规则 R4。然后,上下文推理器创建一个新的上下文条目 $CE_1$,建议 “Selling Electricity”,并将其发送到上下文控制层的控制器。
控制器获取 $CE_1$ 后,根据算法 1 提取建议,并检查子上下文表以获取子上下文的类型。在这种情况下,是外部子上下文发生了变化。所以,控制器准备对正在运行的外部子上下文(即 “Aggregating”)进行处理。
然后,控制器开始处理以验证建议是否可行,如果可行则确定要进行的重新配置。参与交易会话需要分析多个方面,包括定价、当前储备功率、未来可再生能源发电预测等。这里控制器调用人工智能池来辅助决策。人工智能池查询其规则库,根据电池充电水平高、负载中等、当前太阳能发电量高、预测次日太阳能发电量高和市场价格高的事实,推理引擎触发规则 R5。因此,人工智能池向控制器返回 “Sell all surplus” 的结论。
现在控制器知道参与电力市场是一个积极的决策。所以控制器解析可能的子上下文集,选择子上下文 “SellingElectricity1” 并准备候选上下文 $CC_1$ 进行处理。候选上下文由当前运行的子上下文和新建议的子上下文($sc_6$)组成。
控制器在开始价格计算和市场投标之前进行的第一次验证是咨询功能池,以查看添加销售活动是否能保持整个系统状态的功能一致性,即新服务与其他服务的关系。为了保持多个服务的一致性,功能池通过定义这些矛盾关系的排除矩阵检查一致性。功能池的排除矩阵如下表所示:
| | ET | SSM | RESM | EM | ConsM | EA | SNM |
| — | — | — | — | — | — | — | — |
| ET | X | 0 | 0 | 0 | 0 | 1 | 0 |
| SSM | 0 | X | 0 | 0 | 0 | 0 | 0 |
| RESM | 0 | 0 | X | 0 | 0 | 0 | 0 |
| EM | 0 | 0 | 0 | X | 0 | 0 | 0 |
| ConsM | 0 | 0 | 0 | 0 | X | 0 | 0 |
| EA | 1 | 0 | 0 | 0 | 0 | X | 0 |
| SNM | 0 | 0 | 0 | 0 | 0 | 0 | X |
在这个矩阵中,0 表示 false,1 表示 true,X 表示不相关。从这个排除矩阵可以看出,电力交易服务(ET)与电力聚合服务(EA)存在冲突。实际上,同时进行交易和聚合会带来供应安全风险,并降低能源传输服务的质量。因此,这两个服务被认为是互斥的。
控制器认识到,当微电网被选为卖方时,需要移除聚合服务。这个条件是已知的并由主控制器保存,控制器可以在所有前提条件明确的情况下开始交易过程。
然后,控制器计算销售价格并准备投标(价格计算的逻辑不在本文范围内,此示例的目的是展示控制器如何根据上下文变化工作)。假设为了保护交易过程,微电网采用一种交易协议,其中信息交换使用加密技术进行安全保护。因此,每个微电网在向市场提交投标之前必须使用椭圆曲线集成加密方案对其投标进行加密。为此,上下文控制层的安全池(SP)包含实现交易(即投标)加密所需的方法。
控制器计算价格并准备投标,然后将其交给安全池。安全池对必要的信息进行加密并将其返回给控制器。控制器根据其交易算法重复此步骤。
在这个例子中,我们让微电网 $mg2$ 成为最佳投标者,所以现在它必须进行电力传输。为此,需要进行重新配置。所以控制器根据算法 2 应用推荐上下文中提到的更改。因此,新的 $OC$ 如下:
$OC_1 = {sc_{int1}, sc_{ext1}}$,其中 $sc_{int1} = sc_2$ 是 “RegularRoutine2”,$sc_{ext1} = sc_6$ 是 “SellingElectricity1”。
应用程序运行 $OC_1$ 直到交易活动所需的能源传输完成。
3. 结果与讨论
3.1 与现有工作的比较
与现有工作相比,我们的框架提供了更全面的解决方案。例如,与一些引入了重要上下文感知架构的工作相比,我们的框架不仅考虑了实时性和软件分布性,还涵盖了智能预测和自动重新配置等重要特性。具体比较如下表所示:
| 参考 | 重新配置 | 智能 | 安全 | 实时 | 协调 |
| — | — | — | — | — | — |
| [22] | X | X | X | X | X |
| [23] | X | ✓ | X | ✓ | X |
| [24] | X | X | X | ✓ | ✓ |
| 我们的工作 | ✓ | ✓ | ✓ | ✓ | ✓ |
3.2 安全池
引入安全池作为各种安全技术的 “容器” 非常重要。它允许开发人员用新的技术扩展现有技术,确保了池的更好可扩展性。这样,框架可以始终跟上新的或个性化的安全技术。然而,这种方法也有一些局限性。首先,如果开发人员需要不同于区块链工具、ECIES 和 RSA 加密的技术,他们需要包含/实现新的技术,这需要安全领域的知识,因此需要额外的努力。
3.3 控制器池
在本文中,通过细化上下文使用过程改进了控制器。现在,控制器能够区分内部和外部上下文,这影响了其操作,从而提高了处理时间。
假设我们有越来越多的服务和每个服务中越来越多的操作模式。如果每次收到上下文条目时都检查整个配置,将需要大量的计算时间。然而,将子上下文分为内部和外部有助于识别上下文将影响的范围,因此不需要检查整个上下文。
考虑子配置 $scfgi = {S_1.om_1, S_2.om_1, S_3.om_1, S_4.om_1, S_5.om_1}$,以及以下上下文:
- $OC_0 = (sc_{int0}, sc_{ext0})$,其中 $sc_{int0} = {scfgi|i = 0, …, 2}$,$sc_{ext0} = \varnothing$
- $OC_1 = (sc_{int1}, sc_{ext1})$,其中 $sc_{int1} = {scfgi|i = 0, …, 5}$,$sc_{ext1} = {scfgi|i = 20, …, 21}$
- $OC_2 = (sc_{int2}, sc_{ext2})$,其中 $sc_{int2} = {scfgi|i = 0, …, 10}$,$sc_{ext2} = {scfgi|i = 20, …, 25}$
- $OC_3 = (sc_{int3}, sc_{ext3})$,其中 $sc_{int3} = {scfgi|i = 0, …, 15}$,$sc_{ext3} = {scfgi|i = 20, …, 30}$
- $OC_4 = (sc_{int4}, sc_{ext4})$,其中 $sc_{int4} = {scfgi|i = 0, …, 19}$,$sc_{ext4} = {scfgi|i = 20, …, 35}$
功能池检查两个服务之间排除关系所需的时间测量为 36 毫秒。假设候选上下文只包含一个子配置,而该子配置又只包含一个服务。如果操作上下文的规模不断增加,那么经过的时间将如以下曲线所示,该曲线表明内部和外部子上下文的区分有助于避免检查整个运行上下文,从而将计算时间减少近一半。
综上所述,我们的上下文感知可重构安全智能电网软件框架在多个方面具有优势,能够满足智能电网复杂应用的需求。
4. 框架优势总结
4.1 功能完整性
该框架涵盖了安全、功能、定时等多个关键池,以及服务层、通信层、上下文控制层和重新配置层等多层结构,为智能电网软件的开发提供了全面的支持。从安全池的加密保护,到功能池的服务协调,再到上下文控制层的智能决策,各个组件协同工作,确保了智能电网系统的稳定运行。
4.2 上下文感知能力
通过引入上下文感知计算,框架能够根据不同的环境和系统状态自动进行重新配置。例如,在电力市场交易活跃、电池电量充足等条件下,系统能够自动调整为“销售电力”模式,实现了系统的智能化和自适应能力。
4.3 可扩展性
安全池允许开发人员使用新的安全技术扩展现有技术,保证了框架能够适应不断变化的安全需求。同时,通过外部配置文件定义子上下文和子配置,开发人员可以在不修改代码的情况下调整系统配置,提高了系统的灵活性和可维护性。
4.4 性能优化
控制器对内部和外部上下文的区分,减少了不必要的上下文检查,显著提高了处理时间。在服务数量和操作模式不断增加的情况下,这种优化能够有效降低计算成本,提高系统的运行效率。
5. 框架应用流程总结
5.1 开发前准备
- 确定服务层设置 :明确微电网要执行的服务,如电力交易、存储系统管理等,并定义每个服务的操作模式。
- 定义上下文控制层 :确定子上下文和子配置,建立规则库,为智能决策提供依据。
- 准备重新配置层 :定义上下文模型,考虑环境事实和交易相关实体,支持系统的重新配置。
5.2 运行时处理
- 上下文监测 :通过输入池实时监测系统上下文的变化,如电力市场活动、电池电量、天气等。
- 规则推理 :上下文推理器根据上下文规则存储(CRS)进行推理,生成新的上下文建议。
- 决策支持 :控制器调用人工智能池进行决策,考虑多个因素,如定价、储备功率等。
- 功能一致性检查 :在执行新的服务之前,咨询功能池,通过排除矩阵检查功能一致性。
- 安全处理 :使用安全池的加密技术保护交易信息,确保系统的安全性。
5.3 重新配置
- 根据建议调整 :控制器根据上下文建议,选择合适的子上下文和子配置,进行系统重新配置。
- 执行交易和传输 :完成价格计算和投标后,进行电力交易和传输,直到满足交易需求。
6. 框架未来展望
6.1 技术融合
随着人工智能、区块链等技术的不断发展,可以进一步将这些技术融入框架中。例如,利用区块链的分布式账本特性提高电力交易的透明度和安全性,利用更强大的人工智能算法进行更精准的能源预测和决策。
6.2 跨领域应用
该框架不仅适用于智能电网,还可以扩展到其他领域,如智能家居、工业自动化等。通过调整服务和规则,可以实现不同领域的上下文感知和自适应控制。
6.3 标准制定
为了促进框架的广泛应用,需要制定相关的标准和规范。统一的标准将有助于不同系统之间的互操作性和兼容性,推动整个行业的发展。
7. 总结
上下文感知可重构安全智能电网软件框架为智能电网的开发提供了一种全面、灵活且高效的解决方案。通过多层结构和多个功能池的协同工作,实现了系统的安全、智能和自适应运行。在实际应用中,框架能够根据不同的上下文自动调整系统配置,确保电力服务的稳定性和连续性。同时,框架的可扩展性和性能优化特性,使其能够适应未来智能电网的发展需求。随着技术的不断进步,该框架有望在更多领域得到应用,并为智能能源系统的发展做出更大贡献。
附录:相关流程 mermaid 图
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px;
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px;
A([开始]):::startend --> B(开发前准备):::process
B --> B1(确定服务层设置):::process
B --> B2(定义上下文控制层):::process
B --> B3(准备重新配置层):::process
B1 --> C(运行时处理):::process
B2 --> C
B3 --> C
C --> C1(上下文监测):::process
C --> C2(规则推理):::process
C --> C3(决策支持):::process
C --> C4(功能一致性检查):::process
C --> C5(安全处理):::process
C1 --> D(是否需要重新配置?):::decision
C2 --> D
C3 --> D
C4 --> D
C5 --> D
D -->|是| E(重新配置):::process
D -->|否| C1
E --> E1(根据建议调整):::process
E --> E2(执行交易和传输):::process
E1 --> F([结束]):::startend
E2 --> F
此图展示了框架从开发前准备到运行时处理,再到重新配置的整个应用流程,清晰地呈现了各个步骤之间的关系和逻辑顺序。
超级会员免费看
2153

被折叠的 条评论
为什么被折叠?



