还在为手动编写复杂仿真模型代码而头疼?NGM的图形建模自动转代码功能,让你轻松拖拽组件,秒变高质量Modelica代码!无论是机械系统、电路设计还是能源仿真,都能快速实现“所见即所得”。
✨ 为什么你需要NGM这个功能?
- 零编码基础也能玩转建模:通过图形化界面搭建模型,自动生成代码,降低学习门槛。
- 效率提升80%:省去逐行敲代码的时间,专注系统设计本身。
- 一键调试优化:直接修改图形参数,代码自动同步更新,调试更直观!
超详细示例:3步搭建“弹簧-质量-阻尼”系统
Step 1:拖拽组件,连线成图
打开NGM,新建模型SpringMassDamper。

从库中拖入组件:Mass(质量块)、Spring(弹簧)、Damper(阻尼器)、Fixed(固定端)。
用连线工具将组件按物理逻辑连接(如图👇)。

![图示:弹簧-质量-阻尼系统连接示意图]
(提示:实际使用中可调用NGM内置的标准库组件)
Step 2:设置参数,同步代码
- 双击Mass组件,设置质量m=5 kg;
- 设置弹簧刚度c=100 N/m、初始位置s_rel0=20,阻尼系数d=10 N·s/m。
- 见证奇迹! 点击顶部菜单栏的文本页面,NGM已自动生成如下代码:

Step 3:仿真验证,结果可视化
- 设置仿真时间10秒,点击仿真页面的仿真按钮编译仿真模型;

运行后在变量浏览器勾选查看质量块位移、速度曲线;

双击图形界面组件可继续修改参数(如c=200),代码自动更新,再次仿真即可验证新结果!

进阶技巧:从图形到代码的无限可能
- 自定义组件库:将常用模块封装成图形化图标,团队共享,统一建模规范。
- 与FMI联合仿真:导出自动生成的代码为FMU,无缝对接其他仿真平台(如matlab的Simulink)。
- 版本控制友好:图形修改前后的代码差异对比直接,协作更高效!
立即尝试,解锁NGM的隐藏战力!
无论你是汽车工程师、能源系统研究员,还是学术团队,NGM的图形转代码功能都能让你:
快速原型设计 → 减少人为错误 → 加速迭代周期!
现在打开NGM,用图形建模开启你的高效仿真之旅吧!
互动:你在建模时遇到过哪些代码难题?欢迎留言,我们将为你解答
提示:示例基于NGM3.1.7版本,部分功能需确保已安装标准官方库。
模型代码:👇
model SpringMassDamper
Modelica.Mechanics.Translational.Components.Damper damper (d = 10) annotation( Placement(transformation(extent={{8,-30},{68,30}})));
Modelica.Mechanics.Translational.Components.Fixed fixed annotation( Placement(transformation(extent={{-233,-30},{-165,38}})));
Modelica.Mechanics.Translational.Components.Spring spring (c = 100, s_rel0 = 20) annotation( Placement(transformation(extent={{-157,-23},{-107,27}})));
Modelica.Mechanics.Translational.Components.Mass mass (m = 5) annotation( Placement(transformation(extent={{-81,-28},{-23,30}})));
Modelica.Mechanics.Translational.Components.Fixed fixed1 annotation( Placement(transformation(extent={{80,-35},{148,33}})));
equation
connect(spring.flange_b,mass.flange_a) annotation(Line(
points={{-107,2},{-82,2},{-82,1},{-81,1}},
color={0,127,0}));
connect(fixed.flange,spring.flange_a) annotation(Line(
points={{-199,4},{-157,4},{-157,2}},
color={0,127,0}));
connect(mass.flange_b,damper.flange_a) annotation(Line(
points={{-23,1},{8,1},{8,0}},
color={0,127,0}));
connect(damper.flange_b,fixed1.flange) annotation(Line(
points={{68,0},{114,0},{114,-1}},
color={0,127,0}));
end SpringMassDamper;