AnyMath 文档
Notebook

定制白炽灯模型

该材料的目的是用AnyMath物理建模语言显示从问题的物理公式到用户组件的完整路径,并在交流电路中进行验证。

在[AnyMath社区]中已经有一个单独的部分,其中包含自定义物理示例компонентов](https://engee.com/community/ru/catalogs/projects?page=1&meta-query;={"state"%3A{"published"%3A{}}%2C"modeling_in_engee"%3A{"physical_one_d_modeling"%3A{"custom_components"%3A{}}}})。我们继续这个主题并分析灯模型,当灯丝加热时,其电阻增加。

AnyMath物理建模语言是声明式的:开发人员记录物理量和微分方程之间的关系,因果关系和数值解由求解器确定。 结构的语法和目的在[官方文档]中给出(https://engee.com/helpcenter/stable/ru-en/engeemodel/engeemodel-main.html )。

数学模型

灯丝被认为是具有热惯性的电阻。 接通时,螺纹是冷的,因此其电阻较低。 随着灯加热,其电阻增加,电流降低到其标称值。

开关电阻和标称电阻由设定的电压和电流决定。:

电阻的线性温度依赖性由表达式给出

电力;电力 它用于在打开灯丝的瞬间加热灯丝并将热量传递到环境中。:

哪里 -传热系数,以及 -热时间常数。 从既定的名义制度中,我们获得

在模型中 C.初始值 对应于未加热的线程。

组件的工作原理 @engeemodel

任何自定义物理组件都从设计开始 @engeemodel Имя begin ... end. 类型的专门部分放置在其内部。 @... begin ... end.

  • @icon 将组件绑定到文件 icon.svg,它设置它在画布上的外观。
  • @nodes 宣布两个非定向电气端口 p 和 n 像 EngeePhysicalFoundation.Electrical.Pin. 在电域中,端口包含电势 v 和流变量 i. 元数据 view 签名和端口放置的侧面设置。
  • @parameters 它包含可以在模拟之前调整的值。 在逗号之后,元数据写在方括号中:度量单位和参数的描述。
  • @variables 引入连续未知数 delta_T, i 和 v. 它们的值由整个方程组决定,而不是由行的顺序执行决定。 初始值 delta_T = 0.0 并且高优先级有助于设置未加热的初始状态。
  • @intermediates 设置中间方程,直接从参数和变量计算。 这里包括电阻、传热系数和功率元件.
  • @branches 连接内部电流 i 带流端口变量:写 i:(p.i, n.i) 设置支路的方向,并在连接组件时确保电流的平衡。
  • @equations 包含物理关系。 蒂尔达 ~ 表示方程组中的相等,并且 der(delta_T) -温度相对于时间的导数。

文档中的官方示例显示不带括号的端口类型。 文件代码如下所示 /user/custom_lamp/lamp.ngpc.

完整组件代码

该文件的全部内容如下所示。 lamp.ngpc.

# AnyMath物理建模语言中白炽灯的描述
# 该模型模拟加热时电阻的增加。 接通时,可以看到大的浪涌电流。 初始状态是灯未预热。

@engeemodel灯开始

    @图标开始
        "图标。svg"
    结束

    #电气港口公告
    @节点开始
        P=AnyMathPhysicalFoundation。电气。销(),[视图=("+","左")]
        N=AnyMathPhysicalFoundation。电气。Pin(),[view=("-","right")]
    结束

    #声明参数
    @参数开始
        V_nom=220.0,[unit="V",description="额定电压"]
I_inrush=5.0,[unit="A",description="冷灯启动电流"]
I_nom=0.413,[单位="A",描述="加热灯额定电流"]
α=0.004,[单位="1/K",描述="电阻温度系数"]
time_coefficient=0.025,[unit="s",description="热时间常数"]
结束

    #未知变量的声明
    @变量开始
        delta_T=0.0,[unit="K",description="灯丝相对于初始状态的温度变化",priority="high",access=Private]#potential variable
        i=0.0,[unit="A",description="Current",access=Private]#流式变量
        v=0.0,[unit="V",description="Voltage",access=Private]#电位变量
    结束

    #从参数和变量显式计算的中间变量的声明
    @中间体开始
        R_cold=V_nom/I_inrush,[unit="Ohm"]#通过浪涌电流和额定电压的冷灯电阻
        R_nom=V_nom/I_nom,[unit="Ohm"]#工作模式下通过额定电流和额定电压的灯电阻
        k=alpha*I_nom^2*R_nom/(R_nom/R_cold-1),[unit="W/K"]#来自具有零导数的热平衡方程的传热系数(UR)
R=R_cold*(1+alpha*delta_T),[unit="Ohm"]#过渡模式下的电阻
        P_electric=i^2*R,[unit="W"]#电力
        P_loss=k*delta_T,[unit="W"]#热量输出
        P_heat=time_coefficient*k*der(delta_T),[unit="W"]#灯加热功率
    结束

    #电流流规则
    @分支开始
        i:(p.i,n.i)#流变量
    结束

    #灯方程
    @方程开始
        v~p.v-n.v#电压为电位差
        v~R*i#欧姆定律
        time_coefficient*k*der(delta_T)~i^2*R-k*delta_T#热平衡方程
结束

结束

验证方案

该组件与电流值为220V,频率为50Hz的交流电压源串联连接。 电流表、电压表和RMS单元允许同时观察瞬时和有效的电压和电流值。 物理网络需要求解器配置块,电气接地设置参考电位。

image.png

图2是具有交变电压源的灯的测试电路。

仿真结果:电压和电流

达0.04s,钥匙打开,因此灯电压和电流为零。 在短路之后,瞬时电压具有约 B,并且电流值为220V.RMS曲线的阶梯段与仪表需要为计算窗口积累数据这一事实有关。

image.png

图3-灯两端的瞬时有效电压。

接通后立即冷阻为44欧姆。 因此,当在正弦波的振幅附近接通时,瞬时电流达到近似 A,其与图4中的峰值和浪涌电流的设定有效值一致 作为
它升温,电阻增加,电流幅值减小,有效值趋于0.413a参数中设定的标称电流值。瞬时电流的符号随源的极性而变化;负值并不意味着反向加热,因为热平衡使用 .

image.png

图4-启动过程和稳态灯电流。

仿真结果:电阻

在接通之前,电阻保持44欧姆的冷值。 电压施加后迅速增加,达到标称电阻范围。 欧姆 稳态电阻的小波纹发生,因为瞬时功率 在正弦电流下,它的脉动频率是主频率的两倍,即大约100赫兹。 热时间常数平滑了这些脉动,但在公认的集中模型中,它并没有完全消除它们。

image.png

图5-加热过程中螺纹电阻的增加。

该模型再现了白炽灯的主要定性特性--一个大的冷螺纹电流及其在升温后的限制。

使用过的来源

*[AnyMath物理建模语言](https://engee.com/helpcenter/stable/ru-en/engeemodel/engeemodel-main.html )-声明性语言的目的和文档部分的结构。