I'm trying to get the Temperature-Current curve of 10A Fuse from the thermoelectric equivalent circuit model in Simscape. For that, I have created a custom Switch and variable resistance.
Thermal RC Cauer model is divided into different RC connection just like FEM and from there, the temperature of fuse will be calculated.
- temperature dependent Electric resistance (in model: Variable_Resistance_Custom)
Equations:
- R = R0*(1+alpha*(T-T0))
- P_electric_loss = iRR
.ssc script
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
a switch that control the fuse, whenever temp reaches to melting temp (in my case around 3.49 sec , it should open the circuit (in model: Switch_Custom) and then Temperature of fuse will goes down to ambient Temperature (Room Temperature: 23°C) according to following equation:
T = e^((-t)/(R∗C)), here R = R1 + R2 + R3 + R4 + R5 & C = C1+ C2 + C3 + C4 + C5 (From Thermal model)
.ssc csript of Switch
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
In this model given default Current: 15A melting temp of fuse: 388 °C (661.15 Kelvin)
Error: 1) • Transient initialization at time 3.495038669135668, solving for consistent states and modes, failed to converge. • Nonlinear solver: Linear Algebra error. Failed to solve using iteration matrix.
And how can i get this temp to ambient room temperature after it reaches to melting temp?
Should I create separate function, for calculate derating temperature or can I include this derating equation in Variable_Resistor_Custom?