Skip to content
Analog.Thyristor.md

Analog.Thyristor

This component extends from ConditionalHeatPort

Usage

TranslatedComponents.Analog.Thyristor(T=293.15, VDRM=100, VRRM=100, IDRM=0.1, VTM=1.7, IH=0.006, ITM=25, VGT=0.7, IGT=0.005, TON=1.0e-6, TOFF=1.5e-5, Vt=0.04, Nbv=0.74, vRef=0.65, Von=5, Voff=1.5, Ron=(VTM - 0.7) / ITM, Roff=(VDRM ^ 2) / VTM / IH)

Parameters:

NameDescriptionUnitsDefault value
useHeatPort= true, if heatPort is enabledfalse
TFixed device temperature if useHeatPort = falseK293.15
VDRMForward breakthrough voltageV100
VRRMReverse breakthrough voltageV100
IDRMSaturation currentA0.1
VTMConducting voltageV1.7
IHHolding currentA0.006
ITMConducting currentA25
VGTGate trigger voltageV0.7
IGTGate trigger currentA0.005
TONSwitch on times0.000001
TOFFSwitch off times0.000015
VtVoltage equivalent of temperature (kT/qn)V0.04
NbvReverse Breakthrough emission coefficient0.74
vRefV0.65
VonV5
VoffV1.5
RonForward conducting mode resistanceΩ(VTM - 0.7) / ITM
RoffBlocking mode resistanceΩ(VDRM ^ 2) / VTM / IH

Connectors

  • heatPort - Thermal port for 1-dim. heat transfer

This component is translated by DyadAI (HeatPort)

  • Anode - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • Cathode - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

  • Gate - This connector represents an electrical pin with voltage and current as the potential and flow variables, respectively. (Pin)

Variables

NameDescriptionUnits
LossPowerLoss power leaving component via heatPortW
T_heatPortTemperature of heatPortK
iGKGate currentA
vGKVoltage between gate and cathodeV
vAKVoltage between anode and cathodeV
vControlV
vContotV
vConmainV

Behavior

Cathode.i(t)+Gate.i(t)+Anode.i(t)=0vGK(t)=Gate.v(t)Cathode.v(t)vAK(t)=Anode.v(t)Cathode.v(t)iGK(t)=Gate.i(t)vGK(t)=ifelse(vGK(t)<vRef,VGTiGK(t)IGT,vRef2VGT+(VGTvRef)iGK(t)IGT)vContot(t)=ifelse(iGK(t)<0.95IGT,0,ifelse(iGK(t)<0.001+0.95IGT,10000(0.95IGT+iGK(t))vAK(t),10vAK(t)))+vConmain(t)dvControl(t)dt=vControl(t)+vContot(t)ifelse(vControl(t)+vContot(t)>0,1.87TON,0.638TOFF)Anode.i(t)=ifelse(vAK(t)<VRRM,VRRMeVRRMvAK(t)NbvVtRoff,ifelse(vControl(t)<Voff,vAK(t)Roff,ifelse(vControl(t)<Von,vAK(t)(RonRoff)12(3(VoffVon+2vControl(t))2(Voff+Von)4(VoffVon+2vControl(t)2(Voff+Von))3)RoffRon,vAK(t)Ron)))vConmain(t)=ifelse((Anode.i(t)>IH)(vAK(t)>VDRM),Von,0)LossPower(t)=Anode.v(t)Anode.i(t)+Cathode.i(t)Cathode.v(t)+Gate.i(t)Gate.v(t)T_heatPort(t)=T

Source

dyad
component Thyristor
  extends ConditionalHeatPort
  Anode = Pin()
  Cathode = Pin()
  Gate = Pin()
  # Forward breakthrough voltage
  parameter VDRM::Dyad.Voltage(final min = 0) = 100
  # Reverse breakthrough voltage
  parameter VRRM::Dyad.Voltage(final min = 0) = 100
  # Saturation current
  parameter IDRM::Dyad.Current = 0.1
  # Conducting voltage
  parameter VTM::Dyad.Voltage = 1.7
  # Holding current
  parameter IH::Dyad.Current = 0.006
  # Conducting current
  parameter ITM::Dyad.Current = 25
  # Gate trigger voltage
  parameter VGT::Dyad.Voltage = 0.7
  # Gate trigger current
  parameter IGT::Dyad.Current = 0.005
  # Switch on time
  parameter TON::Dyad.Time = 1.0e-6
  # Switch off time
  parameter TOFF::Dyad.Time = 1.5e-5
  # Voltage equivalent of temperature (kT/qn)
  parameter Vt::Dyad.Voltage = 0.04
  # Reverse Breakthrough emission coefficient
  parameter Nbv::Real = 0.74
  parameter vRef::Dyad.Voltage = 0.65
  parameter Von::Dyad.Voltage = 5
  parameter Voff::Dyad.Voltage = 1.5
  # Forward conducting mode resistance
  parameter Ron::Dyad.Resistance = (VTM - 0.7) / ITM
  # Blocking mode resistance
  parameter Roff::Dyad.Resistance = (VDRM ^ 2) / VTM / IH
  # Gate current
  variable iGK::Dyad.Current
  # Voltage between gate and cathode
  variable vGK::Dyad.Voltage
  # Voltage between anode and cathode
  variable vAK::Dyad.Voltage
  variable vControl::Dyad.Voltage
  variable vContot::Dyad.Voltage
  variable vConmain::Dyad.Voltage
relations
  Anode.i + Gate.i + Cathode.i = 0
  vGK = Gate.v - Cathode.v
  vAK = Anode.v - Cathode.v
  iGK = Gate.i
  vGK = vGK < vRef ? VGT / IGT * iGK : vRef ^ 2 / VGT + iGK * (VGT - vRef) / IGT
  vContot = vConmain + (iGK < 0.95 * IGT ? 0 : (iGK < 0.95 * IGT + 1e-3 ? 10000 * (iGK - 0.95 * IGT) * vAK : 10 * vAK))
  der(vControl) = (vContot - vControl) / ((vContot - vControl) > 0 ? 1.87 * TON : 0.638 * TOFF)
  Anode.i = vAK < -VRRM ? -VRRM / Roff * exp(-(vAK + VRRM) / (Nbv * Vt)) : (vControl < Voff ? vAK / Roff : (vControl < Von ? vAK / (sqrt(Ron * Roff) * (Ron / Roff) ^ ((3 * ((2 * vControl - Von - Voff) / (2 * (Von - Voff))) - 4 * ((2 * vControl - Von - Voff) / (2 * (Von - Voff))) ^ 3) / 2)) : vAK / Ron))
  vConmain = (Anode.i > IH or vAK > VDRM ? Von : 0)
  LossPower = Anode.i * Anode.v + Cathode.i * Cathode.v + Gate.i * Gate.v
end
Flattened Source
dyad
component Thyristor
  heatPort = TranslatedComponents.HeatTransfer.HeatPort() if useHeatPort
  # = true, if heatPort is enabled
  structural parameter useHeatPort::Boolean = false
  # Fixed device temperature if useHeatPort = false
  parameter T::Dyad.Temperature = 293.15
  # Loss power leaving component via heatPort
  variable LossPower::Dyad.Power
  # Temperature of heatPort
  variable T_heatPort::Dyad.Temperature
  Anode = Pin()
  Cathode = Pin()
  Gate = Pin()
  # Forward breakthrough voltage
  parameter VDRM::Dyad.Voltage(final min = 0) = 100
  # Reverse breakthrough voltage
  parameter VRRM::Dyad.Voltage(final min = 0) = 100
  # Saturation current
  parameter IDRM::Dyad.Current = 0.1
  # Conducting voltage
  parameter VTM::Dyad.Voltage = 1.7
  # Holding current
  parameter IH::Dyad.Current = 0.006
  # Conducting current
  parameter ITM::Dyad.Current = 25
  # Gate trigger voltage
  parameter VGT::Dyad.Voltage = 0.7
  # Gate trigger current
  parameter IGT::Dyad.Current = 0.005
  # Switch on time
  parameter TON::Dyad.Time = 1.0e-6
  # Switch off time
  parameter TOFF::Dyad.Time = 1.5e-5
  # Voltage equivalent of temperature (kT/qn)
  parameter Vt::Dyad.Voltage = 0.04
  # Reverse Breakthrough emission coefficient
  parameter Nbv::Real = 0.74
  parameter vRef::Dyad.Voltage = 0.65
  parameter Von::Dyad.Voltage = 5
  parameter Voff::Dyad.Voltage = 1.5
  # Forward conducting mode resistance
  parameter Ron::Dyad.Resistance = (VTM - 0.7) / ITM
  # Blocking mode resistance
  parameter Roff::Dyad.Resistance = (VDRM ^ 2) / VTM / IH
  # Gate current
  variable iGK::Dyad.Current
  # Voltage between gate and cathode
  variable vGK::Dyad.Voltage
  # Voltage between anode and cathode
  variable vAK::Dyad.Voltage
  variable vControl::Dyad.Voltage
  variable vContot::Dyad.Voltage
  variable vConmain::Dyad.Voltage
relations
  if !(useHeatPort)
    T_heatPort = T
  else
    initial heatPort.T = T_heatPort
    initial heatPort.Q_flow = -LossPower
  end
  Anode.i + Gate.i + Cathode.i = 0
  vGK = Gate.v - Cathode.v
  vAK = Anode.v - Cathode.v
  iGK = Gate.i
  vGK = vGK < vRef ? VGT / IGT * iGK : vRef ^ 2 / VGT + iGK * (VGT - vRef) / IGT
  vContot = vConmain + (iGK < 0.95 * IGT ? 0 : (iGK < 0.95 * IGT + 1e-3 ? 10000 * (iGK - 0.95 * IGT) * vAK : 10 * vAK))
  der(vControl) = (vContot - vControl) / ((vContot - vControl) > 0 ? 1.87 * TON : 0.638 * TOFF)
  Anode.i = vAK < -VRRM ? -VRRM / Roff * exp(-(vAK + VRRM) / (Nbv * Vt)) : (vControl < Voff ? vAK / Roff : (vControl < Von ? vAK / (sqrt(Ron * Roff) * (Ron / Roff) ^ ((3 * ((2 * vControl - Von - Voff) / (2 * (Von - Voff))) - 4 * ((2 * vControl - Von - Voff) / (2 * (Von - Voff))) ^ 3) / 2)) : vAK / Ron))
  vConmain = (Anode.i > IH or vAK > VDRM ? Von : 0)
  LossPower = Anode.i * Anode.v + Cathode.i * Cathode.v + Gate.i * Gate.v
metadata {}
end


Test Cases

No test cases defined.

  • Examples

  • Experiments

  • Analyses