你在这里: 主页 工具 混合动力系统 分层基准生成器…

坦克网络分层控制器基准生成器

目录

  1. 概述
  2. 特征
  3. 发电机输入文件
  4. 用法
  5. 示例1
  6. 示例2
  7. 实验选项
  8. 下载
  9. 工具书类

 

概述

在这项工作中,我们提出了一个基准生成器,它以SpaceEx的格式构建基准实例[2]交换缓冲网络分层的,分层的控制器。

特征

生成器允许按以下方式缩放和调整生成的基准实例:

  1. 储罐数量
  2. 储罐之间的连接,即哪些储罐通过通道连接
  3. 每个储罐的容量
  4. 每个通道的最小和最大吞吐量
  5. 液体流入系统的流速
  6. 液体流出系统的流速
  7. 三种动力学的使用:
    1. 无动态:在规定的最小和最大间隔内,以流速瞬时打开通道。
    2. 形式为rate_min'=c1,rate_max'=c2的恒定动力学,其中c1和c2为常数:根据上述微分方程增加通道的最小和最大流速。
    3. 仿射动力学:根据微分方程v'=c(v_target-v)增加通道的最小和最大流速,其中v_target是某个目标速度,c是常数。
  8. 控制器相数
  9. 每个控制器阶段的动作,即打开或关闭通道
  10. 每个控制器阶段有多个选项,即向每个阶段添加非确定性选项的可能性
  11. 每个选项的持续时间规范
  12. 控制器的循环或非循环行为

 

发电机输入文件

每个基准实例都是由所谓的benchdef文件生成的。该文件包含储罐网络和控制器及其所有相位的描述。

典型的benchdef文件如下所示:

#储罐:定义储罐“主储罐”容量=10定义储罐“SubTank1”容量=10定义水箱“LastTank”容量=100水槽=“true”输出=0.5#频道:定义通道“RootChannel”root=“true”gen_flow=2定义通道“channel1”定义通道“channel2”#连接:定义连接“RootChannel”target=“MainTank”定义连接“channel1”source=“MainTank”target=“SubTank1”定义连接“channel2”source=“SubTank1”target=“LastTank”#阶段:定义阶段“openphase”定义选项“option1”持续时间=40define option“option1”“RootChannel”action=“open”define option“option1”“channel1”action=“open”dynamics=“none”\最低吞吐量=1最高吞吐量=1define option“option1”“channel2”action=“open”dynamics=“none”\最低吞吐量=1最高吞吐量=1define option“option2”duration=40 condition=“fill_LastTank<=10”define option“option2”“RootChannel”action=“open”define option“option2”“channel1”action=“open”dynamics=“const”\最小速度=0.1最大速度=0.1define option“option2”“channel2”action=“open”dynamics=“const”\最小速度=0.1最大速度=0.1定义选项“option3”持续时间=40define option“option3”“channel1”action=“open”dynamics=“affine”\系数=1 min_target=0.6 max_target=0.6define option“option3”“channel2”action=“open”dynamics=“affine”\系数=1 min_target=0.8 max_target=0.8定义阶段“closephase”定义选项“option1”持续时间=20define option“option1”“RootChannel”action=“close”define option“option1”“channel1”action=“close”define option“option1”“channel2”action=“close”

(请注意,出于样式原因,我们将一些行拆分为两部分,用“\”表示。但是,在正确的benchdef格式中,不能拆分行。)

首先,确定了储罐的数量、名称及其容量。注意,对于网络中的最后一个储罐,液体从系统中流出时,必须指定流出率。最后一个储罐用表达式标记sink=“true”.

其次,定义系统中出现的通道的数量和名称。应该让液体流入系统的通道标有root=“true”。对于该通道,规定了新液体流入系统的速率。控制器无法更改此流入率,因为它对于特定系统是恒定的。

这个#连接该部分定义了储罐和通道是如何相互连接的。对于每个通道,都提供了源罐标识符和目标罐标识符。请注意,如果通道允许液体流入系统,则不得指定源罐。

控制器的定义在#阶段第节。首先,用一个唯一的标识符来定义一个阶段。然后,指定每个阶段的选项。如果只指定了一个选项,则控制器的行为具有确定性。如果指定了多个选项,控制器将在可能的选项之间进行非确定性选择。

对于每个选项,可以指定最大持续时间。这是控制器应等待的时间,直到执行更多阶段。此外,当控制器可以执行每个选项时,可以为其指定条件。可以从生成的SpaceEx XML文件中提取条件表达式中使用的全套变量。然而,最重要的变量是“fill_<TankID>”,可用于获取储罐“<TankID>”的填充状态。

在每个选项中,可以执行两个操作之一:打开或关闭。“打开”动作指示控制器打开指定通道,“关闭”动作关闭通道。当“关闭”动作瞬间关闭通道时,可以指定两种不同的动态形式,即何时打开通道:

  1. dynamics=“无”:这导致瞬时打开具有指定流速或吞吐量下限和上限的通道。
  2. 动力学=“const”:这根据微分方程x'=c打开通道,其中c是常数。换句话说,c可以被视为最小或最大吞吐量增加的“速度”。
  3. 动力学=“仿射”:此设置根据微分方程v’=c((target+epsilon)-v)打开通道,其中c是常数,target是目标速度,epsilons是全局精度。

请注意,由于关闭通道是瞬时发生的,因此在选择“关闭”操作时,无需指定最小和最大吞吐量或速度。

请注意,仅允许在一个选项中打开或关闭通道。不允许混合开闭。在这种情况下,如果需要,我们建议使用指定阶段来关闭某些通道。

用法

基准测试生成器使用Java。要运行发电机,请使用

$java-jar BenchGenerator.jar

这将生成一个与benchdef文件同名的新目录,生成的SpaceEx模型文件、配置文件和运行脚本存储在该目录中。执行运行脚本时,将生成SpaceEx的输出和绘图。请注意,生成的配置文件总是告诉SpaceEx绘制系统输出水箱的填充状态与经过的时间。这可以通过更改变量的值进行更改输出变量.

以下命令行开关可用于进一步调整输出:

-t<数字>--指定使用SpaceEx进行分析的最长时间范围。达到指定时间后,SpaceEx将终止。默认值:1000

-我<num>--指定SpaceEx应执行的最大迭代次数。当达到指定的迭代次数时,SpaceEx将终止。默认值:200

-c--如果使用此标志,则控制器将是非循环的,这意味着控制器阶段仅执行一次,而不是在最后一个阶段执行后再次从第一个阶段开始。

-e<数字>,--ε<num>  --   指定epsilon的全局值。换句话说,这是SpaceEx计算仿射目标值的精度动力学。

-小时--显示帮助。

示例1

上面显示的示例benchdef文件在开放阶段没有选项“option2”和“option3”,可以在下载本页的第节。当您使用SpaceEx生成并运行此示例10000次迭代时,您将获得图1所示的图。

样品
图1:仅包含第一个选项的示例中的绘图。

在图1中可以看到,正如benchdef文件中所指定的,每个打开阶段需要40个时间单位,每个关闭阶段需要20个时间单位。此外,当通道打开时,最后一个油箱的加注状态以恒定速率增加。例如,在前40个时间单位中,填充状态达到20,因为40sec*1 unit/sec=40个单位,并且由于系统流出为0.5个单位/秒。您还可以看到,在每个关闭阶段,填充状态减少10个单位,因为0.5个单位/sec流出系统,关闭阶段的持续时间为20秒。

示例2

在我们的工作中[1],我们介绍了另一个没有动态的示例,以及控制器可以在通道的每个开放阶段执行的两个选项。同样,结束阶段只有一个选项。控制器也以循环方式工作。

当控制器可以在多个选项之间进行选择时,SpaceEx会分析所有生成的路径。图2提供了这一事实的直觉。由于控制器的行为是周期性的,每次关闭通道后,都会出现两个新的可能的开路相位轨迹。

 绘图-示例2
图2:中示例的示例图[1].

benchdef文件和生成的SpaceEx模型可以在下载第节。

实验选项

对于基准生成器的使用,有一个实验选项。请注意,SpaceEx在分析某些系统时可能会遇到问题,或者在使用此实验选项时,产生的输出可能包含过于粗糙的过近似值。

发电机选项

基准生成器存在以下实验命令行选项:

-我,--液化天然气--指定使用SpaceEx的LGG场景。在这种情况下,生成的动力学会有不同的处理方式。所有微分方程都有上下限。

请注意,此选项仅在特定条件下进行了测试。

下载

  1. 混合系统中交换缓冲网络的基准生成器
  2. 示例1的Benchdef和输出文件
  3. “基准:坦克网络的分层控制器”论文中的示例(示例2)
  4. 使用基准生成器生成的基准套件,包括论文中的一些benchdef文件

有关更多信息,请联系塞尔吉·博戈莫洛夫马吕斯·格雷特斯.

工具书类

  1. 斯坦利·贝克(Stanley Bak)、塞尔吉·博戈莫洛夫(Sergiy Bogomolov)、马吕斯·格雷特斯(Marius Greitschus)和泰勒·T·约翰逊(Taylor T.Johnson)。“基准:坦克网络的分层控制器”。提交给ARCH 2015。[pdf格式].
  2. G.Frehse、C.Le Guernic、A.Donzé、S.Cotton、R.Ray、O.Lebeltel、R.Ripado、A.Girard、T.Dang和O.Maler。“SpaceEx:混合系统的可扩展验证”。计算机辅助验证,第379-395页,2011[围兜|施普林格].