2025 年 3 月 18 日,在第六届软件定义汽车论坛暨 AUTOSAR 中国日上,上海创紫集团 CTO 彭思维向现场观众详细介绍了公司旗舰产品:科学计算与仿真建模软件 Ganzlab 的最新研发进展。据介绍,创紫集团的软件主要涵盖了科学计算系统建模、协同设计工程云平台、AI 工业大模型等领域,为制造业客户提供全面的 IT 及工程服务解决方案。他重点阐述了 " 基于模型驱动开发(MBD)的应用层软件开发解决方案 ",该方案依托企业自主研发的国产化工业软件 Ganzlab 构建,并对 Ganzlab 的技术架构与核心功能进行了深度解析。
Ganzlab 作为创紫科技的旗舰产品,完全自主研发,旨在打破国外数值计算软件的垄断,实现国产化的替代。软件通过了 ISO26262 道路车辆功能安全管理体系认证,并参与受邀起草了两项技术规范。应用领域涵盖科学计算、数学建模、系统仿真、信号处理、代码生成、决策优化等。
软件特点包括超过 800 个用于科学和工程计算的数学函数、仿真专用的 MBD 建模工具 Glink、可生成符合 AUTOSAR 标准的 C 代码,并支持 SIL 测试。在交互性与扩展性方面,布局灵活,API 丰富,支持国内主流大语言模型接入。兼容性方面支持多种数据格式导入,跨平台兼容,与国产基础软件适配。更加专注于汽车行业,支持联合仿真、多目标优化、协同设计及专业模块定制。
彭思维 | 上海创紫集团 CTO
以下为演讲内容整理:
公司简介
上海创紫科技集团有限公司成立于 2016 年,是一家专注于自主品牌工业软件设计、开发、服务与推广的软件及工程咨询公司。公司自主开发的工业软件覆盖科学计算、系统建模、协同设计、工程云平台、AI 工业大模型等领域。公司一直以来都致力于为制造业客户和产品研发机构提供全面的基于工业化软件应用的 IT 及工程服务解决方案,并跟一汽、上汽、比亚迪、中车、中船等制造业头部企业保持常年的项目合作,同时与中国科大、上海交大、哈工大、吉大等科研院校保持常年的研发合作。
公司总部设在上海,并在深圳、成都、长春、香港设立了分公司。目前公司拥有一支优秀的具有多年丰富经验的技术团队,专注于向国内客户提供集成化的现代产品研发解决方案和专项工程服务,为传统制造业企业进行数字化赋能,助力企业数字化转型。
Ganzlab 介绍
Ganzlab 科学计算与仿真建模软件是我们公司的一款旗舰产品。公司从创建之初就开始投入开发,并联合中国科学技术大学、哈尔滨工业大学、上海交通大学以及吉林大学长期紧密合作,结合公司近百人的研发团队经过 10 余年的不懈努力不断开发、更新、迭代完成,期间为国内多家汽车主机厂提供近 10 年的专业的工程咨询服务。
Ganzlab 软件完全国内自主开发,目标是打破国外数值计算软件的垄断,彻底实现国产化替代,并且在一些专业的工程仿真领域将其超越。Ganzlab 软件在 2024 年通过了 ISO26262:2018 ASIL D 道路车辆功能安全管理体系认证。
近期,我们还受中国国际经济技术合作促进会标准化工作委员会邀请参与起草制定了《科学计算语言解释器词法分析技术规范》及《科学计算与系统建模仿真一体化平台技术规范》。
图源:演讲嘉宾素材
作为国内自主开发的科学计算与仿真建模软件,Ganzlab 主要应用于科学计算、数学建模、系统仿真、信号处理、代码生成、决策优化、线性、非线性控制等科学和工程领域;并专门为汽车行业电子电气领域定制开发了基于 AUTOSAR 标准的国产化仿真工具链、以及基于 MBD 技术的汽车电子嵌入式软件开发解决方案。
Ganzlab 有六大特点,一是科学计算,我们基于过去十几年的工程经验,积累了超过 800 个用于科学和工程计算的数学函数,这些函数经过了实际项目的验证;二是仿真建模,我们有强大的 MBD 建模工具—— Glink;三是专注汽车行业,可以联合仿真、进行多目标优化、协同设计以及专业模块定制;四是代码生成与测试,我们有 C 代码生成工具与 SIL 测试工具;五是兼容性,软件可以实现多类型的数据格式转换、跨平台兼容;六是交互及扩展,软件界面布局灵活、API 丰富、有大语言模型接入。
Ganzlab 主要有四大功能模块。一是作为一款计算平台,我们有自己的语言 Ganzlab,并集成了丰富的函数库,除了科学计算外,还有一些相应的行业工具。二是 Glink,基于模型的图形化编程环境;三是 Ganzlab 环境下的 Gtoms 工具箱;四是 AUTOSAR,汽车电子嵌入式软件应用层开发工具链。
我们的软件语言是一个脚本式的编程语言,名为 Ganzlab,它可以结合其他语言使用,包括 C、C++、Fortran、Java、python、modelica 等。此外,Ganzlab 语言支持 SWIG,实现语言转换可以生成 C/C++。在 Ganzlab 环境中内置 Gnotes 脚本编辑器,可以实现代码折叠、函数定义跳转、模糊查询等功能。C、Fortran 语言可以直接在 Gnotes 编辑运行。Ganzlab 还具有强大的绘图工具和丰富的内置绘图函数,可以实现曲线、曲面、云图、直方图、表格等形式的数据可视化,支持输出各种类型文件,如 Word、Excel、PDF、PNG、JPG、GIF,并支持基于模板的脚本化报告生成功能。
Glink 是一个基于模型的图形化编程环境,可以通过拖、拉、拽的方式进行快速建模搭建。Glink 还支持混合系统(连续和离散模型)建模和仿真控制的工具,并包含多种求解器类型,如 LSodar、RK45、隐式 RK45、ODE23、BDF-Newton 等。我们目前在 Glink 环境中已经继承了约 300 个基础功能模块及 100 个工具箱模块用以搭建控制系统。Glink 基础工具箱包括连续使用系统、非线性系统、信号处理、注释块等。
我们也允许用户根据需求自定义开发模块,打包成独立的工具箱;支持开源的 Modelica 模块直接使用和导入。在此基础上,我们在不断开发新模块。开发新模块的方式主要是编写计算函数,然后编写对应的接口,编译的环境中。通过这种方式,我们每年大约会增加 40-50 个新模块,软件不断丰富和壮大。
在 Glink 模块中,有一个很重要的功能,可以实现代码生成。我们可以将编辑好的算法模块或模型打包,然后自动生成对应的 C 代码,也可以将这些代码文件以模块的形式直接导回到 Glink 中。
Gtoms 工具箱,相当于在集成了 Ganzlab 已有的计算函数之上,给每一个固定的工具生成对应的 UI 界面,可以打包封装成一个独立的应用。
在 AUTOSOR 层面,Ganzlab 为汽车电子嵌入软件应用开发提供了相应的工具和功能。作为工具链的一环,我们是自上而下的开发方式。可以基于 arxml 文件在 Glink 中自动创建 SWC 框架模型,模型搭建好后,生成符合 AUTOSAR 标准的 .c&.h 文件。
基于我们的开发工作,已开发出一系列工具,其中之一是对 arxml 文件的解析与导入功能。为此,我们专门设计了一款 arxml importer 工具,该工具能够借助脚本导入相应的 arxml 文件,并在预设的环境中自动构建出对应的 SWC 模型框架。目前,此工具支持的版本为 AUTOSAR 的主流版本。在工作区域内,该工具还能够自动生成相关的标定参数、用户自定义工具以及数据类型。arxml 文件解析会返回一个 Ganzlab 结构体,并保存到工作区,用户可以查看字典里的所有信息。在生成 SWC 模型框架的过程中,我们同样会基于这些信息自动配置模型框架的端口维度以及单位信息等关键属性。
针对 AUTOSAR 开发过程中常见的场景,即存在大量简单的逻辑判断需求,我们注意到,如果采用数据驱动的模型搭建方式,可能会增加复杂性。鉴于此,我们专门推出了适用于 Glink 环境的有限状态机模块。此模块通过事件驱动和有限状态流程图的方式呈现,使得工程师与开发人员能够清晰地、直观地理解设计内容,有效避免逻辑错误,同时减轻工作负担,降低模型复杂度。
关于该模块的具体应用,我们已在指定环境中设置了一个专门的 GFSM 工具箱。该工具箱可作为普通模块与其他模块协同使用。用户只需将 GFSM 模块拖拽至环境中,随后双击即可打开一个新的编辑器界面。该模块功能完备,涵盖了状态机的所有核心功能。用户可以在此添加历史信息,包括状态的嵌套、状态转移条件,以及进入、退出等动作的执行条件。
接下来,我们的状态机模块将进一步升级,允许用户自定义其 Data Model 或内部局部变量,以便定义状态机所需的数据类型。若这些变量被定义为输入或输出类型,模块将自动更新其界面上的端口信息。一旦状态机模型定义完成,该模块上的输入与输出端口将随之自动更新。此后,该模块即可与其他模块无缝对接,直接用于模型仿真、代码生成等后续环节,实现编辑集成的便捷性。
MBD 建模应用案例
下面以一个电动车窗控制逻辑为例,以 Ganzlab/Glink 的为 MBD 工具进行 AUTOSAR 的应用层软件组件开发流程进行演示。首先在 AAT 软件中,以功能需求为输入,进行 SWC 框架创建,输出一个 PWL.arxml 文件;之后在 Ganzlab 环境中导入该文件,使用脚本在 Glink 中自动生成对应的 SWC 模型框架;导入的 SWC 模型框架中的端口信息会基于 arxml 文件进行自动配置。
接下来,我们将根据功能需求,在既定的环境和接口中构建控制逻辑模型。此模型主要由三部分构成:第一部分为超级块,负责信号的分析与处理;第二部分为核心逻辑模块;第三部分为仲裁模块,负责输出相应的动作。
基于上述需求分解,我们将在每个状态机中构建对应的状态机模型,并对状态机进行独立测试。测试通过后,我们将模型整合至整体的 Glink 模型中。仲裁模块采用真值表形式,以确定输入条件与输出的三个对应动作。在确认每个模块测试无误后,我们将整体模块打包为超级块形式,并利用 AUTOSAR code generator 生成应用层文件,这些文件主要包括主文件、每个状态机对应的文件以及本地函数定义文件。
随后,将应用层文件放入 appl 文件夹内,使用 IAR 编译器对项目进行编译,并将结果烧录至测试硬件。本次目标开发板为 S32K144,用到的硬件工具为 J-link 和 UsbCan。在验证模型硬件运行情况时,我们首先在 CAN 通讯监测中加载对应的 CAN 数据库,并选择相应的通道。接着,在数据库中添加发送报文,主要观察六个信号对应的输出信号变化,包括最大作用时间、手动动作、PEPS 动作、车门关闭状态、整车上电使能状态以及动作延时。通过调节这六个信号,我们观测对应的输出信号变化,并最终验证模型动作与需求文档中描述的驱动结果一致。在此过程中,真值表对应三个动作,而执行条件则依据不同的信号进行判断。
(以上内容来自上海创紫集团 CTO 彭思维于 2025 年 3 月 18 日 -19 日在第六届软件定义汽车论坛暨 AUTOSAR 中国日发表的《基于 MBD 的应用层软件开发解决方案》主题演讲。)
登录后才可以发布评论哦
打开小程序可以发布评论哦