MATLAB vs. MWORKS

0 评论
一、MATLAB发展背景

20世纪70年代,美国新墨西哥大学计算机科学系主任Cleve Moler用FORTRAN语言编写了线性代数系统求解算法包,实现了基于专用脚本语言的科学计算工具,成为MATLAB雏形。1984年成立了MathWorks公司将MATLAB推向市场。MATLAB 1.0版本提供80多个函数,没有工具箱,20世纪80年代恰逢美国控制学界基于状态空间的控制理论蓬勃发展的时期,由控制学界和工业界推动,得到极快的发展。1991年开始基于框图实现了数学建模可视化,构建了可视化建模环境Simulink,并开发多种可视化工具箱,从科学计算走向工程计算,并在控制系统专业占据了绝对优势,后来带动各领域专家为其编写工具箱,形成了其可以快速、高效解决各领域专业问题的能力。2008年仿照Modelica多领域统一建模规范推出了物理建模模块Simscape,支持面向组件的非因果物理建模,以实现多物理域、多学科的系统协同建模功能。

MATLAB产品体系

整体上看,MATLAB提供了以下几个重要功能:

1. 科学与工程计算

MATLAB提供了独立的科学计算脚本语言(m语言),以矩阵和多维数组为基础数据结构,支持科学计算脚本编程。采用m语言,可以通过交互性方式或脚本文件调用线性代数、微分方程、信号处理、概率统计、优化分析、数据处理、机器学习等各类算法库,并据此提供了工具箱,能够支持各种专业、行业的科学与工程计算,广泛应用于高校、科研机构的科学研究和工程计算工作。

2. 可视化建模仿真与代码生成

MATLAB提供Simulink和Simscape可视化建模工具,用于实现动态系统建模、仿真和分析,支持控制系统设计分析与优化、信号处理、仿真可视化、代码生成等功能。

●基于框图的可视化建模。通过框图支持数学可视化建模,并提供丰富的数学、控制、信号等框图模型库,广泛应用于汽车、电机、伺服控制、工业自动化等行业的线性与非线性系统、数字控制及数字信号处理的建模和仿真;

●多领域物理建模与Simscape模型库。仿照Modelica,MATLAB推出了Simscape支持多领域物理建模,Simscape模型库提供了机、电、液、磁等多专业物理模型库,实现了对多物理域、多层次系统建模的支持,可应用于航空、航天复杂系统的研发设计;

●基于模型的代码生成。支持从Simulink模型、Simscape模型、Stateflow图和MATLAB函数中生成并执行C和C++代码。生成的源代码可用于实时和非实时应用程序,包括仿真加速、快速原型、硬件在环测试以及不同硬件环境的嵌入式代码部署。

3. 可扩展的工具箱和模型库体系及MATLAB应用生态

MATLAB的m语言、Simulink工具和各种工具箱本身是封闭的,但学者和工程师可以基于m语言、Simulink和Simscape开发各种模型库和工具箱,目前的工具箱体系包括:控制系统工具箱、信号系统工具箱、数学与优化工具箱、自动驾驶工具箱、图像处理工具箱、代码生成与验证工具箱等。这样形成了一个庞大的生态,有好的工具箱MathWorks公司就去收购,这个生态是MATLAB核心价值的体现。

经过近四十年的发展,MATLAB已经成为通过专用脚本语言、可视化框图数学建模和可视化物理建模开展科学与工程计算的封闭式开发平台,MATLAB因其易用性和便捷性成为数学、科学、工程领域应用最广泛的科学计算工具软件,在控制领域,MATLAB已成为国际控制界的标准计算软件。

由于应用的广泛性和生态的封闭性,MATLAB已经成为自主科技发展的双刃剑,一方面,通过在科学与工程计算领域的强大功能和丰富的算法与模型积累,为科学研究、系统研发、工程应用提供了丰富的算法资源和高效的工具平台,对科学发展、技术进步起到了巨大的支持作用;另一方面,由于MATLAB底层不开放,任何基于MATLAB平台构建的成果,均难以脱离MATLAB环境单独使用。一旦MATLAB被停止授权使用,自己积累的所有模型、算法和工具箱将不能运行。

二、MWORKS与MATLAB对比分析

1.工程科学计算软件发展路线

目前在国际上有三种商业科学计算软件最具影响:MATLAB(美国MathWorks公司)、Mathematica(美国Wolfram公司)、Maple(加拿大MapleSoft公司,后被日本Cybernet公司收购),并称“三大数学软件”。其发展历程如下:

三大数学软件发展历程与同元技术发展历程

纵观以MATLAB为代表的三大数学软件发展历程,均包括两大部分:科学计算环境、可视化工程建模环境。三大数学软件均是先具备了科学计算环境,随后再开发出了可视化建模环境。其中1997年Modelica语言诞生后,其对三大数学软件的影响较大,MathWorks于2008年仿照Modelica推出了Simscape,而MapleSoft与Wolfram则分别于2008年和2011年推出了直接支持Modelica语言的可视化建模软件。从科学计算走向工程建模,支持多领域统一建模仿真,是科学与工程计算软件的共同发展历程。

苏州同元团队自2001年专注多领域统一建模规范Modelica的技术研究、产品开发与工程应用,2008年成立苏州同元软控信息技术有限公司专业负责产品化与产业化。经过团队20年技术积累、公司12年持续研发,采用国际多领域统一建模规范Modelica,全面掌握了自CAD、CAE之后的新一代数字化核心技术——多领域统一建模与仿真技术,形成目前核心产品——系统建模仿真软件MWORKS. Sysplorer,提供基于Modelica的工程计算,支持系统建模、编译分析、仿真求解和后处理,实现基于物理拓扑的快速系统模型集成与仿真验证。目前整体技术居于国际前列,是亚洲唯一的Modelica系统建模仿真软件,也是国际六大Modelica内核之一,并已为国外著名工业软件公司提供MWORKS内核授权。

2.MWorks与MATLAB功能比较

2.1科学与工程计算环境

MATLAB科学与工程计算环境方面的能力体现在矩阵运算、函数编程、界面设计与二次开发、可视化绘图等方面。MWORKS.Sysplorer基于开放的建模规范Modelica,全面支持各种基础数学、函数及矩阵计算,具备微分代数方程、插值运算、概率与统计算法、逻辑运算等数学运算模型,同时还支持C、Fortran、Python等外部脚本语言建模,具有跨平台、跨学科、跨语言的开放性。同时,Modelica还具有面向对象和非因果的建模特点,对层次化、多物理域复杂系统的建模仿真具有先天优势。

MWorks与MATLAB实现Guass消元算法

  1. 在矩阵运算、函数编程方面,MWORKS具有语法、语义和基础函数支持,能力与MATLAB相当,且更加开放;
  2. 在界面设计与二次开发方面,MWORKS目前具备参数面板、软件菜单、对话框扩展等功能,APP定义方式与MATLAB相比便利性不足,后续可通过支持Python和SDK进行定制开发,并补充APP的UI设计器,以提升该方面的能力;
  3. 在可视化绘图方面,MWORKS支持曲线、曲面、仪表、3D动画等可视化绘图,同时也支持报告生成能力,在图形的丰富程度方面有所不足。
科学与工程计算环境方面的对比分析

2.2可视化建模仿真与代码生成

MWORKS.Sysplorer提供了多模式可视化建模,包括结构化函数建模(兼容C、Fortran等语言结构化编程)、基于框图的可视化数学建模(全面兼容Matlab/Simulink框图建模)、基于组件的可视化多领域物理建模(提供面向对象、非因果、组件拓扑即模型的工程物理建模)等。

A.基于框图的可视化数学建模

可视化框图建模与仿真方面,MWORKS具有层次化、多学科、多物理域的可视化拖拽式建模功能,提供了多模式可视化建模、结果后处理器、系统模型管理等功能,以及CAD模型、Simulink S-function、多种格式数据文件等外部软件接口,具有良好的扩展性。针对控制系统的应用,MWORKS.Sysplorer提供了信号、传感器、控制逻辑等大量的基础模型,实现了丰富的动态系统建模、分析以及代码生成功能,能够为线性、非线性系统的动、静态以及时域和频域分析提供可视化工具。

MWorks与Simulink基于框图的建模与求解

基于框图的可视化建模对比

B. 多领域物理建模

MATLAB通过Simscape支持多领域物理建模,其本身就仿照了Modelica。Simscape模型库提供了机、电、液、磁等多专业物理模型库,实现了对多物理域、多层次系统建模的支持,MWORKS原生支持Modelica,提供了基于开放标准Modelica的机、电、液、磁等多专业物理模型库,可以应用于航空、航天的复杂系统的研发设计。

MWORKS与Simscape多领域物理模型

多领域物理建模对比分析

C.模型库

在模型库方面,MWORKS.Sysplorer积累了机、电、液、磁、控等多专业统一模型库,用于航天、航空、核能、工程机械、汽车、机器人等行业的多学科、多领域以及多源异构模型的仿真应用,积累了基础、专业、行业以及接口模型库的构建和管理方法,各类模型总数超过10000个,而且比MATLAB模型库具有更好的复用性,目前已经成为复杂系统研发的核心仿真工具平台。

MWORKS与MATLAB框图模型库

MWORKS与MATLAB物理模型库

同元液压组件库与Simulink液压组件库

模型库对比分析

D.代码生成

MATLAB具备跨平台的代码生成,支持多种硬件设备的代码部署以及代码测试能力。MWorks目前支持测试用代码生成、实时仿真、模型标定、代码硬件部署等功能,但是代码生成的鲁棒性、系统软硬件平台支持的全面性方面尚有差距。

代码生产方面的对比分析

2.3工具箱模型库体系与应用生态

A.工具箱体系

在工程通用工具箱方面,MWORKS目前具备时域、频域分析、灵敏度、参数扰动、参数优化、蒙特卡洛等多种分析工具箱,在试验设计分析工具上与MATLAB工具箱能力接近;在机器学习、概率统计、信号处理、金融、生物等行业的算法模型与工具方面尚有较大差距。

工具箱体系的对比分析

B.应用生态

MATLAB在1984年发布至今,提供了大量的模型库以及超过100个工具箱,这是因为其构建了一个良性的生态。即使是现在,MATLAB在Simulink中提供的模型库虽然量大,但依旧是以基础模型库为主,真正有价值的是在这个生态下用户根据这些基础库组件所建立的专用模型库以及相关的工具箱。关于生态方面,MWORKS与MATLAB之间存在较大的差距。

三、总结

综合而言,在应用模式上,MWORKS可以提供新一代基于模型的系统设计与仿真技术;在底层平台上,MWORKS可以全面覆盖Simulink和Simscape的功能,但缺少科学计算脚本语言,目前开源科学计算编程语言Python和Julia显示出比m语言更为强劲的势头,MWORKS+Python/Julia可以实现MATLAB底层平台功能全覆盖;MWORKS所差于MATLAB主要在于计算性能优化能力、模型驱动的代码生成质量、专业工具箱数量以及应用生态的成熟度。
同元希望能够依托中国科学与工程的创新发展需求、高校院所3800万师生和工业企业4000万工程师,共同创建“中国版MATLAB”的应用生态,补上专业工具箱的短板,并实现创新与超越。