Engee 文档

编程模型编辑

使用模型

添加块

在编辑模型之前,使用方法打开它 打开。 编辑后,不要忘记使用保存结果 保存

公共方法用于添加块。 add_阻止

engee.add_block(lib_block_path, tgt_block_path)
  • lib_block_pathtgt_block_path.

  • lib_block_path -模型或库中块的完整路径。 方式 lib_block_path 您可以通过双击工作区的可用区域并键入所需块的名称来查看它。:

    block path add method

  • tgt_block_path -系统的路径和预期名称。 如果未指定名称,则会自动设置该名称。

  • 如果现有模型块的路径与库中的块的路径匹配,因为模型及其系统的名称与库部分的名称匹配,则会选择模型中的块。

  • 如果在 tgt_block_path 最后一个包含未来块的名称,它试图在此名称下添加一个块。

  • 如果 tgt_path 如果它不包含未来块的名称,则根据模式形成名称 <block_type>-<索引> 例如 罪-1,其中索引是添加后给定类型的块的数量,Sin是块的block_type。

  • 在添加块端口时向子系统添加额外的端口,例如, 在港.

添加的块不会立即显示。 要显示块,您需要重新打开模型(保存后),在模型之间切换或重新加载页面。
例子_
engee.add_block("/Basic/Math Operations/Add", "newmodel_1/")

engee.add_block("/Basic/Math Operations/Complex to Real-Imag", "newmodel_1/Test_name") # добавит блок из библиотеки в систему и присвоит ему имя Test_name
错误
  • 如果名称被占用,则以错误结束。 IncorrectBlockNameException.

  • 如果库块的路径不正确,则失败。 InvalidBlockPathException异常.

  • 如果添加块的系统不存在或已关闭,则会失败。 SystemIsNotExistException.

删除块

使用公共方法 delete_阻止

engee.delete_block(block_path)
  • 删除指定路径上的块。

  • block_path -按类型划分的模型中块的绝对路径 "newmodel_1/正弦波",在哪里 新模型_1 -模型的名称,以及 正弦波;正弦波 -块的名称。

  • 它还会删除与该块关联的所有行和端口。

复制块

使用公共方法 复制阻止:

engee.copy_block(src_block_path::String, tgt_block_path::String)
  • src_block_path::字符串 -系统中块的完整路径。

  • tgt_block_path::字符串 -系统的路径和预期名称。 格式: 路径/到/系统/newblockname (如果未指定名称,则会自动设置)。

例子::

# Добавляет блок с именем Add-3 из модели newmodel_1 в модель newmodel_2
engee.copy_block("newmodel_1/Add-3", "newmodel_2/")

# Добавляет блок с именем Custom Block Name из модели newmodel_1 в модель newmodel_2 под именем Test_name
engee.copy_block("newmodel_1/Custom Block Name", "newmodel_2/Test_name")
错误
  • IncorrectBlockNameException -姓名不正确 的新块。

  • InvalidBlockPathException异常 -正在复制的块不存在于指定的路径上。

  • SystemIsNotExistException -添加块的系统不存在。

添加/删除信号

使用公共方法 add_line删除线

# добавляет линии между портами
engee.add_line(src_port, dst_port) = engee.add_line(engee.gcs(), src_port_path, dst_port_path)
engee.add_line(system::String|System, src_port :: String, dst_port :: String)

# удаляет линии между портами
engee.delete_line(src_port, dst_port) = delete_line(gcs(), src_port, dst_port)
engee.delete_line(system, src_port :: String, dst_port :: String)
  • 添加/删除端口之间的线路 src_port_pathdst_port_path,在哪里 src_port -到街区出口端口的完整路径, tgt_port -到块的输入端口的完整路径。

  • 如果路径指向子系统的块端口,则通过相应的端口连接/断开子系统本身。

  • 在所有其他情况下,相应端口的块必须位于同一系统上。

  • 端口名称是其序列号。

错误
  • SourceEdgeIsNotOutputPort -如果端口上 路径src_port_path不是out端口

  • N.目标,目标 -如果路径上的端口是tgt_port_path,则它不是输入端口。

  • 目标;目标 -如果TGT端口已经连接。

  • NotAcausalPort -对于非定向连接,如果其中一个端口具有非非因果类型。

  • N.线形,线形 -如果端口类型或线路方向不正确。

写/读块和信号参数

使用公共方法 set_param!get_param

engee.set_param!(blockPath, paramName => paramValue)
engee.get_param(blockPath, paramName)
engee.get_param(blockPath)
engee.set_param!(blockPath, blockParams)
  • 同样地 get_paramset_param! 为模型参数。

您不仅可以获取模型的参数,还可以获取特定块的参数,还可以使用变量结构更改它们(让我们称之为 [医][医]),例如:

# Получаем текущие параметры Sine Wave
sine_params = engee.get_param("newmodel_1/Sine Wave")

# Создаем копию всех параметров и изменяем только один
modified_params = copy(sine_params)
modified_params["Amplitude"] = "2.5"  # изменяем только амплитуду

# Применяем все параметры (остальные остаются как были)
engee.set_param!("newmodel_1/Sine Wave", pairs(modified_params)...)

该示例显示了如何仅更改块的一个参数(幅度),同时保持所有其他参数不变。 当您需要逐点修改块设置而不冒重置其他参数的风险时,请使用此方法。

所有可用的块参数都可以通过用鼠标选择并运行命令来获得 恩吉。get_param(engee.gcb()). 例如,对于块 Constant:

engee> engee.get_param(engee.gcb())
BlockParameters(
  BlockName => Constant,
  Value => 1.0,
  OutDataTypeStr => Inherit: auto,
  SampleTime => Inf,
  BlockType => Constant,
)
本文介绍了Engee中可用的所有公共软件管理方法 计划管理的公共方法.

例子:

engee.add_block("/Basic/Sources/Sine Wave", "model_name/Sine Wave-x") #вставляет блок Sine Wave из библиотеки Basic/Sources и присваивает ему имя Sine Wave-x

engee.add_block("/Basic/Sinks/Terminator", "model_name/") #вставляет блок Terminator из библиотеки Basic/Receivers и присваивает имя автоматически (например Terminator-1, если блок с именем Terminator уже существует)

engee.delete_block("newmodel_1/Terminator") #удаляет блок и все связанные с блоком линии и порты

engee.add_line("Sine Wave/1", "Terminator/1")  #устанавливает сигнал между выходным портом №1 у блока Sin Wave и входным портом №1 блока Terminator

恩吉。delete_line("Sine Wave/1","Terminator/1")#删除Sin Wave块1号输出端口和Terminator块1号输入端口之间的信号

恩吉。get_param("newmodel_1")#获取仿真参数

恩吉。set_param!("newmodel_1","StopTime"=>15,"FixedStep"=>0.05)#更改模拟结束时间和固定步长