创建物理组件
|
页面进行中。 |
物理组件的结构
任何物理组件的声明总是从构造开始 @engeemodel,后跟组件名称。 构内部描述了组件的全部内容 開始啦。… 结束:
@engeemodel component_name begin
end
上面的代码创建了一个没有参数或行为描述的空物理组件。 为了使组件执行有用的功能,其他语言结构被放置在结构内部,每个语言结构也被形成为一个块。 開始啦。… 结束. 例如:
-
@参数--设置模型启动前配置的参数:@parameters begin a = 1.0 end -
@变量--引入模拟过程中发生变化的变量:@variables begin x = 1.0 end
需要注意的是,这只是一组基本的构造。 在Engee物理建模语言中,它们的数量要多得多:端口、分支、结构参数、子组件、注释等等。 有关完整列表,请参阅 Engee物理建模语言的语法.
组件创建:电容器
现在让我们来看看在实践中创建一个真正的物理组件是什么样子的。 作为一个例子,我们以一个电容器为例,它是一个说明性的元素,显示了端口、参数、变量、分支和方程是如何在一个物理组件中组合在一起的。
|
在一个 `.ngpc`一个文件可以有几个物理组件,但为了避免混淆,最好将每个组件存储在一个单独的文件中(1。ngpc文件=1个物理组件)。 |
添加端口
端口确定组件如何连接到模型的其余部分以及通过它交换的值。 在这里,我们将宣布两个电气输出-正 p 和负 n,这将在分量方程中使用。 两个电气输出(p 和 n),通过该电容器连接到电路。
@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 --电流通过元件。
添加分支
分支将物理组件变量与端口流变量相关联,并定义模型内的流拓扑。 通过链接 i 与 p.i 和 n.我,确保在将物理组件相互连接时正确计算电流平衡。
@branches begin
i:(p.i, n.i)
end
分支定义变量的方式 i 连接到组件的端口:电流 i 它表示流经端口的总量。 p.i 和 n.我. 连接物理组件时会自动考虑流量平衡。
写方程
方程是描述组件行为的物理关系。 对于电容器,我们将电压降设置为端口的电位差,并记下基本比率 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模型
-
将*物理组件*块添加到画布。
-
在其设置(设置窗口
)指定文件的路径 .ngpc或名称*电容器*。 -
现在,*电容器*块可以与*Engee*物理库的典型块一起在任何模型中使用。
| 为了使模型与物理组件(以及来自 Physical Modeling)向模型添加一个块 Solver Configuration. |
因此,在物理建模的Engee语言中,我们描述了模拟电容器行为的物理组件*电容器*。
