首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SImscape:在熔断器温度达到熔化温度(脱扣情况)后,如何生成熔断器的降温曲线?

SImscape:在熔断器温度达到熔化温度(脱扣情况)后,如何生成熔断器的降温曲线?
EN

Stack Overflow用户
提问于 2021-06-24 11:59:57
回答 1查看 187关注 0票数 2

我试图从Simscape的热电等效电路模型中得到10A熔断器的温度-电流曲线。为此,我创建了一个自定义开关和可变电阻。

将热RC Cauer模型分为不同的RC连接单元,并由此计算熔断器的温度。

Variable_Resistance_Custom)模型中的

  1. 温度相关电阻

方程式:

R0*(1+alpha*(T-T0))

  • P_electric_loss = i_R_R

.ssc脚本

代码语言:javascript
复制
component R_ele_variable
% Variable Resistor
% Resistor is an electrical component that reduces the electric current. 
% The resistor's ability to reduce the current is called resistance.
%
% Resistance: Temperature Coefficient resistance could be expected to 
% increase with temperature, since there  will be more collisions. 
% (R-R0)/R0 = alpha*(T-T0)

inputs
T =  { 0.0, 'K' }; % T_RC:left 
end

outputs
P_ele = {0, 'W'}; % P_ele:right
R_T = {0, 'Ohm'}; % R_T:right
end

nodes
p = foundation.electrical.electrical; % +:left
n = foundation.electrical.electrical; % -:right
end

parameters
R0 = {7,75e-3,'Ohm'};           % Nominal resistance
T0 = {296.15,'K'};        % Reference temperature
alpha = {3.527e-3,'1/K'};    % Temperature coefficient
end

variables
i = { 0, 'A' }; % Current    
end

branches
   i : p.i -> n.i;
end

equations
assert(R0>=0)
assert(T0>0)
assert(alpha>=0)
let
    % Calculate R, protecting against negative values
    Rdem = R0*(1+alpha*(T-T0));
    R = if Rdem > 0, Rdem else {0,'Ohm'} end;
in
    R*i == p.v-n.v; % Electrical equation
    P_ele == R*i*i; 
    R_T == R;
end        
end
end

  1. 是一个控制熔断器的开关,每当温度达到熔化温度(在我的例子中是3.49秒左右)时,它应该打开电路(在模型:Switch_Custom中),然后保险丝的温度将下降到环境温度(室温: 23°C),按照以下公式:

  1. T = e^((-t)/(R∗C)),这里R= R1 + R2 + R3 + R4 + R5 &C= C1+ C2 + C3 + C4 + C5 (来自热模型)

开关的.ssc曲线

代码语言:javascript
复制
component switch_custom_tripping_1
% Switch_custom_tripping_1
% The block represents a switch controlled by an external physical
% signal. If the external physical signal PS is less than the threshold,
% then the switch is closed, otherwise the switch is open.

inputs
T = { 0.0, 'K' }; % T_RC:bottom
R = {0.0, 'Ohm'}; % R_T:top
end

nodes
p = foundation.electrical.electrical; % p:top
n = foundation.electrical.electrical; % n:bottom
end

parameters
T_melting = { 661.15, 'K' };       % Threshold
C_th = { 5035.9938, 'J/K' };          % Thermal Capacitance
R_th = { 215.45, 'K/W' };          % Thermal Resistance
end

variables
i = { 0, 'A' }; % Current
v = { 0, 'V' }; % Voltage
end

branches
i : p.i -> n.i;
end

equations
assert(T>0)
assert(T_melting>0)
assert(R>0)
v == p.v - n.v;
if T < T_melting      % Switch is close
    v == i*R; 
else     % Switch is open
    T == T_melting*exp(-{1,'s'}/(R_th*C_th));
%         R == {Inf, 'Ohm'};
end
end
end

在此模型中,给定缺省电流: 15A熔断器熔化温度: 388°C (661.15开尔文)

错误: 1)时间为3.495038669135668的瞬态初始化,求解一致的状态和模式,未能收敛。非线性求解器:线性代数误差。未能使用迭代矩阵进行求解。

在达到融化温度后,如何才能将这个温度调到室温呢?

我应该创建单独的函数来计算减温,还是可以在Variable_Resistor_Custom中包含这个减温方程?

EN

回答 1

Stack Overflow用户

发布于 2021-12-03 19:40:34

我试图通过将保险丝分解成多个组件来理解您尝试了什么,但并没有真正理解它。

除此之外,你还设置了电流,但打开保险丝。当保险丝打开时,这不再是真的了。

高水平,非常简化,指导方针:

你的保险丝有一个热容量right

  • Independent

  • 热容量根据电损耗来接收热能,你已经计算出保险丝是否熔化了,它与周围环境有一个交换,使它冷却下来(除非你在金星或like)

  • Depending上的电池熔化状态,你修改融化的情况下的温度

  • 系数,电阻变无限。理论上,方程中与温度有关的部分仍然存在,你只需改变你的R0或任何你将来可能想要使用的高级模型。

为了测试这一点,你不能使用电流源,因为你基本上改变了电阻太大了,所以电压会非常高,并且可能会引起数值问题。

我建议有一个控制电压源与一些电流限制电阻器。

控制电压源,你可以控制与PI控制器,优化的室温和可能名义电流的保险丝。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68115351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档