Engee 文档

创建物理组件

页面进行中。

物理组件的结构

任何物理组件的声明总是从构造开始 @engeemodel,后跟组件名称。 构内部描述了组件的全部内容 開始啦。…​ 结束:

@engeemodel component_name begin
end

上面的代码创建了一个没有参数或行为描述的空物理组件。 为了使组件执行有用的功能,其他语言结构被放置在结构内部,每个语言结构也被形成为一个块。 開始啦。…​ 结束. 例如:

  • @参数 --设置模型启动前配置的参数:

    @parameters begin
        a = 1.0
    end
  • @变量 --引入模拟过程中发生变化的变量:

    @variables begin
        x = 1.0
    end

需要注意的是,这只是一组基本的构造。 在Engee物理建模语言中,它们的数量要多得多:端口、分支、结构参数、子组件、注释等等。 有关完整列表,请参阅 Engee物理建模语言的语法.

组件创建:电容器

现在让我们来看看在实践中创建一个真正的物理组件是什么样子的。 作为一个例子,我们以一个电容器为例,它是一个说明性的元素,显示了端口、参数、变量、分支和方程是如何在一个物理组件中组合在一起的。

  1. 文件浏览器Engee file browser 7.

  2. 将创建的文件夹添加到 路径

  3. 在文件夹中创建格式化文件 .ngpc 和初始模板:

    @engeemodel Capacitor begin
    end
    建筑工程 开始的@engeemodel_name。.. 终端组件 需要创建任何物理组件。

在一个 `.ngpc`一个文件可以有几个物理组件,但为了避免混淆,最好将每个组件存储在一个单独的文件中(1。ngpc文件=1个物理组件)。

添加端口

端口确定组件如何连接到模型的其余部分以及通过它交换的值。 在这里,我们将宣布两个电气输出-正 p 和负 n,这将在分量方程中使用。 两个电气输出(pn),通过该电容器连接到电路。

@nodes begin
    p = EngeePhysicalFoundation.Electrical.Pin
    n = EngeePhysicalFoundation.Electrical.Pin
end

添加参数

参数是在启动模型之前设置的可配置常量。 对于电容器,这是电容 C 带有法拉第测量单位和接口的简要描述。

@parameters begin
    C = 1e-6, [unit = "F", description = "Capacitance"]
end

C --电容器容量;将来,该值可以在单位设置中更改。

添加变量

变量是在仿真期间计算的量。 电容器需要:电压 v 端子和电流之间 i 通过元素;我们将向他们指出测量单位和可理解的签名:

@variables begin
    v = 0.0, [unit = "V", description = "Voltage"]
    i = 0.0, [unit = "A", description = "Current"]
end

这里 v --元件上的电压; i --电流通过元件。

添加分支

分支将物理组件变量与端口流变量相关联,并定义模型内的流拓扑。 通过链接 ip.in.我,确保在将物理组件相互连接时正确计算电流平衡。

@branches begin
    i:(p.i, n.i)
end

分支定义变量的方式 i 连接到组件的端口:电流 i 它表示流经端口的总量。 p.in.我. 连接物理组件时会自动考虑流量平衡。

写方程

方程是描述组件行为的物理关系。 对于电容器,我们将电压降设置为端口的电位差,并记下基本比率 i=C*du/dt 并同步端口之间的端口参数。

@equations begin
    v ~ p.v - n.v         # 端口之间的电压
    i ~ C * der(v)        # 电容器的基本方程
    domain_connect(n, p)  # 端口间环境参数协商
end

第一个方程将电压定义为端口的电位差,第二个方程定义了电流动态。 域名连接 端口之间传输参数。 有关端口参数匹配的信息,请参阅文章 物理建模语言的方程

物理组件的最终代码

下面,将物理组件的所有部分放在一起,从端口和参数到分支和方程。 这个完成的片段可以保存在 .ngpc 并立即使用它作为一个完整的*电容器*单位在*Engee模型。*:

@engeemodel Capacitor begin
    @nodes begin
        p = EngeePhysicalFoundation.Electrical.Pin
        n = EngeePhysicalFoundation.Electrical.Pin
    end

    @parameters begin
        C = 1e-6, [unit = "F", description = "Capacitance"]
    end

    @variables begin
        v = 0.0, [unit = "V", description = "Voltage"]
        i = 0.0, [unit = "A", description = "Current"]
    end

    @branches begin
        i:(p.i, n.i)
    end

    @equations begin
        v ~ p.v - n.v
        i ~ C * der(v)
        domain_connect(n, p)
    end
end

将物理组件连接到Engee模型

  • 将*物理组件*块添加到画布。

  • 在其设置(设置窗口 debug article icon 1)指定文件的路径 .ngpc 或名称*电容器*。

  • 现在,*电容器*块可以与*Engee*物理库的典型块一起在任何模型中使用。

为了使模型与物理组件(以及来自 Physical Modeling)向模型添加一个块 Solver Configuration.

因此,在物理建模的Engee语言中,我们描述了模拟电容器行为的物理组件*电容器*。

建议

  • 使用信息丰富的名称并提出问题。 计量单位用于参数和变量。

  • 检查方程和边界情况的物理正确性(例如,使用 断言 可以设置参数值的有效范围等。). 有关详细信息,请参阅文章 支票