# 开放系统架构
科学计算与系统建模仿真平台是当前工业软件中行业应用最广、生态影响最大、依赖粘度最强的工业软件,通过计算数学的软件化与工程知识的模型化,支撑用户在开展科学计算、数据处理、产品设计、仿真分析等工作中实现能力、效率与质量的有效提升,在以模型——数据为中心的数字化时代更有望成为数字化核心能力平台。
科学计算与系统建模仿真开放系统架构,定义了一套面向云环境的科学计算与系统建模仿真平台架构和接口标准化方案,支持开发者基于统一的接口规范,以一致的方式开发函数库、模型库和 APP,实现平台共建,丰富应用生态。
# 使用范围
本规范提出了科学计算与系统建模仿真开放系统架构,规定了科学计算与系统建模仿真平台各层级对外开放的标准接口协议、基础接口功能、接口调用方式等内容,给出基于开放接口开发函数、模型、APP 等资源的示例。
本规范可供南向数学算法/求解器开发者、北向函数/模型/APP 开发者、平台集成服务商、测评机构等单位参考使用。
# 术语和缩略语
# 术语
科学计算环境
针对科学与工程中遇到的矩阵运算、微分方程求解、数据分析、信号处理、控制设计与优化等问题,提供基于高性能科学计算语言的脚本开发、调试、运行及后处理可视化环境;系统建模仿真环境
针对工程物理系统中机械、电气、控制、流体等单学科或多学科耦合的系统级分析及验证问题,提供基于多领域统一建模规范的图形化建模、仿真、求解及后处理一体化环境;函数库
函数库是科学计算环境中的各类基础函数集合,包括:基础语言、基础数学、基础信号、DSP、通信和控制系统等;模型库
模型库是系统建模仿真环境中的各领域模型集合,包括 Modelica 标准库(涵盖机电液控热领域)、基础信号、DSP、通信和控 制系统模型库等;APPs
APP 是带交互界面的应用程序,提供面向特定场景的专业应用,如控制系统分析应用。APP 通常依赖函数库或模型库,GUI 实现交互入口,专业算法调用底层函数。
# 缩略语
FMI
功能样机接口 FunctionalMock-upInterfaceBLAS
基础线性代数子程序库 BasicLinearAlgebraSubprogramsLAPACK
线性代数软件包 LinearAlgebraPACKageFFTW
快速计算离散傅里叶变换的标准 C 语言程序集 theFasterFourier Transform in the WestDSP
数字信号处理 DigitalSignalProcessing
# 引用文件
# 平台分层架构
贯彻从底层算法到上层应用的完全开放策略,科学计算与系统建模仿真开放系统架构在最高抽象级别上划分为三个层次:内核层、平台层和应用层。

内核层
内核层是科学计算与系统建模仿真平台的最底层,负责算法函数和仿真模型的编译运行,主要由基础数学算法库、模型求解算法库及科学计算与系统建模仿真内核组成。平台层
平台层是科学计算与系统建模仿真的集成开发环境,为函数、模型、APP 等资源提供开发、调试、集成、测试、部署等全生命周期支持,主要由科学计算环境和系统建模仿真环境组成。应用层
应用层由函数库、模型库、APP 等应用资源组成,以服务形式支持用户解决基础共性、行业通用、企业专用问题,应用资源基于平台层提供的开放接口,采用统一的资源开发规范开发。
内核层和平台层提供了开放、标准接口供开发者和外部系统调用,应用层则定义了一套开发规范,支持函数、模型和 APP 资源的开发。
内核级开发接口
支持底层算法可替换,开发者可设置、替换科学计算与系统建模仿真平台底层数值算法、数学包、仿真求解算法、求解器等;平台级开发接口
支持应用资源可扩展,开发者可基于平台级开放接口,采用多语言高效开发函数库、模型库、APP 等应用资源;支持外部系统可集成,第三方系统可以松耦合方式,整体集成科学计算与系统建模仿真平台;资源开发规范
定义了一套开发规范,支持函数、模型和 APP 资源的开发。
# 开放架构和接口使用场景
主要分为以下 3 种使用场景:
# 开放架构和接口详细说明
分别从内核层、平台层和应用层进行详细说明。
内核层
内核层定义了一套接口规范,包括底层算法接口和上层内核接口。底层算法接口对科学计算算法、模型求解算法的接口进行规约,符合算法接口标准即可接入科学计算与系统建模仿真平台;上层内核接口提供一组内核原子 API,支持模型编译、模型分析、模型求解、代码生成、仿真结果读写等操作。平台层
平台层提供一套平台级 API 用于开放科学计算与系统建模仿真平台的计算能力。科学计算平台的计算能力包括表达式计算、函数调用等,系统建模仿真平台的计算能力包括模型编译、模型分析、模型求解、代码生成。
平台提供云服务和命令行两大类应用接口。在云平台应用中,用户可以在自己的 web 页面中调用平台提供的接口。应用层
应用层定义了一套函数库、模型库和 APP 的开发规范,支持以规范的方式开发科学计算与系统建模仿真平台资源,提供资源管理接口,支持函数库、模型库和 APP 的装载、驱动和卸载。
# 附录1:内核级开放接口
# 附录 1.1 科学计算环境数学算法替换用户手册
包含科学计算环境内核层数学库(BLAS、LAPACK、FFT、SPARSE)的接口详细说明,以及基于数学库接口定义的替换案例,包括替换原理介绍、替换操作手册等。
# 附录 1.2 系统建模仿真环境内核算法替换用户手册
包含系统建模仿真环境内核算法替换快速开始和用户手册等。
# 附录2:平台层开放接口
# 附录 2.1 科学计算环境平台层 API 详细说明
包含科学计算环境平台层 API(基础 API、数学 API、图形 API、APP 构建 API)的详细说明,以及如何使用这套 API 的综合案例,包括多语言如何调用平台层 API、APP 如何调用平台层 API。
# 附录 2.2 系统建模仿真环境平台层 API 详细说明
适用版本:Sysplorer 2023b 及之前的版本。
系统建模仿真环境平台层 API 是 Sysplorer 供开发者和外部系统调用的标准接口。按照工作流分为以下 9 类 API:
以上 API 中的名词,请参见模型结构名词解释。
# 附录3:应用资源开发手册
# 附录 3.1 科学计算环境 APP 开发用户手册
APP 是带交互界面的应用程序,提供面向特定场景的专业应用,如控制系统设计与分析应用。APP 通常依赖函数库或模型库,具备 GUI 实现交互入口,通过专业算法调用底层函数。APP 作为专业工具,需要在 Syslab 平台的基础计算能力上,构建面向特定应用的专业计算能力。
# 附录 3.2 系统建模仿真环境 APP 开发用户手册
包含系统建模仿真环境 APP 开发包 MWORKS.SDK 的原理简介,首先通过一个简单的质量弹簧阻尼 APP,介绍了 APP 的开发、测试、打包、安装使用过程,通过 2 个综合案例(车辆仿真 APP、批量仿真 APP),详细介绍了 APP 的开发方法。
# 附录 3.3 模型库和函数库开发规范
包含函数库开发规范和模型库开发规范,函数库开发规范定义了一套开发 Julia 函数库需要遵循的规范要求,模型库开发规范定义了一套开发 Modelica 模型库需要遵循的规范要求。