掌桥专利:专业的专利平台
掌桥专利
首页

用于配置自动化系统的方法

文献发布时间:2023-06-19 09:29:07


用于配置自动化系统的方法

本发明涉及用于配置具有多个计算节点的自动化系统的方法和系统。

供在自动化系统中使用的嵌入式软件系统的设计包括若干个相互关联的步骤,其牵涉到来自不同领域的专家。它从用于信号处理、估计和控制的算法的概念设计开始。在概念阶段中,导出信息的原则,诸如所需信号的列表、处理算法的结构中的类型及其参数化,以便与手头的物理系统一起进行适当的操作。该阶段经常在基于模型的设计工具中进行,所述设计工具诸如是Mathworks的Matlab/Simulink或Ansys Esterel的Scade套件。

在概念设计之后,算法被递交给软件工程师,软件工程师将它们拆分成软件组件和可运行功能(所谓的:可运行件),将它们分布在嵌入式计算节点(电子控制单元ECU)之上,将可运行件、即可运行的功能实体与操作系统的任务相结合,设计调度以及设计计算节点之间的通信。

在最先进的技术水平下,计算节点内的调度设计由调度优化工具支持,所述调度优化工具诸如是Timing Architect的TA套件。类似的工具、诸如Mentor Graphics VSA COM设计器,优化总线系统的通信设计。

在概念阶段和软件工程阶段中的学科专家之间的交互是有问题的。这些群组使用不同的语言、不同的模型和不同的工具。然而,算法设计者(信号处理和控制工程师)与软件工程师之间的适当沟通对于确保算法的可运行件在部署时以适当的次序并且在适当的时序下被执行是至关重要的。在该方面中的疏忽导致不适当的部署缺陷,其需要在验证动作期间被检测和调试。

在嵌入式软件设计的概念阶段中,必须调度许多并发的软件组件来部分地并行、并且部分地顺序运行,以满足时间约束。从架构结构中发现软件元素中的每一个可以如何影响彼此和整个项目,可以缩减后期的成本和问题。

软件架构可以用例如UML、SysML、EAST-ADL、AADL等之类的多种语言定义。关于时序,ARINC、Amalthea和EAST-ADL为嵌入式抢占目标环境定义了时序约束。然而,从软件架构的角度,对抢占操作系统中的软件执行进行时序分析对于嵌入式软件的正确设计是至关重要的。

因此,本发明的一个目的是提供用于嵌入式软件配置的方法和系统,该嵌入式软件用于自动化系统的配置,该自动化系统使得能够自动化且容易地进行软件执行的时序分析。

该目的通过根据权利要求1的方法、根据权利要求12的特征的计算机程序产品和根据权利要求13的特征的系统来解决。从属权利要求中阐述了另外的实施例。

根据本发明的第一方面,提供了一种借助于处理单元对具有多个计算节点的自动化系统进行计算机实现的配置的方法。该方法包括步骤a),在处理单元处接收计算机生成的排序约束数据集,该排序约束数据集描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点之上的软件组件和可运行功能实体以及可运行功能实体的时序、排序和并发性信息。该方法包括步骤b),由处理单元从排序约束数据集生成转移矩阵,该转移矩阵具有多个矩阵元素,每个矩阵元素通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移。该方法包括步骤c),在处理单元处接收计算机生成的通信矩阵,该计算机生成的通信矩阵描述在自动化系统中的计算节点之间的通信链路。此外,该方法包括步骤d),由处理单元从排序约束数据集和通信矩阵中生成马尔可夫链。该方法包括步骤e),由处理单元生成马尔可夫链的分布函数,该分布函数针对软件组件和可运行功能实体的特定时序分布,描述了由软件组件和可运行功能实体使用的计算节点资源。最后,该方法包括步骤f),由处理单元通过公式化和解决约束优化问题来优化资源的分配。

根据第二方面,提出了一种用于配置具有多个计算节点的自动化系统的系统,该系统包括处理单元,该处理单元被配置为a)接收计算机生成的排序约束数据集,该排序约束数据集描述了将在自动化系统上执行的软件系统,并且包括分布在多个计算节点之上的软件组件和可运行功能实体以及可运行功能实体的时序、排序和并发性信息;b)从排序约束数据集生成转移矩阵,该转移矩阵具有多个矩阵元素,每个矩阵元素通过转移值描述从一个可运行功能实体到另一个可运行功能实体的转移;c)接收计算机生成的通信矩阵,该计算机生成的通信矩阵描述在自动化系统中的计算机节点之间的通信链路;d)从排序约束数据集和通信矩阵中生成马尔可夫链;e)从马尔可夫链生成分布函数,该分布函数针对软件组件和可运行功能实体的特定时序分布,描述了由软件组件和可运行功能实体使用的计算节点资源;f)通过公式化和解决约束优化问题来优化资源的分配。

该方法允许从软件架构的角度对抢占操作系统中的软件进行时序分析。马尔可夫链用于基于架构方法并且作为在具有若干个计算节点的自动化系统中对执行轨迹进行采样的方式来对软件可运行件进行建模。利用该方法,可能确定来自特定的可运行件的行为到软件项目的总体整体行为。该方法可以扩展到考虑另外的模块,诸如硬件、通信总线和自动化系统行为,以在嵌入式软件设计的早期阶段对轨迹进行采样并且测试架构设计。

利用提出的方法,软件组件的执行时间作为概率分布的近似是可能的。可以考虑估计软件项目的软件组件的时间反响(repercussion)。特别地,可以标识关于时序方面的通信瓶颈。并发任务、可运行件、通信、计算节点拓扑和软件组件架构可以通过考虑到次序和时序要求来考虑以创建软件的随机模型。

该方法可以按照如上面概述的从步骤a)至f)的顺序进行。替代地,步骤a)和c)可以并行处理,随后是接着步骤a)的步骤b)。

从因子图生成排序约束数据集,所述因子图作为统一的图形符号表示自动化系统。因子图支持算法概念的设计,并且捕获在多个计算节点上调度算法部分的基本约束。表示自动化系统的因子图可以利用进一步的细节来注释,以确保设计和软件工程领域中的一致性。作为人工工作的结果,可以提供表示自动化系统并用于生成排序约束的因子图。在并行专利申请EP18164183.8中描述了一种以计算机实现的方式提供因子图的可能方式。

计算机生成的排序约束数据集包括每对可运行功能实体的边的描述。

此外,对于每对可运行功能实体,计算机生成的排序约束数据集可以包括通信方向、从其发起通信的可运行功能实体和作为通信接收方的可运行功能实体的标识符、通信信号的标识符以及通信中牵涉到的一个或多个计算节点。可选地,另外的信息可以被提供并且用于定义和描述对软件系统进行描述的排序约束。

通信矩阵描述了计算节点之间的消息交换连同消息中包含的信号和它们的时序要求。使用这样的通信矩阵允许标识那些当在自动化系统及其计算节点上运行时是软件系统的部分的计算节点。

从通信矩阵中,可运行功能实体中的每个可以被分配给自动化系统的特定计算节点(由模型化的调度器表示)。因此,可以生成转移图,该转移图说明不同实体之间的关系以及它们对不同计算节点(以及相应地,调度器)的分配。

转移矩阵可以从排序约束数据集生成,其中通信矩阵可以添加哪些矩阵元素属于哪些计算节点的信息。

根据另外的优选实施例,每个可运行功能实体具有与其相关联的指示其执行时间的时序分布,其中在步骤e)中获得的分布函数是通过借助于蒙特卡罗模拟改变执行时间而以迭代方式生成的,以预测软件系统的时序特性。其他概率分布注释可以描述更复杂的行为,所述更复杂的行为可以影响系统的调度和抢占响应。其他概率分布注释可以来自可运行件的实际执行轨迹或实际目标、先验知识或猜测。通过向每个可运行功能实体分配时序分布,可以提供作为概率分布的软件组件的执行时间的近似。此外,可能的是通过借助于蒙特卡罗模拟改变执行时间来找到一个最佳解。

根据另外的优选实施例,转移矩阵的矩阵元素包括表示每个可运行功能实体的时序行为的执行时序信息。由此,可以从转移矩阵中获得每个计算节点的时序序列图。

根据第三方面,提供了一种可直接加载到数字计算单元的内部存储器中的计算机程序产品,其包括软件代码部分,该软件代码部分用于当产品在计算单元上运行时,执行于此以及之后阐述的方法的步骤。计算机程序产品的形式可以是存储介质,诸如DVD、CD-ROM、USB存储器棒等等。此外,计算机程序产品的形式可以是可经由无线或有线通信链路加载的信号。

本发明的另外实施例、特征和优点将从结合附图考虑的随后描述中变得显然,附图示出:

图1是被描述为因子图的描绘软件系统和计算节点的示意图。

图2是描述图1的软件系统的第一部分的排序约束数据集的一部分。

图3是从根据图2的排序约束数据集生成的转移矩阵。

图4是从图3的转移矩阵生成的马尔可夫链。

图5是描述图1的软件系统的第二部分的排序约束数据集的一部分。

图6是从根据图5的排序约束数据集生成的转移矩阵。

图7是从图6的转移矩阵生成的马尔可夫链。

图8是根据图1的软件系统的可运行件的马尔可夫链。

图9是在蒙特卡洛模拟之后结果得到的分布函数。

图10 是生成的执行调度,其用于向优化器馈送结果得到的设置,其中概述了一个计算节点的一些可运行件的时序和另一个计算节点的一些可运行件的时序,以供进一步分析和优化。

图11是通信矩阵。

技术系统的软件架构、诸如自动化系统的嵌入式设备在其设计开始时被理解为利用端口、接口、连接及其交互来定义软件组件的过程。在该早期阶段,基于软件架构的算法及其背后的功能的可用知识,关于软件组件的并发性、序列和时序做出一些初步设计估计。

从软件项目架构视图中描述执行时序有助于预测软件设计后期中可能的程序执行瓶颈。为了能够标识执行瓶颈并且近似软件组件的执行时间,根据本发明的方法使用了描述软件架构算法的公知的因子图。

因子图是统一的图形符号,其用于多种多样的信号处理、估计、随机推理、机器学习和控制算法。因子图支持算法概念的设计,并且捕获在多个计算节点上调度算法部分的基本约束。因此,因子图是因子分解函数的图形表示,如[1]中详细描述的。

图1图示了简单软件系统的示例性因子图,该软件系统借助于已知的传感器融合从由不同计算节点ECU1、ECU2提供的两个独立测量中计算值。图1中概述的因子图描述传感器融合算法。该软件系统包括运行在计算节点FCCS上的三个不同的软件组件SW1、SW2和SW3。软件组件SW2从表示嵌入式控制单元的前述两个计算节点ECU1、ECU2接收传感器值。

在该因子图中,两个软件组件SW1、SW2、SW3以及软件组件SW1、SW2、SW3和嵌入式计算单元ECU1、ECU2之间的边分别描述了其值用大写字母表示的结果。从一个软件组件到另一个软件组件SW1、SW2、SW3和嵌入式控制单元ECU1、ECU2的消息分别用消息μ表示,而消息的方向由位于与相应边相邻处的粗箭头指示。

三个示例性软件组件SW1、SW2、SW3与相应的可运行件P211、P212、P213(即可运行的功能实体)相关联。嵌入式控制单元ECU1、ECU2与相应的调度器相关联。这些可运行件连同分配的资源和读或写消息以及它们由相应的调度器的执行一起将被用来确定软件系统的执行时间的近似。下面将描述该过程。为了理解本发明,在软件组件与嵌入式控制单元之间的详细交互是不相关的。关于本发明,待评估的软件系统的因子图被认为是给定的。如图1中所概述的因子图可以自动提供,如在申请人的专利申请EP18164183.8中所描述的。替代地,这样的因子图可以作为软件工程师的手动工作的结果来提供。

从因子图的描述中,可以导出一个或多个可运行件排序约束。此外,可以生成描述计算节点之间的通信链路的通信矩阵。自动生成可运行件排序约束和通信矩阵的过程不是本发明的部分。在申请人的并行专利申请EP18164183.8中描述了使用因子图作为输入的、它们的计算机实现的生成。

可运行件排序约束和通信矩阵将被用作输入以自动确定软件系统的执行时间行为。由执行本发明的处理单元接收的相应的排序约束数据集的示例在图2和图5中给出。

例如,可运行件排序约束例如是XML文件,其描述例如Amalthea模型,对于每对相互作用的可运行功能实体,包括通信方向、从其发起通信的可运行功能实体和作为通信接收方的可运行功能实体的标识符、通信信号的标识符以及通信中牵涉到的一个或多个计算节点。

在根据图2的排序约束数据集SQ1中,仅作为示例,概述了各对相互作用的可运行功能实体之间的四个“通信”,以短语“可运行件排序约束”RSC开始。该起始短语RSC之后是从其发起通信的可运行件、箭头和作为通信接收方的可运行件。每个“通信”的可运行件排序约束包括关于次序类型(此处:后继者)、从其发起通信和通信去往到其的可运行件对(此处:“COM_R-->RTE2_R”表示第一通信3a,“RTE2_R-->P212”表示第二通信3b等等)的信息,和可运行件排序约束是否被用户定义的信息(此处:假)。关于通信方向的信息由连接两个可运行件的箭头指示。关于通信信号的标识符的信息(如图1中概述的μ)并且在本示例中缺少通信中牵涉到的一个或多个计算节点,尽管它们可能是排序约束数据集SQ1的部分。

假设SQ1的可运行件由对应于计算节点ECU2的调度器执行。

将注意到,排序约束数据集SQ1是从因子图中生成的,其中,可以使该生成是由计算机生成的。排序约束数据集被用作对根据本发明的方法的第一输入。

从排序约束数据集SQ1可以构建转移矩阵P。转移矩阵P的形式为

转移矩阵P具有多个矩阵元素P

在图3的本示例中,标识了七个可运行件COM

如果在发起可运行件与接收可运行件之间存在通信,则转移值P

根据选择的SQ1的示例,通信序列是顺序的,这是由于不存在任务的并行执行的事实。作为结果,如果要设置,则转移值被设置为“1”。这以可运行件排序约束COM_R-->RTE2_R来示例化,其中转移值P

从图3中的转移矩阵P1,可以确定如在图4中图示的马尔可夫链MC1。马尔可夫链包括对应于排序约束数据集SQ1中的可运行件的多个节点。根据所选的示例,可以看到图4中的马尔可夫链包括七个可运行件COM

由图1的因子图限定的软件系统的另一软件部分,由根据图5的排序约束数据集SQ2来描述。将注意的是,该方法可以用多个不同的排序约束数据集来实行,它们中的每个描述要评估的软件系统的一部分。然而,关于排序约束的信息也可以是单个排序约束数据集的部分。

在根据图5的排序约束数据集SQ2中,仅作为示例,注意到七个可运行件COM

图6图示了由图5的排序约束数据集产生的转移矩阵P2。转移矩阵P2的结构对应于如以上所描述的转移矩阵P2。如从图5可以看到(利用6b表示的矩形),存在三个并行过程,它们从不同的可运行件P11、P12和P13发起,但是被从相同的可运行件RTE1_W(对应于标记RTEl

图7图示了由根据图6的转移矩阵产生的马尔可夫链MC2。如可以容易地看到的,可运行件RTEI

如在图4和图7中图示的马尔可夫链MC1、MC2如已经解释的那样构成了软件系统的部分。在图8中,这两个部分被一起放在联合马尔可夫链MC中,该联合马尔可夫链MC可以通过统一根据图3和图6转移矩阵来得到。联合马尔可夫链MC可以从联合转移矩阵(未示出)中导出,该联合转移矩阵通过组合转移矩阵P1和P2而产生。如从图8显然的,软件系统的两个部分都需要可运行件COM

由于不同的分配资源和/或可运行件的执行时间,在蒙特卡洛模拟之后所需资源的结果得到的分布在根据图9的计数状态图中图示。在图9中,图示了每个可运行件P211、P212、P213、RTE2_R、RTE2_W、P11、P12、P13、RTE1_R、RTE1_W、COM_R和COM_W的状态STS以及根据执行量的所需的资源CTS。可运行件与调度器1或2相关联,这取决于它们中的哪一个正在执行可运行件。可以看到调度器1通过可运行件COM _ R和COM_W的频率低于调度器2。这可以是可能的资源分配的重要信息。关于资源分配的信息可以从以下事实中取得,例如,调度器1通过可运行件P13比通过其他可运行件(参见图9中的标记PSF)更不频繁。这可能指示计算节点中的内部资源问题。

可运行件与调度器的关联可以从如图11中示出的通信矩阵中得到。通信矩阵包括关于消息msg、信号Sig和牵涉到的嵌入式控制单元ECU1、ECU2的信息,其中牵涉到的事情包括读取(R)或写入(W)操作。在并行专利申请EP18164183.8中描述了通信矩阵的生成。通信矩阵允许生成必要量的调度器和相关联的接口。作为结果,转移矩阵的子矩阵被确定,其中每个子矩阵与调度器相关联。将注意到的是,假使软件系统的不同部分需要可运行件(在示例中:COM

执行时序转移矩阵的估计示出了软件组件的时序行为,使得如图10中示出的序列图可以被获得并且用于进一步分析。使用来自后一个过程的排序约束,可以获得序列图。此外,注释诸如数据衰老约束之类的附加信息可以更准确地限定时序约束,并且导出最小/最大时序约束。向给定嵌入式计算节点的可运行件的分配以及最终图11的通信矩阵,呈现特定调度器的分配。

在图10中,示出了用于可运行件中的一些的执行的时序图。仅作为示例,前述嵌入式控制单元ECU1、ECU2以不同的方式配置。ECU2的时序图示出在图10的上部中,图10的上部具有几个软件组件,但没有做出关于时序和排序方面的说明。在另一方面ECU1是参数化的,使得软件组件必须遵循特定的序列模式,并且必须在指定的时间流逝内完成计算。ECU1的时序序列被示出在图10的下部中。这个参数化可以放入转移矩阵P1、P2的相应转移值。

在图10中,p

对于由ECU2执行的可运行件P11、P12和P13,释放时间r

由ECU1执行的过程P211、P213和P212被参数化,使得软件组件必须遵循特定的序列模式。特别地,作为第一过程,过程P211在释放时间r211开始。过程P211一结束,过程P212就开始。此外,过程P212一结束,过程P213就开始。在过程P213结束之后,接着是通信过程COM_W。过程中的每个具有不同的释放时间r211、r212和r213,以及不同的到期日期d

每个可运行件P11、P12、P13和P211、P212、P213具有与其相关联的时序分布。时序分布指示其执行时间,其中如图9中示出的分布函数是通过借助于蒙特卡罗模拟改变执行时间而以迭代方式生成的,以预测软件系统的时序特性。时序函数可以是如与图10的过程P11、P12、P13和P211、P212、P213相关联的伽马分布。替代地,时序分布可以是贝塔分布或均匀分布。

通过改变时序分布,检查时序约束是否被满足或是否能够被满足。特别地,关于ECU2,检查即使这些任务P11、P12、P13的估计处理时间根据如图示的时序分布而变化,过程P11、P12、P13中的每个是否也能够满足到期日d

如图10中示出的执行调度的布局可以描述为一个优化问题,或者为一个SAT(可满足性问题)。这样的表示可以精确找到可能不满足的时序要求。在不可行的解决方案的情况下,根本原因将被所谓的助手变量发现。

在这个背景下,对问题的SAT描述证明了给定的时序限制是否可以保留用于来自软件设置的蒙特卡罗模拟的一组样本,即,如果问题的解决方案存在于可行的约束集内,则可以保留在当前阶段的时序方面。具体地,例如,P212的执行样本必须在约束r212<= p212<= d212内产生,以满足设置需求。

这样的时序约束如图10中所看到的那样被自动生成,并且可以通过精确找到设置内的瓶颈来解决。该生成包括获取从如图10中看到的下限,放置它们使得序列被保留,并且排列上界使得对应的序列也被保留。

总结以上描述的方法,通过从排序约束数据集生成马尔可夫链(描述要在自动化系统上执行并且包括分布在多个计算节点之上的软件组件和可运行件的软件系统),并且进行蒙特卡洛模拟,可以基于软件项目的架构描述和其组件布局,应用优化来描述软件项目中可能的时间执行场景。该方法以从软件系统的因子图中推导出马尔可夫链模型开始。由此,可以避免手动建模,从而允许快速和直接地应用如上解释的方法。

马尔可夫链以及蒙特卡洛优化是一组用于对来自未知或部分已知随机过程的数据进行采样并且高效地估计基础模型的来自随机分析领域的方法。这些模型可以用于在后期的推断或模拟目的。对于该模型标识,测量数据或从马尔可夫过程模型生成的数据可以用于拟合可假定的模型。

马尔可夫链是从排序约束数据集和一个从因子图导出的通信矩阵生成的。从这两个输入生成的转移矩阵具有某些特性,并且用于对序列、可运行件优先级和通信时序方面进行建模。对于每个计算节点,利用阶段的约束范围对调度器进行建模。这意味着该区域的子矩阵不能到达所有其他状态。

在相对定位约束的情况下,问题的估计时序布局可以通过用转移概率的估计来注释可运行件来描述,所描绘的图可以被转移成若干个并行运行的马尔可夫链(见图4和图7)。蒙特卡罗模拟有助于预测整合时序特性,并且允许针对最坏情况场景、调度瓶颈、资源匮乏、资源泄漏等进行不可行性标识。

使用不同的可运行件的概率分布注释可以描述复杂的行为,所述复杂的行为可影响系统的调度和抢占响应。概率分布可以例如是截断正态分布、伽玛分布、贝塔分布或均匀分布。通过将伽马分布分配给可运行件,可以表述执行时间通常位于某个峰值,但是由于例如收敛标准,取决于情况,执行时间可能比预期花费更长或更短的时间。通过使用贝塔分布,可以描述软件组件具有可预见的分布时间,该可预见的分布时间通常处于某个峰值。均匀分布是可以应用的随机过程(例如软件组件的执行)的有界描述,其中操作的数量是可预测和有限的,但是在操作时间中可能有一些变化。

软件组件中的每个的特性描述可以借助于其他过程或时间行为的确定性描述、例如通过状态空间系统模型、高斯随机游走、非线性系统描述或其他表示来扩展。

每个软件组件的整体确定了系统作为整体如何表现。基于该表示,模型可以被设置,并且然后在蒙特卡洛模拟中求解,从而示出结果转移直方图,如在图9中看到的。

为了标识关于时间问题的架构执行中的瓶颈,使用时序、排序、并发性约束来设置马尔可夫链蒙特卡罗模拟。

参考文献

[1] Loelinger等人的"The Factor Graph Approach to Model- Based SignalProcessing", Vol. 95, No. 6,2007年6月, Proceedings of the IEEE。

相关技术
  • 用于建筑物自动化系统的配置的数据采集的方法和用于配置建筑物自动化系统的方法
  • 用于配置工业自动化系统内的通信设备的方法和用于工业通信网的配置服务器的分配器单元
技术分类

06120112180620