联仿与sysml

480 阅读4分钟

本文中的联仿系统是基于fmi协议实现的,只支持信号接口。

一、什么是SysML

SysML(Systems Modeling Language)是一种通用图形化建模语言,支持复杂系统分析、规范、设计、验证和确认;它能够帮助实现系统的规范定义和架构设计,并定义组件的规范。它扩展并标准化了UML,专注于复杂系统的建模。SysML能够用于实现系统的规范定义和架构设计,并定义组件的规范。

特点:

  • 统一建模
  • 可复用性
  • 相容性
  • 可视化
  • 模型驱动
  • 交互性
  • 验证

SysML包含了以下几种图的类型,其中如果要实现将架构设计从一个系统迁移到另一个系统,应该重点关注块定义图内部块图

  • 包图(Package Diagram)
  • 需求图(Requiements Diagram)
  • 用例图(Use Case Diagram)
  • 块定义图(Block Definition Digram)
  • 内部块图(Internal Block Diagram)
  • 参数图(Parametric Diagram)
  • 活动图(Activity Diagram)
  • 序列图(Sequence Diagram)
  • 状态机图(State Machine Diagram)

一般的联合仿真系统都会有自己的一套描述系统的逻辑,而有些仿真系统是支持SysML的导出,如果联合仿真系统支持架构设计,又能支持SysML导入,那么就可以加强系统的兼容性。

sysml、fmi与联防

首先,sysml和fmi协议是两种不同的建模语言,它们有不同的目的和表达方式。sysml是一种用于描述复杂系统的结构、行为和需求的图形化语言,而fmi是一种用于交换和协同仿真基于模型的组件的标准。sysml可以用于定义系统的架构和接口,而fmi可以用于定义组件的动态行为和数据交换。而联仿系统定义了一种联合仿真的数据结构,这个结构中包含了节点、信号连接关系,现在实现时需要将sysml架构文件转换为联仿系统的数据结构。

block块

在sysml中, block块是一种用于定义系统元素的类型,可以包含属性、操作、端口、连接器等。block块并不等同于接口,接口在sysml中是一种用于定义两个或多个block之间交互的协议。block块可以实现接口,也可以使用接口。因此,要实现转换的联仿系统需要支持顶层架构设计功能,也需要定义一种组件块Block,用于表示接口,并且可以通过替换操作换成实际的fmu进行联防。

二、fmi不兼容物理接口

联仿系统中都是信号接口,这是因为fmi协议关注的是系统元素之间的信号交换,而不是物理连接,它定义了组件模型之间的数据交换和仿真控制。因此可以将sysml中的信号接口直接映射到fmi协议中的输入输出变量,并通过连接器来建立组件模型之间的信号流;但物理接口就无法直接进行映射。

sysml中的物理接口和信号接口是两种不同的端口类型,它们分别用于表示系统元素之间的物理连接和信号交换。物理接口通常用于描述系统元素之间的力学、热学、电学等方面的相互作用,而信号接口通常用于描述系统元素之间的数据、事件、命令等方面的通信。

物理接口

物理接口可以分为以下几种:

  • 电气接口,例如电压、电流、电阻等
  • 机械接口,例如力、速度、位置等
  • 热接口,例如温度、热量、热阻等
  • 流体接口,例如压力、流量、密度等
  • 光学接口,例如光强、波长、相位等

区分

sysml协议中有对物理接口和信号接口做区分的。物理接口是一种用于描述系统与外部环境或其他系统之间的物理连接和交互的元素,它可以包含多个流端口。信号接口是一种用于描述系统与外部环境或其他系统之间的事件驱动的通信的元素,它可以包含多个信号端口。物理接口和信号接口都是一种端口,但是它们的作用和属性不同。

Sysml包含以下几种类型的端口

  • v1.2及更早的版本
    • 标准端口
    • 流端口(Flow interface),用于表示模块之间的流交互,如数据流或物质流。
  • v1.3及更后面的版本
    • 完整端口(Full interface),用于表示模块之间的所有交互,包括流交互和非流交互。
    • 代理端口(Proxy interface),用于表示模块与外部环境的交互,如电源或网络。
    • 流属性:用于标识物理接口

如上所示,不同版本的SysML定义了不同的端口,需要根据版本的定义来区分物理接口与信号接口。

三、中文问题

在SysML中用非英文标识接口是很正常的事,在转换的过程中需要考虑系统是否支持非英文的字段,不支持如何进行转换或适配。

四、参考文档

SysML块定义图(Block Definition Digram)