Engee 文档

编程模型编辑

使用模型

添加块

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

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

engee.add_block(lib_block_path, tgt_block_path)
  • 将块的副本从`lib_block_path`添加到’tgt_block_path'。

  • 'lib_block_path’是模型或库中块的完整路径。 通过双击工作区的空闲区域并键入所需块的名称,可以看到路径`lib_block_path'。:

    block path add method

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

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

  • 如果’tgt_block_path’最后包含未来块的名称,它会尝试添加具有此名称的块。

  • 如果’tgt_path’不包含未来块的名称,那么该名称在`<block_type>-<index>`之后建模,例如`Sin-1`,其中索引是添加后该类型的块的数量,Sin是块的block_type。

  • 在添加块端口时向子系统添加一个额外的端口,例如`Inport'。

添加的块不会立即显示。 要显示块,您需要重新打开模型(保存后),在模型之间切换或重新加载页面。
例如_
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’结束。

删除块

使用公共方法 删除阻止

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

  • 'block_path’是模型中块的绝对路径,类型为’newmodel_1/Sine Wave',其中’newmodel_1’是模型名称,'Sine Wave’是块名称。

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

复制块

使用公共方法 复制阻止:

engee.copy_block(src_block_path::String, tgt_block_path::String)
  • 'src_block_path::String’是系统中块的完整路径。

  • 'tgt_block_path::String`是系统的路径和预期名称。 格式’path/to/system/newblockname'(如果未指定名称,则自动设置)。

例子::

# 将名为Add-3的块从newmodel_1模型添加到newmodel_2模型
engee.copy_block("newmodel_1/Add-3", "newmodel_2/")

# 将名为Custom Block Name的块从newmodel_1模型添加到名为Test_name的newmodel_2模型
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_path"和"dst_port_path"之间的一行,其中"src_port"是块输出端口的完整路径,"tgt_port"是块输入端口的完整路径。

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

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

  • 端口名称是其序列号。

错误
  • 'SourceEdgeIsNotOutputPort—-如果端口打开 路径src_port_path不是out端口

  • 'TargetEgdeIsNotInputPort—-如果路径上的端口不是输入端口。

  • 'TargetEdgeAlreadyConnected'-如果tgt端口已经连接。

  • 'NotAcausalPort'—对于无向连接,如果其中一个端口是非非非因果类型。

  • 'LineCannotBeAdded—-如果端口类型或线路方向不正确。

写/读块和信号参数

使用公共方法 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_param’和’set_param!`为模型的参数。

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

params = engee.get_param("newmodel_1/Terminator") # 将终止符块的所有参数返回到params结构

engee.set_param!("newmodel_1/Terminator", params) # 终止符块是从params结构中分配的参数

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

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") # 从Basic/Sources库中插入正弦波块,并将其命名为Sine Wave-x

engee.add_block("/Basic/Sinks/Terminator", "model_name/") # 从Basic/Receivers库中插入终止符块并自动分配名称(例如,如果已存在名为Terminator的块,则为Terminator-1)

engee.delete_block("newmodel_1/Terminator") # 删除块以及所有关联的行和端口

engee.add_line("Sine Wave/1", "Terminator/1")  # 设置Sin波单元的1号输出端口和终端单元的1号输入端口之间的信号

engee.delete_line("Sine Wave/1", "Terminator/1") # 删除Sin波块的输出端口1号和终端器块的输入端口1号之间的信号

engee.get_param("newmodel_1") # 获取仿真参数

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