Multiple domaines - natures physiques

(quantités de: effort & flot, disciplines: électrique & thermique, self heating diode, modèle d'une diode  self heating)
 

Qauntités d'effort et du flot:
nature effort - across flot - through
électrique tension courant
mécanique vélocité force
thermique  temperature  échange thermique 
 


Domaine électrique et thermique (un package):

L'exemple suivant est un modèle électrique-thermique d'une diode ; il nécessite l'utilisation de deux domaines : domaine éléctrique et domaine thermique
 
package my_disciplines is
subtype volt is real tolerance "voltage";
subtype temp is real tolerance "temperature";
subtype curr is real tolerance "current";
subtype heatflow is real tolerance "heatflow";
nature electrical is volt across curr through;
nature thermal is temp across heatflow through;
alias el_ground is electrical'reference;
alias th_ground is thermal'reference;
end package my_disciplines;
 

 


Diode auto-chauffante:
Un modèle mathematique simplifié d'une diode auto-chauffante:
 
Id= Is *(e(Vd-Rd*Id)/Vt -1)
Vt= Td * Boltzmanc/Charge_el = Td/11 600
Pd= Vd * Id

où:

Vd - tension sur la diode, Is - courant de saturation , Rd - resistance de diode , Vt - tension thermique , Pd - pouissance dissipée, constante de Boltzmann = 1.3806226e-23, charge d'électron = 1.602191e-19
 
 
 

Modèle de la diode auto-chauffante:
 
use work.my_disciplines.all
use IEEE.math_real.all;
entity my_diode is
generic(is0: real:= 1.0e-13; rd: real:= 1.0);
port(terminal anode,cathode: electrical; terminal junction: thermal);
end my_diode;
 
architecture simple of my_diode is
quantity vd across id through anode to cathode;
quantity vt: voltage;
quantity temp across power through ground_th to junction;
constant volt_equivalent: voltage:11,600.0;
begin
id == is0*(exp((vd -rd*id)/vt) - 1);
vt == temp/volt_equivalent;
power == v * id; -- thermal power
end simple;