2

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.

Thermoelectric_Simscape_Model

Thermal RC Cauer model is divided into different RC connection just like FEM and from there, the temperature of fuse will be calculated.


  1. temperature dependent Electric resistance (in model: Variable_Resistance_Custom)

Equations:

  1. R = R0*(1+alpha*(T-T0))
  2. 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

  1. 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:

  2. 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?

Derating Curve

Should I create separate function, for calculate derating temperature or can I include this derating equation in Variable_Resistor_Custom?

tdy
  • 36,675
  • 19
  • 86
  • 83

1 Answers1

0

I tried to understand what you tried by splitting the fuse into multiple components, but did not really get it.

Beside that you set a current, but open the fuse. When the fuse opens this cannot be true anymore.

High level, very simplified, guideline:

  1. Your fuse has a thermal capacity
  2. The thermal capacity receives thermal energy based on the electrical losses, you already calculate right
  3. Independent of whether the fuse is melted, it has an exchange with the ambient environment, which cools it down (except you are on Venus or the like)
  4. Depending on the melting state of the battery, you modify the coefficients of the temperature
  5. In the melted case, the resistance changes to infinite. The temperature dependent part of the equation can theoretically still there, you can just change your R0 or whatever advanced model you might to want use in the future.

To test this, you cannot use a current source, because you basically change the resistance so much, that the voltage would be extremely high and possibly cause numerical issues.

I would recommend to have a controlled voltage source with some current limiting resistor.

The controlled voltage source you can control with a PI controller, optimized for room temperature and probably nominal current of the fuse.

Torsten Knodt
  • 477
  • 1
  • 5
  • 20