基础工具箱
对标MATLAB基础工具箱,结合产业需求重点,提供并行计算、数学与优化、统计与数据科学、模型验证与确认、测试与测量、机电液物理等工具箱与模型库,为各行业应用提供跨行业的基础共性工具集
机电液物理工具箱与模 型库 |
机械多体工具箱 |
Simscape Multibody |
3D视景工具箱 |
Simulink 3D Animation |
|
并行计算工具箱 |
并行计算工具-本地端功能 |
Parallel Computing Toolbox |
并行计算工具-服务端功能 |
MATLAB Parallel Server |
|
数学和优化工具箱 |
曲线拟合工具 |
Curve Fitting Toolbox |
优化工具 |
Optimization Toolbox |
|
全局优化工具 |
Global Optimization Toolbox |
|
符号数学工具 |
Symbolic Math Toolbox |
|
AI、数据科学与统计学工具箱 |
统计及机器学习工具 |
Statistics and Machine Learning Toolbox |
深度学习工具 |
Deep Learning Toolbox |
|
强化学习工具 |
Reinforcement Learning Toolbox |
|
确认、验证和测试工具箱 |
建模规范检查工具(Check) |
Simulink Check |
模型静态检查工具(Design Verifier) |
Simulink Design Verifier |
|
模型覆盖度分析与统计工具(Coverage) |
Simulink Coverage |
|
模型自动化测试工具(Test) |
Simulink Test |
|
代码静态检查(Bug Finder) |
Polyspace Bug Finder |
|
代码静态检查(Code Prover) |
Polyspace Code Prover |
|
测试与测量工具箱 |
仪器控制工具 |
Instrument Control Toolbox |
机电液物理工具箱与模型库
基于统一的建模语言标准规范,按照统一流程和规范要求建设,基于自顶向下分解和自底向上集成的方式,实现构建多专业的物理模型库,覆盖机械、电气、流体各专业的基础函数与基础算法、通用接口、专业元组件模型库,为工业行业与工程企业提供运行逻辑、基础理论层面的共性知识。本项目将建设以下工具箱和模型库:
机械多体工具
针对多体系统可视化建模的需求,在文本建模和二维拖拽式框图建模的基础上,开发多体系统三维可视化模模型。基于多体动力学模型的统一数据类型,根据STL等图形数据标准,构建多体动力学三维可视化应用程序框架,并定义图形建模接口,通过多体三维几何模型参数驱动图形显示,并完成图形渲染;实现三维多体动力系统模型的可视化交互操作功能,针对多体动力学仿真的通用需求,定义图形创建、删除、拖拽式以及参数化修改与更新等功能,实现基于可视化三维界面的模型连接,通过可视化交互操作实时修改模型文件,并驱动可视化模型的显示更新,为多体动力学仿真提供三维可视化建模工具。
针对三维CAD建模软件在设计场景应用广泛、建模功能强大、但是难以直接用于多体动力学仿真分析的特点,开发常用三维几何装配模型的模型解析与导入模块,实现对多种CAD软件及模型格式的兼容与完善。
3D视景工具
提供3D视景工具,实现对动态系统运行状态的三维动画模拟,支持多种三维CAD模型的导入及轻量化处理、模型渲染、动画制作、仿真结果驱动等。可与可视化应用程序集成开发环境进行集成,实现多显示空间的界面集中化展示。
并行计算
对标并行计算工具箱,面向科学计算与系统建模仿真计算任务,提供多核CPU、GPU、计算机集群并行化执行计算程序,内容包括:
1. 并行计算函数库:提供并行计算函数库,使得应用程序能够在多核CPU上并行运行,以解决参数扫描、优化和蒙特卡洛仿真等问题。
2. GPU计算函数库:提供NVIDIA GPU计算函数库,包括数组抽象、CUDA内核编译器、CUDA各种库的包装器等,使得应用程序能够利用GPU资源来加速运算。
3. 批处理作业模块:提供批处理作业模块,包括作业和任务创建、作业提交和获取结果、队列管理和作业信息、任务控制和Worker(MWorks计算引擎)通信、并行计算池管理等,支持在集群或桌面后台并行运行多个仿真。
4. 仿真管理器:提供仿真管理器,用于在一个窗口中监控和可视化多个仿真,包括监视多个并行仿真、显示仿真进度、查找出错的仿真并查看诊断、查看仿真结果、中止仿真等。
5. 将应用程序扩展到集群或云端:支持在台式机或虚拟台式机上对应用程序进行原型设计和调试并扩展到集群或华为云,无需重新编码。
数学与优化
数学与优化工具箱提供包括:曲线拟合工具、优化工具、全局优化工具。
曲线拟合工具
曲线拟合工具提供用于将曲线和曲面拟合到数据的函数集与界面UI。该工具箱支持数据分析、预处理和后处理数据并提供线性及非线性模型库进行回归分析,或指定用户自定义方程进行拟合分析。具体功能包括:
- 拟合数据预处理。支持针对待拟合数据的预处理,包括数据处理、剔除异常值等;
- 样条曲线构造。支持非参数建模技术的各类样条曲线构造;
- 曲线拟合。通过非线性最小二乘等方式支持线性拟合、指数拟合、对数拟合、幂函数拟合、多项式函数拟合、有理分式函数拟合、正弦曲线拟合、韦布尔拟合等,同时支持用户自定义函数的拟合,并支持对拟合效果的评价;
- 曲面拟合。支持针对数据的二元多项式拟合及自定义二元函数拟合,并支持对拟合效果的评价;
- 提供界面UI。提供界面UI用以更加直观的方式执行曲线与曲面拟合。
优化工具
针对连续和离散问题的最优解、权衡分析与优化是工程中常见的问题。优化工具支持求解线性、二次、整数和非线性优化问题,提供了多个函数,可在满足约束的同时求出可最小化或最大化目标的参数。并提供适用于线性规划(LP)、混合整数线性规划(MILP)、二次规划(QP)、非线性规划(NLP)、约束线性最小二乘、非线性最小二乘和非线性方程等问题的专用求解器。具体的功能包括以下:
- 支持优化问题的定义与优化设置。支持使用变量或表达式对待优化的问题进行描述和定义,并支持优化求解器的选择、目标函数及约束的定义;
- 非线性优化。支持求解具有一个或多个目标的有约束或无约束非线性问题;
- 线性规划和混合整数线性规划。支持求解具有连续变量和整数变量的线性规划问题;
- 二次规划和锥规划。支持求解具有二次目标和线性约束或锥约束的问题;
- 最小二乘。支持求解最小二乘问题;
- 非线性方程组求解。支持针对非线性方程组的求解。
全局优化工具
全局优化工具所提供函数集,用于搜索包含多个最大值或最小值的问题的全局解。工具箱提供的求解器包括代理、模式搜索、遗传算法、粒子群、模拟退火、多起点和全局搜索。当目标函数或约束函数是连续的、不连续的、随机的、不具有导数或包含模拟或黑盒函数时,支持使用这些解决器来解决优化问题。
AI、统计与数据科学
数据科学和与深度学习工具箱包含监督学习、无监督学习以及强化学习,开发统计及机器学习工具箱、深度学习工具箱以及强化学习工具箱。
(1)统计与机器学习工具箱
提供概率分布相关函数,支持不同分布的随机数生成,支持分布函数及随机样本数据的可视化;提供聚类相关算法,支持数据分类以及数据簇的可视化和最佳簇数的计算;提供降维和特征提取相关函数和算法,主要包括PCA、因子分析、特征选择、特征提取等。
(2)深度学习工具箱
深度学习工具箱主要面向监督学习,提供各类神经网络以及神经网络训练算法,支持以参数面板的形式导入训练数据、构建和训练神经网络。支持的神经网络主要包含传统前馈神经网络、循环神经网络以及深度学习神经网络。
(3)强化学习工具箱
提供各类强化学习算法、虚拟环境模型以及强化学习相关应用案例。强化学习相关算法主要包含两类:基于价值的强化学习算法和基于策略的强化学习算法。虚拟环境模型包含车摆、单摆等定制化的模型,同时支持导入Modelica模型作为虚拟环境模型。强化学习相关应用案例包含控制算法、控制参数整定等相关案例。
模型验证确认与测试
通过模型静态检查工具、软件覆盖度分析与统计工具、模型驱动的自动化测试工具的研发,来打造模型驱动的V&V引擎,保证模型是正确高效的。
(1).模型静态检查工具
研究模型的规范建立方式并参考行业建模规范建立自主建模规范及规范检查规则,并研究将这些规范使用软件进行描述,并研究将描述形成工具集合。工具集合包括了描述模型建立的合规条目,模型规模指标提取,模型架构设计优化技术。模型静态检查工具将根据规范进行模型外观、参数配置、布局方面的检查,将结果汇总,通过报告自动生成工具,将结果呈现出来。模型规模指标包括模块个数、模型子系统层数、引用外部代码文件个数、生成代码行数,整个模型系统的根级别输入接口、根级别输出接口以及参数的个数等;模型架构优化技术主要研究提取模型拓扑结构中的相似之处,并给出封装子系统进行重用的建议,以降低模型生成代码的规模,提高软件复用度。
(2).覆盖度分析与统计工具
模型覆盖度分析通过测量模型对象的分支执行彻底程度来帮助验证模型的功能正确性与可靠性。覆盖度的基本计算是计算测试用例下能够驱动模型的彻底程度,具体计算则是测试用例执行软件的路径占据软件所有分支的百分比。覆盖度分为四种,分别为:
- 执行覆盖度(EC):执行覆盖是最基本的覆盖形式。对于每个项目,执行覆盖度决定了该项目是否在仿真期间被执行。
- 决策覆盖度(DC):决策覆盖分析代表模型中决策点的元素,例如分支模块或状态机模块。对于每个项目,决策覆盖度决定了仿真经过的项目的仿真路径总数的百分比。
- 条件覆盖度(CC):条件覆盖度分析模型中对输入的逻辑组合进行输出或状态流转换的块。当测试用例使模型中逻辑块的每个实例的每个输入以及转换的每个条件在仿真期间至少为真一次和为假一次时,就实现了完全覆盖。条件覆盖分析报告测试用例是否完全覆盖模型中每个块的块。
- 修改条件/决策覆盖率(MCDC):修改条件/决策覆盖率用于扩展决策和条件覆盖能力,它分析输出其输入和状态机转换的逻辑组合的块,以确定测试用例测试逻辑块输入和转换条件独立性的程度。
研究将传统针对的代码的覆盖度分析指标应用到框图式数据流模型上应该做何种改变与适配。
借助于报告生成工具,可以在覆盖度分析与统计工具执行完毕后自动生成覆盖度报告。
(3).代码静态验证工具
行业对于模型生成的代码有静态验证的需求。要求能够实现对C代码的验证,且保证验证精度,能准确识别数组越界、死循环等问题。
不同于编译器及其它分析工具,科学计算与系统建模仿真基础工具集只检查编译器检查不出来的错误,不检查语法错误,它作为编译器的一种补充检查,对目标源代码执行严格的逻辑检查。
静态代码检查工具支持和发现常见缺陷和漏洞有代码中的错误项,包括内存泄漏等;编码风格,提示哪些函数没有使用、是否存在冗余代码等功能。
(4).模型驱动的自动化测试工具
自动化测试是根据用户编辑的测试步骤进行测试过程的自动化,该脚本可自动执行测试步骤并记录过程数据,最终生成测试报告。面对越来越复杂的控制系统,验证其可靠性和安全性的测试用例数目也越来越大,这时,自动化测试显得尤为重要。此技术研究包括基于模型的形式化验证技术、基于MIL/SIL等在环的背靠背验证技术、基于控制序列的自动化测试技术以及基于上位机对测试过程和产物的管理技术,最终形成基于模型的自动化测试模块,实现从测试管理、设计、运行到结果、测试报告生成,实现整个过程的自动化,并将针对过程产物之间如何保证追溯性进行深入研究。
测试与测量
测试与测量工具箱主要开展统一的数据采集和输出的应用层框架技术、通用的仪器连接和通讯技术研究,形成仪器控制工具箱,支持基于可视化配置的数据采集或输出功能函数或模型生成、通用的仪器连接和通讯,实现对工控设备的数据采集、处理与动作控制。主要研究内容包括:
形成基于通讯接口和基于仪器驱动的仪器交互方法,支持在模型中直接配置与仪器的数据发送和接受,并支持第三方仪器设备的接入配置,支持板卡设备的自动获取、支持硬件通道配置的可视化配置。
1. 仪器设备与接口模块,包括:
a. 适配通用型串口、TCP服务端、TCP客户端、UDP接口、混杂模式网口;
b. 适配VISA型串口、TCP设备、GPIB设备、USB设备和PXI设备;
c. 创建任意仪器设备和接口组合;
d. 同时对不同的仪器设备和接口进行通信;
e. 通过插件的方式扩展新的仪器设备和接口,例如增强型串口等,以满足特殊的仪器连接需求。
2. 仪器设备工具变量支持模块,包括:
a. 创建变量、变量数组和变量容器;
b. 创建扩展变量,如表达式变量、文本文件变量、数据库变量等,满足各种测控数据传递、呈现和存储需求;
c. 变量数据类型Boolean、Int8、UInt8、Int16、UInt16、Int32、UInt32、Int64、UInt64、Float、Double、String;
d. 变量数据的格式化;
e. 创建变量模板。
3. 仪器控制执行序列模块
a. 创建执行序列,实现任意逻辑的执行过程,满足各种测控执行需求;
b. 创建流程控制,如分支语句If、Switch,循环语句For、While,并行语句Parallel;
c. 实现同步控制,如等待(Wait)、通知(Notification);
d. 可运行数值类型动作步骤(Value)、消息类型动作步骤(Message);
e. 实现序列嵌套,满足复杂的层次结构运行需求;
f. 创建协议模板和步骤模板。