Engee 文档
Notebook

"通用机制"与Engee的共仿真:振荡器

在这个例子中,我们将使用cosimulation的例子来看看Engee与通用机制(UM)软件包的集成。 让我们在头脑中运行一个振荡器运动的三维模拟,在Engee中,一个用于生成振荡器的外力并从头脑模型中读取变量的模型。

导言

协同仿真是在不同仿真系统中对对象/系统或其组成部分进行联合、同步建模的过程。 使用内置的工具与[外部硬件和软件的工作обеспечением](https://engee.com/helpcenter/stable/ru-en/engee-hardware/integration-with-hardware.html Engee有机会实施这样的过程。

Universal Mechanism(UM)软件包旨在模拟平面和空间机械系统的动力学和运动学。 在其中,您可以开发任何复杂度的3-D机械系统,识别和计算,以及可视化模拟系统的变量。 此外,UM具有用于连接外部接口的工具,例如在专门的DLL库中描述。 我们将使用这种方法来实现模拟。

考虑的振荡器模型

[用户指南]中描述的心智建模的基本示例之一(https://umlab.ru/download/10/rus/gs_um.pdf )是弹簧(或振荡器)上的负载。 默认情况下,在安装的UM软件包中,它位于目录中 ...\UM Software Lab\Universal Mechanism\10\SAMPLES\TUTORIAL\oscillator\.

要使用该模型,我们需要两个程序-用于参数化振荡器模型的UM输入和用于对其建模的UM仿真。 它们都可以在软件包的试用版中使用[在开发人员的网站上](https://umlab.ru/pages/index.php?id=3 )。

在建模过程中,我们将使用以下UM仿真工具:

*动画窗口

*变量的主人

*图形窗口

*对象建模检查器

image.png

工程师模型

示例模型 - universal_mechanism_oscillator.engee

"常数"块 - Fx, Fy, Fz 它们将为UM模型生成输入值。 在它们被添加到总线后,它们被转移到块 UM Cosimulation 从Engee块库的"硬件"部分。 相同的单元将传输来自UM模型的可读信号。 在总线选择块之后,它们被记录以输出到图形。

image.png

UM和Engee集成

DLL库

客户端-服务器DLL库用于同步从Engee接收/传输数据 Engee_UM.dll,在整合心灵解算器的背景下工作。 它根据块中指定的端口定义用于接收/传输数据的端口 UM Cosimulation 在Engee模型中:

头脑中的信号接收端口:7489
UM信号传输端口:7490

此文件必须保存在要运行模拟的计算机上。 接下来,我们将在使用UM中的外部库时使用它。

配置文件

准备模拟的下一步是创建并添加一个名称为 settings.cfg,其中描述了信号的主要参数-名称,数量,在头脑中显示所需的模拟参数的输入值。 当前示例的文件是预先准备好的。 它包含以下对信号的描述:

Model_name振荡器示例 \
输入_SIGNAL_COUNT3 \
输出_SIGNAL_COUNT3 \
MODEL_PARAM_COUNT3 \
INPUT_SIGNAL_NAMES dX dY dZ \
OUTPUT_SIGNAL_NAMES Fx Fy Fz \
MODEL_PARAM_NAMES Cx Cy Cz \
INIT_MODEL_PARAM2000 2000 2000

此文件必须与UM模拟可执行文件一起放置在文件夹中。 umsimul.exe,默认情况下它是:

C:\Program 文件\UM软件实验室\通用机制\9\bin\umsimul。exe文件

振荡器模型的准备

按照以下步骤配置振荡器模型本身的输入参数:

*让我们在UM输入中打开一个振荡器的例子。

*添加一个双极力,一个具有线性特征的"外力"。

*力的应用:Body1-负载(砖),Body2-悬架(顶部)。

*参数 fx, fy, fz 确定所加力的振幅、频率和强度(F0)。

*保存模型。

UM Input.png

添加的参数fx,fy,fz将从Engee传递到UM模型。

与外部库通信的向导

现在我们将在UM模型的参数和之前配置的用于从/到Engee接收/传输的参数之间建立连接。 为此,请按照以下步骤操作:

*启动UM仿真并打开振荡器模型。

*打开用于与外部库通信的向导。

*将路径添加到外部库 Engee_UM.dll.

*选择一个外部库,之后将显示输入和输出值的空行。

*打开变量向导,并从"线性变量"选项卡(r:x(Brick), r:y(Brick), r:z(Brick))在输入值行(dX, dY, dZ)通信向导,并从"所有力"选项卡-外力的参数 fx, fy, fz 来确定输出值 Fx, Fy, Fz. 因此,向导中配置的连接将显示如下:

image.png

工程师连接

要与Engee服务器和安装在用户计算机上的通用机制软件进行交互,您必须在Engee中安装外部硬件支持包,下载并运行客户端程序。 这个过程在示例[外部оборудованием入门]中有详细描述(https://engee.com/community/ru/catalogs/projects/vneshnee-oborudovanie-com-peredacha-signala-v-arduino )在Engee。

[医]共仿真

让我们继续进行模拟。 准备和配置与Engee的通信后,我们将执行以下步骤:

*让我们启动Engee模型。

*根据Engee客户端程序窗口中的信息消息,我们将确保Um对象已创建。

*让我们开始融入心灵。

*根据Engee客户端程序窗口中的信息消息,我们将确保与Um的交互已成功建立。

接下来,您可以观察Engee中系统的共仿真和通用机制。

在Engee中,可以随时更改值,而模型将响应外部影响的变化。 下面的条目显示了改变外力在Z轴上的投影值如何影响振荡器沿该轴坐标的变化。

bandicam2025-08-0512-36-26-466-ezgif.com-crop.gif

模拟结果

在Engee和万向机构中,负载坐标沿Z轴的曲线图存在同步变化。:

um_plots_snapshot.png

结论

在本例中,我们研究了Engee和通用机制软件包的集成过程,并对具有双向数据交换的振荡器进行了共同仿真。