# 平台分层架构


贯彻从底层算法到上层应用的完全开放策略,科学计算与系统建模仿真开放系统架构在最高抽象级别上划分为三个层次:内核层、平台层和应用层。 分层架构

  • 内核层
    内核层是科学计算与系统建模仿真平台的最底层,负责算法函数和仿真模型的编译运行,主要由基础数学算法库、模型求解算法库及科学计算与系统建模仿真内核组成。

  • 平台层
    平台层是科学计算与系统建模仿真的集成开发环境,为函数、模型、APP 等资源提供开发、调试、集成、测试、部署等全生命周期支持,主要由科学计算环境和系统建模仿真环境组成。

  • 应用层
    应用层由函数库、模型库、APP 等应用资源组成,以服务形式支持用户解决基础共性、行业通用、企业专用问题,应用资源基于平台层提供的开放接口,采用统一的资源开发规范开发。

内核层和平台层提供了开放、标准接口供开发者和外部系统调用,应用层则定义了一套开发规范,支持函数、模型和 APP 资源的开发。

  • 内核级开发接口
    支持底层算法可替换,开发者可设置、替换科学计算与系统建模仿真平台底层数值算法、数学包、仿真求解算法、求解器等;

  • 平台级开发接口
    支持应用资源可扩展,开发者可基于平台级开放接口,采用多语言高效开发函数库、模型库、APP 等应用资源;支持外部系统可集成,第三方系统可以松耦合方式,整体集成科学计算与系统建模仿真平台;

  • 资源开发规范
    定义了一套开发规范,支持函数、模型和 APP 资源的开发。

# 内核层

内核层是科学计算与系统建模仿真平台的最底层,负责算法函数和仿真模型的编译运行,主要由基础数学算法库、模型求解算法库及科学计算与系统建模仿真内核组成。内核层定义了一套接口规范,包括底层算法接口和上层内核接口。底层算法接口对科学计算算法、模型求解算法的接口进行规约,符合算法接口标准即可接入科学计算与系统建模仿真平台;上层内核接口提供一组内核原子 API,支持模型编译、模型分析、模型求解、代码生成、仿真结果读写等操作。

对于科学计算与系统建模仿真内核分为三个层次,分别是算法层、主控层和应用层。

算法层实现 ODE 初值问题、线性代数系统、非线性代数系统的求解算法,分别对 ODE 初值问题、线性代数系统、非线性代数系统进行解算。扩展模型求解算法就在本层实现。

主控层是模型求解的核心,依据平台的求解策略,调用算法层的算法函数对模型进行仿真。同时,主控层提供模型方程系统中的 ODE 初值问题的计算函数、非线性代数系统的计算函数、线性代数系统的数据供算法层使用,也提供堆内存分配、日志输出等工具函数供算法层调用。

应用层调用主控层接口进行模型仿真,并提供模型仿真结果的保存、仿真进度控制、数据源等功能。算法层的求解算法在应用层通过主控层的接口进行注册以与求解器集成。

计算函数、工具函数、算法函数都是以回调函数的形式提供。回调函数是 C 语言函数,符合规范 C99。

# 平台层

平台层是科学计算与系统建模仿真的集成开发环境,为函数、模型、APP 等应用提供开发、调试、集成、测试、部署等全生命周期支持,主要由科学计算环境和系统建模仿真环境组成,科学计算环境主要用于函数的开发,系统建模仿真环境主要用于模型的开发,平台层提供开放、规范的接口用于 APP 的开发。

科学计算环境是同元面向科学计算的平台,通过 Julia 语言支持多范式统一编程,简约与性能兼顾。提供通用编程、科学计算、数据科学、机器学习、信号处理、通讯仿真、并行计算等功能,并可使用内置的图形进行数据可视化。科学计算环境实现了与工程建模仿真环境 Sysplorer 的双向融合,形成新一代科学计算与与工程建模仿真的一体化基础平台,满足各行业在设计、建模、仿真、分析、优化方面的业务需求。

系统建模仿真环境是面向多领域工业产品的系统级综合设计与仿真验证环境,完全支持多领域统一建模规范 Modelica,遵循现实中拓扑结构的层次化建模方式,支撑基于模型的系统工程应用。科学计算环境基于国际多领域统一建模规范 Modelica,支持工业设计知识的模型化表达和模块化封装,支持多方案优选及设计参数优化,以知识可重用、系统可重构方式,为工业企业的设计知识积累与产品创新设计提供了有效的技术支撑,对及早发现产品设计缺陷、快速验证设计方案、全面优化产品性能、有效减少物理验证次数等具有重要价值。

API 是指 MWORKS 内核层和平台层提供的供开发者和外部系统调用的开放、标准接口。API 包括科学计算算法环境 API 和系统建模仿真 API 两部分,每层 API 皆可独立使用,以满足不同层次的应用需求:

  • 科学计算环境 API:包括基础 API 用于基本运算、数学 API 用于初等数学线性代数等基本数学方程、图形 API 用于生成二维和三维图等;

  • 系统建模仿真环境 API:包括内核级 API 用于模型文件操作、模型参数操作、模型属性获取、编译仿真等,图形组件级 API 用于模型视图、模型浏览器、组件参数面板等图形接口。

# 应用层

应用层定义了一套函数库、模型库和 APP 的开发规范,支持以规范的方式开发科学计算与系统建模仿真平台资源,提供资源管理接口,支持函数库、模型库和 APP 的装载、驱动和卸载。

  • 函数库开发规范:科学计算环境中的函数库由一系列函数组成,这些函数是科学计算环境的主要元素。除了科学计算环境中本身已提供的内置函数,用户也可根据函数库开发规范开发一套新的函数,并以函数库的方式集成到科学计算环境中,从而扩展科学计算环境的功能;

  • 模型库开发规范:系统建模仿真环境中的模型库由一系列模块组成,模块是构建系统模型的主要元素。系统建模环境内置了库提供了多学科基本模块。并支持用户开发新的模块,并将其以模型库的方式集成到系统建模仿真环境中,从而扩展系统建模仿真环境的功能;

  • APP 开发说明:科学计算环境和系统建模仿真环境均支持用户开发一个带交互界面的应用程序以满足用户构建面向特点应用场景的 APP 开发。因此,定义了一套 APP 的开发规范,描述了 APP 的开发、运行及管理机制来规范用户开发 APP 的过程。