Differences between Version 3.2 and 3.2.1 Build 2 of package Modelica

Version: 3.2 Version: 3.2.1 Build 2
Version date: 2010-10-25 Version date: 2013-08-14


model Blocks.Examples.PID_Controller

Component
Version 3.2
Version 3.2.1
PI
initType=Modelica_3_2.Blocks.Types.Init.SteadyState
initType=Modelica.Blocks.Types.InitPID.SteadyState
inertia1
a(fixed=true)
a(fixed=true, start=0)



model Blocks.Examples.RealNetwork1

Component
Version 3.2
Version 3.2.1
product
nu=3
nu=2
linearDependency1

Present


minMax

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(add.y, showValue.numberPort);
connect(add.y, product.u[1]); connect(integerStep.y, product.u[1]);
connect(integerStep.y, product.u[2]); connect(integerConstant.y, product.u[2]);
connect(integerConstant.y, product.u[3]);

connect(product.y, showValue1.numberPort);

connect(add.y, linearDependency1.u1);
connect(product.y, linearDependency1.u2);
connect(add.y, minMax.u[1]);
connect(product.y, minMax.u[2]);



model Blocks.Examples.BooleanNetwork1

Component
Version 3.2
Version 3.2.1
rSFlipFlop

Present


sampleTriggerSet

Present


sampleTriggerReset

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(onDelay.y, showValue6.activePort);

connect(sampleTriggerSet.y, rSFlipFlop.S);
connect(sampleTriggerReset.y, rSFlipFlop.R);



block Blocks.Continuous.LimIntegrator

Component
Version 3.2
Version 3.2.1
strict

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
der(y) = k*u;
assert(y >= outMin - 0.01*abs(outMin) and
y <= outMax + 0.01*abs(outMax),
"LimIntegrator: During initialization the limits have been ignored.\n"+
"However, the
result is that the output y is not within the required limits:\n"+
" y = " + String(y) + ", outMin = " + String(outMin) + ", outMax = " + String(outMax));
assert(y >= outMin - 0.001*abs(outMax-outMin) and y <= outMax + 0.001*abs(outMax-outMin),
"LimIntegrator: During initialization the limits have been ignored.\n"
+ "However, the result is that the output y is not within the required limits:\n"
+ " y = " + String(y) + ", outMin = " + String(outMin) + ", outMax = " + String(outMax));

elseif strict then
der(y) = noEvent(if y < outMin and k*u < 0 or y > outMax and k*u > 0 then 0 else k*u);
else
der(y) = if y < outMin and u < 0 or y > outMax and u > 0 then 0 else k*u; der(y) = if y < outMin and k*u < 0 or y > outMax and k*u > 0 then 0 else k*u;
end if;



block Blocks.Continuous.PID

Component
Version 3.2
Version 3.2.1
I
k=1/Ti
k=unitTime/Ti
initType=if initType == InitPID.SteadyState then InitPID.SteadyState else if initType == InitPID.InitialState or initType == InitPID.DoNotUse_InitialIntegratorState then InitPID.InitialState else InitPID.NoInit
initType=if initType == InitPID.SteadyState then Init.SteadyState else if initType == InitPID.InitialState or initType == InitPID.DoNotUse_InitialIntegratorState then Init.InitialState else Init.NoInit
D
k=Td
k=Td/unitTime
initType=if initType == InitPID.SteadyState or initType == InitPID.InitialOutput then InitPID.SteadyState else if initType == InitPID.InitialState then InitPID.InitialState else InitPID.NoInit
initType=if initType == InitPID.SteadyState or initType == InitPID.InitialOutput then Init.SteadyState else if initType == InitPID.InitialState then Init.InitialState else Init.NoInit
unitTime

Present



block Blocks.Continuous.LimPID

Component
Version 3.2
Version 3.2.1
controllerType
=Modelica_3_2.Blocks.Types.SimpleController.PID
=.Modelica.Blocks.Types.SimpleController.PID
Ti
start=0.5


=0.5
Td
start=0.1


=0.1
initType
=Modelica_3_2.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState
=.Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState
I
k=1/Ti
k=unitTime/Ti
initType=if initType == InitPID.SteadyState then InitPID.SteadyState else if initType == InitPID.InitialState or initType == InitPID.DoNotUse_InitialIntegratorState then InitPID.InitialState else InitPID.NoInit
initType=if initType == InitPID.SteadyState then Init.SteadyState else if initType == InitPID.InitialState or initType == InitPID.DoNotUse_InitialIntegratorState then Init.InitialState else Init.NoInit
D
k=Td
k=Td/unitTime
initType=if initType == InitPID.SteadyState or initType == InitPID.InitialOutput then InitPID.SteadyState else if initType == InitPID.InitialState then InitPID.InitialState else InitPID.NoInit
initType=if initType == InitPID.SteadyState or initType == InitPID.InitialOutput then Init.SteadyState else if initType == InitPID.InitialState then Init.InitialState else Init.NoInit
limiter

strict=strict
strict

Present
unitTime

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
if initType==InitPID.InitialOutput then
y = y_start; gainPID.y = y_start;
end if;
...



block Blocks.Continuous.StateSpace

Component
Version 3.2
Version 3.2.1
A

=[1, 0; 0, 1]
B

=[1; 1]
C

=[1, 1]



function Blocks.Continuous.Internal.Filter.base.Bessel

Component
Version 3.2
Version 3.2.1
n_den2
Present



Equations in Version 3.2 Equations in Version 3.2.1

...
alpha2 = alpha*alpha;
for i in 1:n_den2 loop for i in 1:size(c0, 1) loop
den2[i, 1] = den2[i, 1]*alpha2;
...



function Blocks.Continuous.Internal.Filter.base.Butterworth

Component
Version 3.2
Version 3.2.1
n_den2
Present



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
for i in 1:n_den2 loop for i in 1:size(c0, 1) loop
den2[i, 1] = 1.0;
...



function Blocks.Continuous.Internal.Filter.base.ChebyshevI

Component
Version 3.2
Version 3.2.1
n_den2
Present



Equations in Version 3.2 Equations in Version 3.2.1

...
fac = asinh(1/epsilon)/order;

den1 = fill(1/sinh(fac),size(den1,1));
if size(cr,1) == 0 then
for i in 1:n_den2 loop for i in 1:size(c0, 1) loop
den2[i,1] = 1/(cosh(fac)^2 - cos((2*i - 1)*pi/(2*order))^2);
...
else
den1[1] = 1/sinh(fac); for i in 1:size(c0, 1) loop
for i in 1:n_den2 loop

den2[i,1] = 1/(cosh(fac)^2 - cos(i*pi/order)^2);
...
alpha2 = alpha*alpha;
for i in 1:n_den2 loop for i in 1:size(c0, 1) loop
den2[i, 1] = den2[i, 1]*alpha2;
...
end for;
if size(cr,1) == 1 then den1 = den1*alpha;
den1[1] = den1[1]*alpha;

end if;
end if;

(cr,c0,c1) =
     &nbspModelica_3_2.Blocks.Continuous.Internal.Filter.Utilities.toHighestPowerOne(
     &nbspden1, den2);
...



function Blocks.Continuous.Internal.Filter.coefficients.bandPass

Component
Version 3.2
Version 3.2.1
w_band
SIunits.AngularVelocity
Real



function Blocks.Continuous.Internal.Filter.coefficients.bandStop

Component
Version 3.2
Version 3.2.1
w_band
SIunits.AngularVelocity
Real



block Blocks.Discrete.FirstOrderHold

Component
Version 3.2
Version 3.2.1
ySample
Present

uSample

Present
pre_uSample

Present


Equations in Version 3.2 Equations in Version 3.2.1
when sampleTrigger then initial equation
ySample = u; pre(tSample) = time;
tSample = time; pre(uSample) = u;
c = if firstTrigger then 0 else (ySample - pre(ySample))/samplePeriod; pre(pre_uSample) = u;
end when; pre(c) = 0.0;
y = pre(ySample) + pre(c)*(time - tSample);

equation
 &nbspwhen sampleTrigger then
tSample = time;
uSample = u;
pre_uSample = pre(uSample);
c = if firstTrigger then 0 else (uSample - pre_uSample)/samplePeriod;
end when;
y = pre_uSample + pre(c)*(time - tSample);



block Blocks.Discrete.TransferFunction

Component
Version 3.2
Version 3.2.1
a

={1}



block Blocks.Discrete.StateSpace

Component
Version 3.2
Version 3.2.1
A

=[1, 0; 0, 1]
B

=[1; 1]
C

=[1, 1]



block Blocks.Interfaces.SI2BooleanSO

Component
Version 3.2
Version 3.2.1
u1
Blocks.Interfaces.RealInput
Blocks.Interfaces.BooleanInput
input

u2
Blocks.Interfaces.RealInput
Blocks.Interfaces.BooleanInput
input

y
output




block Blocks.Logical.TriggeredTrapezoid



Equations in Version 3.2 Equations in Version 3.2.1
initial equation
y = if time < T then endValue - (T - time)*rate else endValue;
pre(y) = 0;

equation
   &nbspy = if time < T then endValue - (T - time)*rate else endValue;

when {initial(),u,not u} then
...



block Blocks.Math.MultiSwitch

Component
Version 3.2
Version 3.2.1
y
start=y_default

fixed=true




block Blocks.Math.Feedback

Component
Version 3.2
Version 3.2.1
u1
input

u2
input

y
output




block Blocks.Math.Add3

Component
Version 3.2
Version 3.2.1
u1
input

u2
input

u3
input

y
output




block Blocks.Math.Abs

Component
Version 3.2
Version 3.2.1
generateEvent

Present


Equations in Version 3.2 Equations in Version 3.2.1
y = abs(u); y=if generateEvent then
(if u>=0 then u else -u) else
(if noEvent(u>=0) then u else -u);



block Blocks.Math.Sign

Component
Version 3.2
Version 3.2.1
generateEvent

Present


Equations in Version 3.2 Equations in Version 3.2.1
y = sign(u); y=if generateEvent then
(if u>0 then 1 elseif u<0 then -1 else 0) else
(if noEvent(u>0) then 1 elseif noEvent(u<0) then -1 else 0);



block Blocks.Math.Mean

Component
Version 3.2
Version 3.2.1
t0
discrete
parameter

fixed=false
x
start=0

x0

Present
yGreaterOrEqualZero

Present


Equations in Version 3.2 Equations in Version 3.2.1
when initial() then initial equation
t0 = time;
end when; x = x0;
der(x) = u; y = 0;


equation
 &nbspder(x) = u;
when sample(t0+1/f, 1/f) then
y=f*x; y = if not yGreaterOrEqualZero then f*pre(x) else max(0.0, f*pre(x));
reinit(x, 0);
...



block Blocks.Math.RootMeanSquare

Component
Version 3.2
Version 3.2.1
product
Blocks.Math.Product
Blocks.Math.MultiProduct
mean

final yGreaterOrEqualZero=true


Equations in Version 3.2 Equations in Version 3.2.1
connect(u, product.u1);
connect(u, product.u2);

connect(product.y, mean.u);
...
connect(sqrt1.y, y);

connect(u, product.u[1]);
connect(u, product.u[2]);



block Blocks.Math.Harmonic

Component
Version 3.2
Version 3.2.1
product1
Blocks.Math.Product
Blocks.Math.MultiProduct
product2
Blocks.Math.Product
Blocks.Math.MultiProduct


Equations in Version 3.2 Equations in Version 3.2.1
connect(sin2.y, product2.u2);
connect(sin1.y, product1.u1);
connect(u, product1.u2);
connect(u, product2.u1);

connect(product2.y, mean2.u);
...
connect(rectangularToPolar.y_arg, y_arg);

connect(sin1.y, product1.u[1]);
connect(u, product1.u[2]);
connect(u, product2.u[1]);
connect(sin2.y, product2.u[2]);



block Blocks.MathBoolean.MultiSwitch

Component
Version 3.2
Version 3.2.1
y
start=y_default

fixed=true



Equations in Version 3.2 Equations in Version 3.2.1
firstActiveIndex = Modelica_3_2.Math.BooleanVectors.firstTrueIndex(u); initial equation
y = if firstActiveIndex == 0 then (if use_pre_as_default then pre(y) else y_default) else
expr[firstActiveIndex];
pre(y) = y_default;


equation
   &nbspfirstActiveIndex =
     &nbspModelica.Math.BooleanVectors.firstTrueIndex(
                                  &nbspu);
y = if firstActiveIndex == 0 then (if use_pre_as_default then pre(y) else y_default) else
                                    &nbspexpr[firstActiveIndex];



block Blocks.MathBoolean.OnDelay



Equations in Version 3.2 Equations in Version 3.2.1

...
algorithm
when u then when initial() then

delaySignal = u;
t_next = time - 1;
elsewhen u then
delaySignal = true;
...



block Blocks.Nonlinear.Limiter

Component
Version 3.2
Version 3.2.1
strict

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
assert(u >= uMin - 0.01*abs(uMin) and
             &nbspu <= uMax + 0.01*abs(uMax),
             "Limiter: During initialization the limits have been ignored.\n"+
             "However, the result is that the input u is not within the required limits:\n"+
             " u = " + String(u) + ", uMin = " + String(uMin) + ", uMax = " + String(uMax));

elseif strict then
y = smooth(0, noEvent(if u > uMax then uMax else if u < uMin then uMin else u));
else
...



block Blocks.Nonlinear.VariableLimiter

Component
Version 3.2
Version 3.2.1
strict

Present


Equations in Version 3.2 Equations in Version 3.2.1

if strict then
uMax = noEvent(max(limit1, limit2));
uMin = noEvent(min(limit1, limit2));
else
uMax = max(limit1, limit2);
uMin = min(limit1, limit2);

end if;
if initial() and not limitsAtInit then
...
assert(u >= uMin - 0.01*abs(uMin) and
             &nbspu <= uMax + 0.01*abs(uMax),
             "VariableLimiter: During initialization the limits have been ignored.\n"+
             "However, the result is that the input u is not within the required limits:\n"+
             " u = " + String(u) + ", uMin = " + String(uMin) + ", uMax = " + String(uMax));

elseif strict then
y = smooth(0, noEvent(if u > uMax then uMax else if u < uMin then uMin else u));
else
...



block Blocks.Sources.Ramp

Component
Version 3.2
Version 3.2.1
duration
min=Modelica_3_2.Constants.small
min=0.0



block Blocks.Sources.KinematicPTP

Component
Version 3.2
Version 3.2.1
deltaq

={1}
qd_max

={1}
qdd_max

={1}



block Blocks.Sources.KinematicPTP2

Component
Version 3.2
Version 3.2.1
q_end

={1}
qd_max

={1}
qdd_max

={1}
r_s
Present

r_sd
Present

r_sdd
Present



Equations in Version 3.2 Equations in Version 3.2.1

...
s3 = 0;
r_sdd = 0; s = 0;
r_sd = 0;
r_s = 0;

else
...
if time < startTime then
r_sdd = 0; s = 0;
r_sd = 0;
r_s = 0;

elseif noWphase then
if time < Ta1s then
r_sdd = sdd_max; s = (sdd_max/2)*(time - startTime)*(time - startTime);
r_sd = sdd_max*(time - startTime);
r_s = (sdd_max/2)*(time - startTime)*(time - startTime);

elseif time < Tes then
r_sdd = -sdd_max; s = s1 + sd_max2*(time - Ta1s) - (sdd_max/2)*(time - Ta1s)*(time -
Ta1s);
r_sd = sd_max2 - sdd_max*(time - Ta1s);
r_s = s1 + sd_max2*(time - Ta1s) - (sdd_max/2)*(time - Ta1s)*(time
                &nbsp- Ta1s);

else
r_sdd = 0; s = s2;
r_sd = 0;
r_s = s2;

end if;
elseif time < Ta2s then
r_sdd = sdd_max; s = (sdd_max/2)*(time - startTime)*(time - startTime);
r_sd = sdd_max*(time - startTime);
r_s = (sdd_max/2)*(time - startTime)*(time - startTime);

elseif time < Tvs then
r_sdd = 0; s = s1 + sd_max*(time - Ta2s);
r_sd = sd_max;
r_s = s1 + sd_max*(time - Ta2s);

elseif time < Tes then
r_sdd = -sdd_max; s = s2 + sd_max*(time - Tvs) - (sdd_max/2)*(time - Tvs)*(time - Tvs);
r_sd = sd_max - sdd_max*(time - Tvs);
r_s = s2 + sd_max*(time - Tvs) - (sdd_max/2)*(time - Tvs)*(time - Tvs);

else
r_sdd = 0; s = s3;
r_sd = 0;
r_s = s3;

end if;
end if;

sd = der(s);
sdd = der(sd);
qdd = p_deltaq*sdd;
...
endTime = Tes;
s = position({r_s, r_sd, r_sdd}, time);
sd = der(s);
sdd = der(sd);

motion_ref = time <= endTime;
...



block Blocks.Sources.TimeTable

Component
Version 3.2
Version 3.2.1
table

=fill(0.0, 0, 2)
nextEvent

discrete



block Blocks.Sources.BooleanTable

Component
Version 3.2
Version 3.2.1
table

={0,1}



block Blocks.Sources.RadioButtonSource

Component
Version 3.2
Version 3.2.1
buttonTimeTable

={0,1}



block ComplexBlocks.Sources.ComplexExpression

Component
Version 3.2
Version 3.2.1
y
output




model StateGraph.Examples.Utilities.valve

Component
Version 3.2
Version 3.2.1
inflow1
StateGraph.Examples.Utilities.inflow2
StateGraph.Examples.Utilities.Inflow2
outflow1
StateGraph.Examples.Utilities.outflow2
StateGraph.Examples.Utilities.Outflow2



model StateGraph.Examples.Utilities.Tank

Component
Version 3.2
Version 3.2.1
inflow1
StateGraph.Examples.Utilities.inflow1
StateGraph.Examples.Utilities.Inflow1
outflow1
StateGraph.Examples.Utilities.outflow1
StateGraph.Examples.Utilities.Outflow1
level

start=0

fixed=true



model StateGraph.Examples.Utilities.Source

Component
Version 3.2
Version 3.2.1
outflow1
StateGraph.Examples.Utilities.outflow1
StateGraph.Examples.Utilities.Outflow1



block StateGraph.Interfaces.PartialTransition



Equations in Version 3.2 Equations in Version 3.2.1
initial equation

if enableTimer then
pre(t_start) = time;
end if;
pre(enableFire) = false;
...



model StateGraph.PartialCompositeStep



Equations in Version 3.2 Equations in Version 3.2.1
initial equation
pre(newActive) = pre(active); pre(newActive) = false;

...



block StateGraph.Temporary.RadioButton



Equations in Version 3.2 Equations in Version 3.2.1

initial equation

pre(reset) = fill(false, size(reset,1));

algorithm

...



model Electrical.Analog.Examples.CauerLowPassAnalog

Component
Version 3.2
Version 3.2.1
C1

v(start=0, fixed=true)
C3

v(start=0, fixed=true)
C5

v(start=0, fixed=true)
L1

i(start=0, fixed=true)
L2

i(start=0, fixed=true)
R1

R=1
R2

R=1
V

V=1



model Electrical.Analog.Examples.CauerLowPassOPV

Component
Version 3.2
Version 3.2.1
C1

v(start=0, fixed=true)
C2

v(start=0, fixed=true)
C3

v(start=0, fixed=true)
C4

v(start=0, fixed=true)
R1

R=1
R2

R=1
R3

R=1
R6

R=1
R7

R=1
R10

R=1
C7

v(start=0, fixed=true)
R11

R=1
V

V=1



model Electrical.Analog.Examples.CauerLowPassSC

Component
Version 3.2
Version 3.2.1
C1

v(start=0, fixed=true)
C2

v(start=0, fixed=true)
C3

v(start=0, fixed=true)
C4

v(start=0, fixed=true)
C7

v(start=0, fixed=true)
V

V=1
R4

Capacitor1(v(start=0, fixed=true))
R5

Capacitor1(v(start=0, fixed=true))
R8

Capacitor1(v(start=0, fixed=true))
R9

Capacitor1(v(start=0, fixed=true))
R1

Capacitor1(v(start=0, fixed=true))
R2

Capacitor1(v(start=0, fixed=true))
R3

Capacitor1(v(start=0, fixed=true))
Rp1

Capacitor1(v(start=0, fixed=true))
R7

Capacitor1(v(start=0, fixed=true))
R10

Capacitor1(v(start=0, fixed=true))
R11

Capacitor1(v(start=0, fixed=true))



model Electrical.Analog.Examples.CharacteristicIdealDiodes

Component
Version 3.2
Version 3.2.1
Ideal

Vknee=0
With_Ron_Goff

Vknee=0
SineVoltage1

freqHz=1
SineVoltage2

freqHz=1
SineVoltage3

freqHz=1



model Electrical.Analog.Examples.CharacteristicThyristors

Component
Version 3.2
Version 3.2.1
IdealThyristor1
Vknee=5
Vknee=1

off(start=true, fixed=true)
SineVoltage1

freqHz=1
IdealGTOThyristor1
Vknee=0
Vknee=1

off(fixed=true, start=true)
BooleanStep1
Present



booleanStep1

Present


IdealThyristor2

Present


R2

Present


IdealGTOThyristor2

Present


R4

Present


booleanPulse

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(IdealThyristor1.n, R3.p); initial equation


equation
 &nbspconnect(IdealThyristor1.n, R3.p);
connect(Ground1.p, SineVoltage1.n);
connect(SineVoltage1.p, IdealThyristor1.p);
connect(BooleanStep1.y, IdealThyristor1.fire);

connect(IdealGTOThyristor1.n, R1.p);
connect(R3.n, R1.n);
connect(R1.n, Ground1.p);

connect(IdealGTOThyristor1.p, IdealThyristor1.p);
connect(IdealGTOThyristor1.fire, IdealThyristor1.fire);

connect(IdealThyristor1.fire, booleanStep1.y);
connect(IdealThyristor2.n,R2. p);
connect(IdealGTOThyristor2.n,R4. p);
connect(R2.n,R4. n);
connect(IdealGTOThyristor2.p,IdealThyristor2. p);
connect(IdealGTOThyristor2.fire,IdealThyristor2. fire);
connect(R4.n, Ground1.p);
connect(R2.n, R1.n);
connect(SineVoltage1.p, IdealThyristor2.p);
connect(booleanPulse.y, IdealThyristor2.fire);



model Electrical.Analog.Examples.ChuaCircuit

Component
Version 3.2
Version 3.2.1
L

i(start=0, fixed=true)
C1
v(start=4)
v(start=4, fixed=true)
C2

v(start=0, fixed=true)



model Electrical.Analog.Examples.DifferenceAmplifier

Component
Version 3.2
Version 3.2.1
C1

v(start=0, fixed=true)
C4

v(start=0, fixed=true)
C5

v(start=0, fixed=true)
C2

v(start=0, fixed=true)
C3

v(start=0, fixed=true)
Transistor1

ct(v(start=0, fixed=true))
Transistor2

ct(v(start=0, fixed=true))



model Electrical.Analog.Examples.HeatingMOSInverter

Component
Version 3.2
Version 3.2.1
Capacitor1

v(start=0, fixed=true)


Equations in Version 3.2 Equations in Version 3.2.1
connect(Sin.n, G.p); initial equation

HeatCapacitor1.T= 293.15;

equation
 &nbspconnect(Sin.n, G.p);
connect(Capacitor1.n, G.p);
...



model Electrical.Analog.Examples.HeatingNPN_OrGate

Component
Version 3.2
Version 3.2.1
CapVal
constant
parameter
tauVal
constant
parameter
T1

ibe(start=0)

vbc(start=0)
T2

ibe(start=0)

vbc(start=0)


Equations in Version 3.2 Equations in Version 3.2.1
connect(Gnd1.p, V1.n); initial equation

HeatCapacitor1.T= 293.15;

equation
 &nbspconnect(Gnd1.p, V1.n);
connect(V1.p, R1.p);
...



model Electrical.Analog.Examples.HeatingResistor

Component
Version 3.2
Version 3.2.1
heatingResistor

i(start=0)



model Electrical.Analog.Examples.HeatingRectifier

Component
Version 3.2
Version 3.2.1
Capacitor1

v(start=0, fixed=true)


Equations in Version 3.2 Equations in Version 3.2.1
connect(SineVoltage1.p, HeatingDiode1.p); initial equation

HeatCapacitor1.T = 293.15;

equation
 &nbspconnect(SineVoltage1.p, HeatingDiode1.p);
connect(SineVoltage1.n, G.p);
...



model Electrical.Analog.Examples.NandGate

Component
Version 3.2
Version 3.2.1
VIN1

nperiod=-1
VIN2

nperiod=-1
Nand

C4(v(start=0, fixed=true))

C7(v(start=0, fixed=true))



model Electrical.Analog.Examples.OvervoltageProtection

Component
Version 3.2
Version 3.2.1
CL

v(start=0, fixed=true)
zDiode1

v(start=0)



model Electrical.Analog.Examples.Rectifier

Component
Version 3.2
Version 3.2.1
Inductor2

i(start=0, fixed=true)
Inductor3

i(start=0, fixed=true)



model Electrical.Analog.Examples.ShowSaturatingInductor

Component
Version 3.2
Version 3.2.1
SaturatingInductance1

i(start=0)
Inductance1

i(start=0, fixed=true)



model Electrical.Analog.Examples.ShowVariableResistor

Component
Version 3.2
Version 3.2.1
R1

R=1
R2

R=1
R3

R=1
R4

R=1
R5

R=1
SineVoltage1

V=1

freqHz=1
Ramp1

duration=2



model Electrical.Analog.Examples.SwitchWithArc

Component
Version 3.2
Version 3.2.1
booleanPulse

period=1
inductor1

i(start=0, fixed=true)
resistor1

R=1
inductor2

i(start=0, fixed=true)
resistor2

R=1
switch2

dVdt=10000

V0=30

Vmax=60



model Electrical.Analog.Examples.ThyristorBehaviourTest

Component
Version 3.2
Version 3.2.1
thyristor_v4_1

vControl(fixed=true)

vAK(start=0)

vGK(start=0)
inductor

i(start=0, fixed=true)



model Electrical.Analog.Examples.AmplifierWithOpAmpDetailed



Equations in Version 3.2 Equations in Version 3.2.1
connect(resistor.n, opAmp.m); initial equation

resistor2.i = 0;
opAmp.q_fp1 = 0;
opAmp.q_fr1 = 0;
opAmp.q_fr2 = 0;
opAmp.q_fr3 = 0;

equation
 &nbspconnect(resistor.n, opAmp.m);
connect(resistor1.n, resistor2.p);
...



model Electrical.Analog.Examples.CompareTransformers

Component
Version 3.2
Version 3.2.1
inductor22

i(start=0, fixed=true)


Equations in Version 3.2 Equations in Version 3.2.1
connect(sineVoltage1.n, ground11.p); initial equation

basicTransformer.i1=0;
basicTransformer.i2=0;

equation
 &nbspconnect(sineVoltage1.n, ground11.p);
connect(sineVoltage1.p, resistor11.p);
...



model Electrical.Analog.Examples.ControlledSwitchWithArc

Component
Version 3.2
Version 3.2.1
resistor1

R=1
resistor2

R=1
switch2

V0=30

dVdt=10000

Vmax=60


Equations in Version 3.2 Equations in Version 3.2.1
connect(inductor1.n,resistor1. p); initial equation

inductor1.i = 0;
inductor2.i = 0;

equation
 &nbspconnect(inductor1.n,resistor1. p);
connect(resistor1.n,ground1. p);
...



model Electrical.Analog.Examples.SimpleTriacCircuit

Component
Version 3.2
Version 3.2.1
L

i(start=0, fixed=true)

p(v(start=0))
simpleTriac

thyristor1(vGK(start=0))


Equations in Version 3.2 Equations in Version 3.2.1
connect(L.n, R.p); initial equation

simpleTriac.thyristor.vControl=0;
simpleTriac.thyristor1.vControl=0;

equation
 &nbspconnect(L.n, R.p);
connect(R.n, V.p);
...



model Electrical.Analog.Examples.IdealTriacCircuit

Component
Version 3.2
Version 3.2.1
idealTriac

capacitor(v(start=0, fixed=true))

idealThyristor(off(start=true, fixed=true))

idealThyristor1(off(start=true, fixed=true))



model Electrical.Analog.Examples.AD_DA_conversion

Component
Version 3.2
Version 3.2.1
aD_Converter

Rin=1000000

VRefLow=0

VRefHigh=10
dA_Converter

Vref=10



model Electrical.Analog.Examples.Utilities.Transistor

Component
Version 3.2
Version 3.2.1
Tr

UIC=true



model Electrical.Analog.Basic.SaturatingInductor

Component
Version 3.2
Version 3.2.1
Psi

start=0

fixed=true



model Electrical.Analog.Basic.Transformer

Component
Version 3.2
Version 3.2.1
dv

Present


Equations in Version 3.2 Equations in Version 3.2.1
v1 = L1*der(i1) + M*der(i2);
v2 = M*der(i1) + L2*der(i2); dv = (L1 - M)*der(i1) + (M - L2)*der(i2);

v2 = v1 - dv;



model Electrical.Analog.Basic.M_Transformer

Component
Version 3.2
Version 3.2.1
p
extent=[-80, -40; -62, 40]

n
extent=[62, -40; 80, 40]

i

each start=0

fixed=true
Lm

parameter

each final fixed=false


Equations in Version 3.2 Equations in Version 3.2.1
algorithm
initial equation
for s in 1:N loop
...



model Electrical.Analog.Basic.OpAmp

Component
Version 3.2
Version 3.2.1
Slope
start=1
start=10000


Equations in Version 3.2 Equations in Version 3.2.1

...
f = 2/(VMax.v - VMin.v);
absSlope = smooth(0,(if (Slope < 0) then -Slope else Slope)); absSlope = if (Slope < 0) then -Slope else Slope;
out.v = (VMax.v + VMin.v)/2 + absSlope*vin/(1 + absSlope*smooth(0,(if (f*vin
     < 0) then -f*vin else f*vin)));



model Electrical.Analog.Basic.VariableResistor

Component
Version 3.2
Version 3.2.1
R

unit="Ohm"



model Electrical.Analog.Basic.VariableConductor

Component
Version 3.2
Version 3.2.1
G

unit="S"



model Electrical.Analog.Basic.VariableCapacitor

Component
Version 3.2
Version 3.2.1
C

unit="F"
IC

Present
UIC

Present


Equations in Version 3.2 Equations in Version 3.2.1
assert(C>=0,"Capacitance C (= " +
String(C) + ") has to be >= 0!");
initial equation
Q = noEvent(max(C,Cmin))*v; if UIC then
i = der(Q); v = IC;

end if;

equation
 &nbspassert(C>=0,"Capacitance C (= " +
        &nbspString(C) + ") has to be >= 0!");
Q = noEvent(max(C,Cmin))*v;
i = der(Q);



model Electrical.Analog.Basic.VariableInductor

Component
Version 3.2
Version 3.2.1
L

unit="H"
IC

Present
UIC

Present


Equations in Version 3.2 Equations in Version 3.2.1
assert(L>=0,"Inductance L_ (= " +
String(L) + ") has to be >= 0!");
initial equation
Psi = noEvent(max(L,Lmin))*i; if UIC then
v = der(Psi); i = IC;

end if;

equation
 &nbspassert(L>=0,"Inductance L_ (= " +
        &nbspString(L) + ") has to be >= 0!");
Psi = noEvent(max(L,Lmin))*i;
v = der(Psi);



model Electrical.Analog.Ideal.IdealDiode

Component
Version 3.2
Version 3.2.1
s

start=0



model Electrical.Analog.Ideal.OpenerWithArc

Component
Version 3.2
Version 3.2.1
quenched

fixed=true



model Electrical.Analog.Ideal.CloserWithArc

Component
Version 3.2
Version 3.2.1
off
=not on


start=false

fixed=true
quenched

fixed=true


Equations in Version 3.2 Equations in Version 3.2.1

off = not on;
when edge(off) then
...



model Electrical.Analog.Ideal.ControlledCloserWithArc

Component
Version 3.2
Version 3.2.1
off
=(control.v < level)


start=false

fixed=true
quenched

fixed=true


Equations in Version 3.2 Equations in Version 3.2.1

off =(control.v < level);
control.i = 0;
...



model Electrical.Analog.Ideal.AD_Converter



Equations in Version 3.2 Equations in Version 3.2.1

...
algorithm
when (trig==4 or trig==8) then when (trig==L.'1' or trig==L.'H') then
z= if u>VRefLow then integer((u-VRefLow)/(VRefHigh-VRefLow)*(2^N - 1) + 0.5) else 0;
...



model Electrical.Analog.Ideal.DA_Converter



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
when trig==4 or trig==8 then when trig==L.'1' or trig==L.'H' then
y= 0;
for i in 1:N loop
y = if ( x[i] == 4 or x[i] == 8) then y + 2^(i-1) else y; y = if ( x[i] == L.'1' or x[i] == L.'H') then y + 2^(i-1) else y;
end for;
...



model Electrical.Analog.Lines.OLine

Component
Version 3.2
Version 3.2.1
R

T_ref=fill(T_ref, N + 1)

alpha=fill(alpha_R, N + 1)

useHeatPort=fill(useHeatPort, N + 1)

T=fill(T, N + 1)
G

T_ref=fill(T_ref, N)

alpha=fill(alpha_G, N)

useHeatPort=fill(useHeatPort, N)

T=fill(T, N)
alpha_R

Present
alpha_G

Present
useHeatPort

Present
T

Present
T_ref

Present
heatPort

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(L[N + 1].n, p2);

if useHeatPort then
for i in 1:N + 1 loop
connect(heatPort, R[i].heatPort);
end for;
for i in 1:N loop
connect(heatPort, G[i].heatPort);
end for;
end if;



model Electrical.Analog.Lines.M_OLine

Component
Version 3.2
Version 3.2.1
N
final min=1
final min=2
r
final min=Modelica_3_2.Constants.small

unit="Ohm/m"


each final min=Modelica.Constants.small

each unit="Ohm/m"
l
final min=Modelica_3_2.Constants.small

unit="H/m"


each final min=Modelica.Constants.small

each unit="H/m"
g
final min=Modelica_3_2.Constants.small

unit="S/m"


each final min=Modelica.Constants.small

each unit="S/m"
c
final min=Modelica_3_2.Constants.small

unit="F/m"


each final min=Modelica.Constants.small

each unit="F/m"
s

alpha_R=fill(alpha_R, N - 1)

alpha_G=fill(alpha_G, N - 1)

T_ref=fill(T_ref, N - 1)

useHeatPort=fill(useHeatPort, N - 1)

T=fill(T, N - 1)
s_first

alpha_R=alpha_R

alpha_G=alpha_G

T_ref=T_ref

useHeatPort=useHeatPort

T=T
s_last

alpha_R=alpha_R

T_ref=T_ref

useHeatPort=useHeatPort

T=T
alpha_R

Present
alpha_G

Present
useHeatPort

Present
T

Present
T_ref

Present
heatPort

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(s_last.n,n);

if useHeatPort then
connect(heatPort, s_first.heatPort);
for i in 1:N - 1 loop
connect(heatPort, s[i].heatPort);
end for;
connect(heatPort, s_last.heatPort);
end if;



model Electrical.Analog.Lines.ULine

Component
Version 3.2
Version 3.2.1
R

T_ref=fill(T_ref, N + 1)

alpha=fill(alpha, N + 1)

useHeatPort=fill(useHeatPort, N + 1)

T=fill(T, N + 1)
alpha

Present
useHeatPort

Present
T

Present
T_ref

Present
heatPort

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(R[N + 1].n, p2);

if useHeatPort then
for i in 1:N + 1 loop
connect(heatPort, R[i].heatPort);
end for;
end if;



model Electrical.Analog.Lines.TLine2

Component
Version 3.2
Version 3.2.1
TD

parameter

=NL/F


Equations in Version 3.2 Equations in Version 3.2.1

...
assert(F > 0, "F has to be positive");
TD = NL/F;

i1 = (v1 - es)/Z0;
...



model Electrical.Analog.Lines.TLine3

Component
Version 3.2
Version 3.2.1
TD

parameter

=1/F/4


Equations in Version 3.2 Equations in Version 3.2.1

...
assert(F > 0, "F has to be positive");
TD = 1/F/4;

i1 = (v1 - es)/Z0;
...



model Electrical.Analog.Semiconductors.NPN

Component
Version 3.2
Version 3.2.1
IC

Present
UIC

Present


Equations in Version 3.2 Equations in Version 3.2.1
ExMin = exp(EMin); initial equation

if UIC then
C.v = IC;
end if;

equation
 &nbspExMin = exp(EMin);
ExMax = exp(EMax);
...



model Electrical.Analog.Semiconductors.Thyristor



Equations in Version 3.2 Equations in Version 3.2.1

...
vConmain = (if Anode.i>IH or vAK>VDRM then Von else 0);

LossPower = Anode.i*Anode.v + Cathode.i*Cathode.v + Gate.i*Gate.v;



model Electrical.Analog.Semiconductors.SimpleTriac

Component
Version 3.2
Version 3.2.1
thyristor

useHeatPort=useHeatPort

T=T
thyristor1

useHeatPort=useHeatPort

T=T
useHeatPort

Present
T

Present
heatPort

Present




Equations in Version 3.2 Equations in Version 3.2.1

if useHeatPort then
connect(heatPort, thyristor.heatPort);
connect(heatPort, thyristor1.heatPort);
end if;
connect(thyristor.Anode, n);
...



model Electrical.Analog.Sensors.PotentialSensor

Component
Version 3.2
Version 3.2.1
phi

unit="V"



model Electrical.Analog.Sensors.VoltageSensor

Component
Version 3.2
Version 3.2.1
v

unit="V"



model Electrical.Analog.Sensors.CurrentSensor

Component
Version 3.2
Version 3.2.1
i

unit="A"



model Electrical.Analog.Sensors.PowerSensor

Component
Version 3.2
Version 3.2.1
power

unit="W"



model Electrical.Analog.Sources.SignalVoltage

Component
Version 3.2
Version 3.2.1
v

unit="V"



model Electrical.Analog.Sources.SignalCurrent

Component
Version 3.2
Version 3.2.1
i

unit="A"



model Electrical.Digital.Examples.Multiplexer

Component
Version 3.2
Version 3.2.1
CLK

startTime=0

width=50
D0
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
D1
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
D2
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
D3
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
Enable

x=Modelica.Electrical.Digital.Interfaces.Logic.'1'



model Electrical.Digital.Examples.FlipFlop

Component
Version 3.2
Version 3.2.1
CLK

startTime=0

width=50
J
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
K
y0=3
y0=L.'0'
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}



model Electrical.Digital.Examples.HalfAdder

Component
Version 3.2
Version 3.2.1
a
x={4,3,4,3}
x={L.'1',L.'0',L.'1',L.'0'}
y0=3
y0=L.'0'
b
x={4,3}
x={L.'1',L.'0'}
y0=3
y0=L.'0'
Adder

AND(G2(y(start=L.'U', fixed=true)))

XOR(G2(y(start=L.'U', fixed=true)))
s

n=1

value_U=0.5

value_X=0.5

value_0=0

value_1=1

value_Z=0.5

value_W=0.5

value_L=0

value_H=1

value_m=0.5
c

n=1

value_U=0.5

value_X=0.5

value_0=0

value_1=1

value_Z=0.5

value_W=0.5

value_L=0

value_H=1

value_m=0.5



model Electrical.Digital.Examples.FullAdder

Component
Version 3.2
Version 3.2.1
s

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1
c_out

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1
CLK

period=1

startTime=0

width=50



model Electrical.Digital.Examples.Adder4

Component
Version 3.2
Version 3.2.1
b4
y0=3
y0=L.'0'
x={4,3}
x={L.'1',L.'0'}
b1
x={4,3,4}
x={L.'1',L.'0',L.'1'}
y0=3
y0=L.'0'
b2
y0=3
y0=L.'0'
x={4}
x={L.'1'}
b3
y0=3
y0=L.'0'
x={4}
x={L.'1'}
a1
y0=3
y0=L.'0'
x={4,3,4}
x={L.'1',L.'0',L.'1'}
a2
y0=3
y0=L.'0'
x={4}
x={L.'1'}
a3
y0=3
y0=L.'0'
x={4,3}
x={L.'1',L.'0'}
a4
y0=3
y0=L.'0'
x={3}
x={L.'0'}
Set
x=3
x=L.'0'
Adder1

Adder1(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))

Adder2(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))
Adder2

Adder1(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))

Adder2(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))
Adder3

Adder1(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))

Adder2(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))
Adder4

Adder1(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))

Adder2(AND(G2(y(start=L.'U', fixed=true))), XOR(G2(y(start=L.'U', fixed=true))))



model Electrical.Digital.Examples.Counter3

Component
Version 3.2
Version 3.2.1
Enable

after=D.Interfaces.Logic.'1'

before=D.Interfaces.Logic.'0'

stepTime=1
Clock

period=1

startTime=0

width=50



model Electrical.Digital.Examples.Counter

Component
Version 3.2
Version 3.2.1
Enable

after=D.Interfaces.Logic.'1'

before=D.Interfaces.Logic.'0'

stepTime=1
Clock

period=1

startTime=0

width=50
Q0

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1
Q1

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1
Q2

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1
Q3

value_0=0

value_1=1

value_H=1

value_L=0

value_m=0.5

value_U=0.5

value_W=0.5

value_X=0.5

value_Z=0.5

n=1



model Electrical.Digital.Examples.VectorDelay

Component
Version 3.2
Version 3.2.1
delay

inertialDelaySensitive(each y(start=L.'U', fixed=true))
table
x={3,4,3,4,3}
x={L.'0',L.'1',L.'0',L.'1',L.'0'}
table1
x={3,4}
x={L.'0',L.'1'}
table2
x={3,4,3}
x={L.'0',L.'1',L.'0'}



model Electrical.Digital.Examples.DFFREG

Component
Version 3.2
Version 3.2.1
clock
x={3,4,3,4,3,4,3}
x={L.'0',L.'1',L.'0',L.'1',L.'0',L.'1',L.'0'}
data_0
x={4,3}
x={L.'1',L.'0'}
reset
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_1
x={8,2}
x={L.'H',L.'X'}
dFFREG

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))

dFFR(clock(start=L.'U', fixed=true), reset(start=L.'U', fixed=true))



model Electrical.Digital.Examples.DFFREGL

Component
Version 3.2
Version 3.2.1
clock
x={3,4,3,4,3,4,3}
x={L.'0',L.'1',L.'0',L.'1',L.'0',L.'1',L.'0'}
data_0
x={4,3}
x={L.'1',L.'0'}
reset
x={4,3,4}
x={L.'1',L.'0',L.'1'}
data_1
x={8,2}
x={L.'H',L.'X'}
dFFREGL

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))

dFFR(clock(start=L.'U', fixed=true), reset(start=L.'U', fixed=true))



model Electrical.Digital.Examples.DFFREGSRH

Component
Version 3.2
Version 3.2.1
clock
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6}
x={L.'W'}
reset
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_1
x={3}
x={L.'0'}
set
x={3,4,3}
x={L.'0',L.'1',L.'0'}



model Electrical.Digital.Examples.DFFREGSRL

Component
Version 3.2
Version 3.2.1
clock
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6}
x={L.'W'}
reset
x={4,3,4}
x={L.'1',L.'0',L.'1'}
data_1
x={3}
x={L.'0'}
set
x={4,3,4}
x={L.'1',L.'0',L.'1'}



model Electrical.Digital.Examples.DLATREG

Component
Version 3.2
Version 3.2.1
enable
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6,4}
x={L.'W',L.'1'}
reset
x={3,4,3,4,3}
x={L.'0',L.'1',L.'0',L.'1',L.'0'}
data_1
x={3,4}
x={L.'0',L.'1'}
dLATREG

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))



model Electrical.Digital.Examples.DLATREGL

Component
Version 3.2
Version 3.2.1
enable
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6,4}
x={L.'W',L.'1'}
reset
x={4,3,4,3,4}
x={L.'1',L.'0',L.'1',L.'0',L.'1'}
data_1
x={3,4}
x={L.'0',L.'1'}
dLATREGL

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))



model Electrical.Digital.Examples.DLATREGSRH

Component
Version 3.2
Version 3.2.1
enable
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6,4}
x={L.'W',L.'1'}
reset
x={3,4,3,4,3}
x={L.'0',L.'1',L.'0',L.'1',L.'0'}
data_1
x={3,4}
x={L.'0',L.'1'}
set
x={3,4,3}
x={L.'0',L.'1',L.'0'}
dLATREGSRH

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))



model Electrical.Digital.Examples.DLATREGSRL

Component
Version 3.2
Version 3.2.1
enable
x={3,4,3}
x={L.'0',L.'1',L.'0'}
data_0
x={6,4}
x={L.'W',L.'1'}
reset
x={4,3,4,3,4}
x={L.'1',L.'0',L.'1',L.'0',L.'1'}
data_1
x={3,4}
x={L.'0',L.'1'}
set
x={4,3,4}
x={L.'1',L.'0',L.'1'}
dLATREGSRL

delay(inertialDelaySensitive(each y(start=L.'U', fixed=true)))



model Electrical.Digital.Examples.NXFER

Component
Version 3.2
Version 3.2.1
e_table
x={3,4,5}
x={L.'0',L.'1',L.'Z'}
x_table
x={4,3}
x={L.'1',L.'0'}



model Electrical.Digital.Examples.NRXFER

Component
Version 3.2
Version 3.2.1
e_table
x={3,4,5}
x={L.'0',L.'1',L.'Z'}
x_table
x={4,3}
x={L.'1',L.'0'}



model Electrical.Digital.Examples.BUF3S

Component
Version 3.2
Version 3.2.1
e_table
x={3,4,5}
x={L.'0',L.'1',L.'Z'}
x_table
x={4,3}
x={L.'1',L.'0'}



model Electrical.Digital.Examples.INV3S

Component
Version 3.2
Version 3.2.1
e_table
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={3,4,5}
x={L.'0',L.'1',L.'Z'}
x_table
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={4,3}
x={L.'1',L.'0'}



model Electrical.Digital.Examples.WiredX

Component
Version 3.2
Version 3.2.1
e_table2
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={3,4,3}
x={L.'0',L.'1',L.'0'}
x_table2
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={4,3}
x={L.'1',L.'0'}
e_table1
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={3,4,3}
x={L.'0',L.'1',L.'0'}
x_table1
y0=Modelica_3_2.Electrical.Digital.Interfaces.Logic.'U'
y0=L.'U'
x={3,4,3}
x={L.'0',L.'1',L.'0'}



model Electrical.Digital.Examples.Utilities.DFF



Equations in Version 3.2 Equations in Version 3.2.1

...
connect(Not1.y, RSFF1.r);
connect(clk, RSFF1.clk);

connect(d, Not1.x);
connect(d, RSFF1.s);

connect(clk, RSFF1.clk);



model Electrical.Digital.Examples.Utilities.HalfAdder

Component
Version 3.2
Version 3.2.1
AND

G2(y(start=L.'U', fixed=true))
XOR

G2(y(start=L.'U', fixed=true))



package Electrical.Digital.Tables

Component
Version 3.2
Version 3.2.1
MUX2x1Table

Present



model Electrical.Digital.Delay.TransportDelay

Component
Version 3.2
Version 3.2.1
LogicValues

Present


Equations in Version 3.2 Equations in Version 3.2.1
x_delayed = integer(delay(x, delayTime)); x_delayed = LogicValues[integer(delay(Integer(pre(x)), delayTime))];
y = if delayTime > 0 then
          (if time >= delayTime then x_delayed else y0) else
           &nbsppre(x);



model Electrical.Digital.Delay.InertialDelaySensitive

Component
Version 3.2
Version 3.2.1
delayTable

constant


Equations in Version 3.2 Equations in Version 3.2.1

...
when {initial(),(tLH > 0 or tHL > 0) and change(x) and not initial()} then
y_old = if initial() or pre(y) == 0 then y0 else pre(y); y_old = if initial() or pre(y) == L.'U' then y0 else pre(y);
lh = delayTable[y_old, x];
...



model Electrical.Digital.Basic.And

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(auxiliary[n]); auxiliary_n = auxiliary[n];

y = pre(auxiliary_n);



model Electrical.Digital.Basic.Nand

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(Modelica_3_2.Electrical.Digital.Tables.NotTable[auxiliary[n]]); auxiliary_n = Modelica.Electrical.Digital.Tables.NotTable[auxiliary[n]];

y = pre(auxiliary_n);



model Electrical.Digital.Basic.Or

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(auxiliary[n]); auxiliary_n = auxiliary[n];

y = pre(auxiliary_n);



model Electrical.Digital.Basic.Nor

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(Modelica_3_2.Electrical.Digital.Tables.NotTable[auxiliary[n]]); auxiliary_n = Modelica.Electrical.Digital.Tables.NotTable[auxiliary[n]];

y = pre(auxiliary_n);



model Electrical.Digital.Basic.Xor

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(auxiliary[n]); auxiliary_n = auxiliary[n];

y = pre(auxiliary_n);



model Electrical.Digital.Basic.Xnor

Component
Version 3.2
Version 3.2.1
auxiliary
each fixed=true

auxiliary_n

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end for;
y = pre(Modelica_3_2.Electrical.Digital.Tables.NotTable[auxiliary[n]]); auxiliary_n = Modelica.Electrical.Digital.Tables.NotTable[auxiliary[n]];

y = pre(auxiliary_n);



block Electrical.Digital.Sources.Step



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
when initial() then
y = before;
end when;

if time >= stepTime then
...



block Electrical.Digital.Sources.Table

Component
Version 3.2
Version 3.2.1
x
={1}
={L.'1'}



model Electrical.Digital.Sources.Clock



Equations in Version 3.2 Equations in Version 3.2.1
algorithm


when sample(startTime, period) then
...
y = if (not time>=startTime) or time >= t_i + t_width then L.'0' else L.'1';





block Electrical.Digital.Converters.LogicToBoolean



Equations in Version 3.2 Equations in Version 3.2.1
for i in 1:n loop
y[i] = if x[i] == 4 or x[i] == 8 then true else false; y[i] = if x[i] == L.'1' or x[i] == L.'H' then true else false;
end for;



model Electrical.Digital.Registers.DFFREG



Equations in Version 3.2 Equations in Version 3.2.1
connect(dataOut, dataOut);

connect(delay.y, dataOut);
...



model Electrical.Digital.Registers.DFFREGSRH

Component
Version 3.2
Version 3.2.1
delay

inertialDelaySensitive(each y(start=L.'U', fixed=true))
dFFSR

clock(start=L.'U', fixed=true)

reset(start=L.'U', fixed=true)

set(start=L.'U', fixed=true)



model Electrical.Digital.Registers.DLATREG



Equations in Version 3.2 Equations in Version 3.2.1
connect(dataOut, dataOut);

connect(delay.y, dataOut);
...



model Electrical.Digital.Registers.DLATREGSRH



Equations in Version 3.2 Equations in Version 3.2.1
connect(dataOut, dataOut);

connect(delay.y, dataOut);
...



model Electrical.Digital.Tristates.NXFERGATE

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL

y(start=L.'U', fixed=true)



model Electrical.Digital.Tristates.NRXFERGATE

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL

y(start=L.'U', fixed=true)



model Electrical.Digital.Tristates.PXFERGATE

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL



model Electrical.Digital.Tristates.PRXFERGATE

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL



model Electrical.Digital.Tristates.BUF3S

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL

y(start=L.'U', fixed=true)



model Electrical.Digital.Tristates.BUF3SL

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL



model Electrical.Digital.Tristates.INV3S

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL

y(start=L.'U', fixed=true)



model Electrical.Digital.Tristates.INV3SL

Component
Version 3.2
Version 3.2.1
inertialDelaySensitive
each tLH=tLH

each tHL=tHL


tLH=tLH

tHL=tHL



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_DOL

Component
Version 3.2
Version 3.2.1
aimc

p=aimcData.p

fsNominal=aimcData.fsNominal

Rs=aimcData.Rs

TsRef=aimcData.TsRef

alpha20s(displayUnit="1/K") = aimcData.alpha20s

Lszero=aimcData.Lszero

Lssigma=aimcData.Lssigma

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

Lm=aimcData.Lm

Lrsigma=aimcData.Lrsigma

Rr=aimcData.Rr

TrRef=aimcData.TrRef

TsOperational=293.15

alpha20r=aimcData.alpha20r

TrOperational=293.15
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
aimcData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimc.is=zeros(3);
aimc.ir=zeros(2);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_YD

Component
Version 3.2
Version 3.2.1
aimc

p=aimcData.p

fsNominal=aimcData.fsNominal

Rs=aimcData.Rs

TsRef=aimcData.TsRef

alpha20s(displayUnit="1/K") = aimcData.alpha20s

Lszero=aimcData.Lszero

Lssigma=aimcData.Lssigma

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

Lm=aimcData.Lm

Lrsigma=aimcData.Lrsigma

Rr=aimcData.Rr

TrRef=aimcData.TrRef

TsOperational=293.15

alpha20r=aimcData.alpha20r

TrOperational=293.15
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
switchYD

m=m
aimcData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimc.is=zeros(3);
aimc.ir=zeros(2);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Transformer

Component
Version 3.2
Version 3.2.1
aimc

p=aimcData.p

fsNominal=aimcData.fsNominal

Rs=aimcData.Rs

TsRef=aimcData.TsRef

alpha20s(displayUnit="1/K") = aimcData.alpha20s

Lszero=aimcData.Lszero

Lssigma=aimcData.Lssigma

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

Lm=aimcData.Lm

Lrsigma=aimcData.Lrsigma

Rr=aimcData.Rr

TrRef=aimcData.TrRef

TsOperational=293.15

alpha20r=aimcData.alpha20r

TrOperational=293.15
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
transformer

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15
transformerData

parameter
idealCommutingSwitch
Goff=fill(5E-4, m)
Goff=fill(50E-5, m)

Ron=fill(1e-5, m)
aimcData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimc.is=zeros(3);
aimc.ir=zeros(2);
transformer.i1[1:2]=zeros(2);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(terminalBox.plug_sn, aimc.plug_sn);
...



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMS_Start

Component
Version 3.2
Version 3.2.1
Rstart
=0.16
=0.16/aimsData.turnsRatio^2
aims

p=aimsData.p

Jr=aimsData.Jr

Js=aimsData.Js

phiMechanical(fixed=true)

wMechanical(fixed=true)

useTurnsRatio=aimsData.useTurnsRatio

turnsRatio=aimsData.turnsRatio

VsNominal=aimsData.VsNominal

VrLockedRotor=aimsData.VrLockedRotor

Rs=aimsData.Rs

TsRef=aimsData.TsRef

Lszero=aimsData.Lszero

Lssigma=aimsData.Lssigma

Lm=aimsData.Lm

Lrsigma=aimsData.Lrsigma

Lrzero=aimsData.Lrzero

Rr=aimsData.Rr

TrRef=aimsData.TrRef

frictionParameters=aimsData.frictionParameters

statorCoreParameters=aimsData.statorCoreParameters

strayLoadParameters=aimsData.strayLoadParameters

rotorCoreParameters=aimsData.rotorCoreParameters

fsNominal=aimsData.fsNominal

TsOperational=293.15

alpha20s=aimsData.alpha20s

alpha20r=aimsData.alpha20r

TrOperational=293.15
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
switchedRheostat

m=m
aimsData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aims.is=zeros(3);
aims.ir=zeros(3);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Inverter

Component
Version 3.2
Version 3.2.1
aimc

p=aimcData.p

fsNominal=aimcData.fsNominal

Rs=aimcData.Rs

TsRef=aimcData.TsRef

alpha20s(displayUnit="1/K") = aimcData.alpha20s

Lszero=aimcData.Lszero

Lssigma=aimcData.Lssigma

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

Lm=aimcData.Lm

Lrsigma=aimcData.Lrsigma

Rr=aimcData.Rr

TrRef=aimcData.TrRef

TsOperational=293.15

alpha20r=aimcData.alpha20r

TrOperational=293.15
loadTorqueStep

offsetTorque=0
aimcData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(signalVoltage.plug_n, star.plug_p); initial equation

aimc.is[1:2]=zeros(2);
aimc.ir=zeros(2);

equation
 &nbspconnect(signalVoltage.plug_n, star.plug_p);
connect(star.pin_n, ground.p);
...



model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_Steinmetz

Component
Version 3.2
Version 3.2.1
aimc
useSupport=true


p=aimcData.p

fsNominal=aimcData.fsNominal

Rs=aimcData.Rs

TsRef=aimcData.TsRef

alpha20s(displayUnit="1/K") = aimcData.alpha20s

Lszero=aimcData.Lszero

Lssigma=aimcData.Lssigma

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

Lm=aimcData.Lm

Lrsigma=aimcData.Lrsigma

Rr=aimcData.Rr

TrRef=aimcData.TrRef

TsOperational=293.15

alpha20r=aimcData.alpha20r

TrOperational=293.15
quadraticLoadTorque

useSupport=false
relSpeedSensor
Mechanics.Rotational.Sensors.RelSpeedSensor
Mechanics.Rotational.Sensors.SpeedSensor
fixed
Present



aimcData

Present


currentQuasiRMSSensor

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(ground.p, sineVoltage.n); initial equation

aimc.is=zeros(3);
aimc.ir=zeros(2);
cStart.v=0;
cRun.v = 0;

equation
 &nbspconnect(ground.p, sineVoltage.n);
connect(sineVoltage.p, idealCloser.p);
...
connect(TerminalBox1.plug_sp, aimc.plug_sp);
connect(TerminalBox1.plugSupply, plugToPin_p2.plug_p); connect(aimc.flange, loadInertia.flange_a);
connect(TerminalBox1.plugSupply, plugToPin_p3.plug_p); connect(relSpeedSensor.flange, aimc.flange);
connect(TerminalBox1.plugSupply, plugToPin_p1.plug_p); connect(relSpeedSensor.w, greaterThreshold.u);
connect(quadraticLoadTorque.support, fixed.flange); connect(plugToPin_p3.plug_p, currentQuasiRMSSensor.plug_p);
connect(relSpeedSensor.flange_a, fixed.flange); connect(plugToPin_p2.plug_p, currentQuasiRMSSensor.plug_p);
connect(relSpeedSensor.w_rel, greaterThreshold.u); connect(plugToPin_p1.plug_p, currentQuasiRMSSensor.plug_p);
connect(aimc.support, fixed.flange); connect(currentQuasiRMSSensor.plug_n, TerminalBox1.plugSupply);
connect(aimc.flange, relSpeedSensor.flange_b);
connect(aimc.flange, loadInertia.flange_a);




model Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_withLosses

Component
Version 3.2
Version 3.2.1
m
protected

aimc
Jr=J
Jr=aimcData.Jr
p=2
p=aimcData.p
fsNominal=fNominal
fsNominal=aimcData.fsNominal
Rs=0.56
Rs=aimcData.Rs
alpha20s(displayUnit="1/K") = Modelica_3_2.Electrical.Machines.Thermal.Constants.alpha20Copper
alpha20s(displayUnit="1/K") = aimcData.alpha20s
Lssigma=1.52/(2*pi*fNominal)
Lssigma=aimcData.Lssigma
Lm=66.4/(2*pi*fNominal)
Lm=aimcData.Lm
Lrsigma=2.31/(2*pi*fNominal)
Lrsigma=aimcData.Lrsigma
Rr=0.42
Rr=aimcData.Rr
TsRef=293.15
TsRef=aimcData.TsRef
TrRef=293.15
TrRef=aimcData.TrRef
statorCoreParameters(PRef=PcoreRef, VRef=VcoreNominal, wRef=2*pi*fNominal)

strayLoadParameters(PRef=0.005*sqrt(3)*VNominal*INominal*pfNominal, IRef=INominal/sqrt(3), wRef=wNominal)

alpha20r(displayUnit="1/K") = Modelica_3_2.Electrical.Machines.Thermal.Constants.alpha20Aluminium

wMechanical(start=wNominal, fixed=true)

frictionParameters(PRef=PfrictionRef, wRef=wNominal)


Lszero=aimcData.Lszero

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

wMechanical(fixed=true, start=2*pi*aimcData.fsNominal/aimcData.p)

alpha20r=aimcData.alpha20r
loadInertia
J=J
J=aimcData.Jr
PI

initType=Modelica.Blocks.Types.Init.InitialState
pi
Present

J
Present

PcoreRef
Present

VcoreNominal
Present

PfrictionRef
Present

aimcData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimc.i_0_s=0;
der(aimc.idq_sr)=zeros(2);
der(aimc.idq_rr)=zeros(2);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...



model Electrical.Machines.Examples.SynchronousInductionMachines.SMR_Inverter

Component
Version 3.2
Version 3.2.1
smr

p=smrData.p

fsNominal=smrData.fsNominal

Rs=smrData.Rs

TsRef=smrData.TsRef

Lszero=smrData.Lszero

Lssigma=smrData.Lssigma

Jr=smrData.Jr

Js=smrData.Js

frictionParameters=smrData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=smrData.statorCoreParameters

strayLoadParameters=smrData.strayLoadParameters

Lmd=smrData.Lmd

Lmq=smrData.Lmq

useDamperCage=smrData.useDamperCage

Lrsigmad=smrData.Lrsigmad

Lrsigmaq=smrData.Lrsigmaq

Rrd=smrData.Rrd

Rrq=smrData.Rrq

TrRef=smrData.TrRef

TsOperational=293.15

alpha20s=smrData.alpha20s

ir(fixed=true)

TrOperational=293.15

alpha20r=smrData.alpha20r
loadTorqueStep

offsetTorque=0
smrData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(signalVoltage.plug_n, star.plug_p); initial equation

smr.is[1:2]=zeros(2);

equation
 &nbspconnect(signalVoltage.plug_n, star.plug_p);
connect(star.pin_n, ground.p);
...



model Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_Inverter

Component
Version 3.2
Version 3.2.1
smpm

p=smpmData.p

fsNominal=smpmData.fsNominal

Rs=smpmData.Rs

TsRef=smpmData.TsRef

Lszero=smpmData.Lszero

Lssigma=smpmData.Lssigma

Jr=smpmData.Jr

Js=smpmData.Js

frictionParameters=smpmData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=smpmData.statorCoreParameters

strayLoadParameters=smpmData.strayLoadParameters

VsOpenCircuit=smpmData.VsOpenCircuit

Lmd=smpmData.Lmd

Lmq=smpmData.Lmq

useDamperCage=smpmData.useDamperCage

Lrsigmad=smpmData.Lrsigmad

Lrsigmaq=smpmData.Lrsigmaq

Rrd=smpmData.Rrd

Rrq=smpmData.Rrq

TrRef=smpmData.TrRef

permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters

TsOperational=293.15

alpha20s=smpmData.alpha20s

ir(fixed=true)

TrOperational=293.15

alpha20r=smpmData.alpha20r
loadTorqueStep

offsetTorque=0
smpmData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(signalVoltage.plug_n, star.plug_p); initial equation

smpm.is[1:2]=zeros(2);

equation
 &nbspconnect(signalVoltage.plug_n, star.plug_p);
connect(star.pin_n, ground.p);
...



model Electrical.Machines.Examples.SynchronousInductionMachines.SMPM_CurrentSource

Component
Version 3.2
Version 3.2.1
smpm
useDamperCage=false
useDamperCage=smpmData.useDamperCage

p=smpmData.p

fsNominal=smpmData.fsNominal

TsOperational=293.15

Rs=smpmData.Rs

TsRef=smpmData.TsRef

alpha20s=smpmData.alpha20s

Lszero=smpmData.Lszero

Lssigma=smpmData.Lssigma

Jr=smpmData.Jr

Js=smpmData.Js

frictionParameters=smpmData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=smpmData.statorCoreParameters

strayLoadParameters=smpmData.strayLoadParameters

TrOperational=293.15

VsOpenCircuit=smpmData.VsOpenCircuit

Lmd=smpmData.Lmd

Lmq=smpmData.Lmq

Lrsigmad=smpmData.Lrsigmad

Lrsigmaq=smpmData.Lrsigmaq

Rrd=smpmData.Rrd

Rrq=smpmData.Rrq

TrRef=smpmData.TrRef

alpha20r=smpmData.alpha20r

permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters
smpmData

Present


currentQuasiRMSSensor

Present




Equations in Version 3.2 Equations in Version 3.2.1

...
connect(angleSensor.phi, currentController.phi);
connect(signalCurrent.plug_n, terminalBox.plugSupply);

connect(id.y, currentController.id_rms);
...
connect(torqueSensor.flange_b, inertiaLoad.flange_a);

connect(signalCurrent.plug_n, currentQuasiRMSSensor.plug_p);
connect(currentQuasiRMSSensor.plug_n, voltageQuasiRMSSensor.plug_p);



model Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_Generator

Component
Version 3.2
Version 3.2.1
smee
useSupport=true


p=2

Jr=0.29

Js=0.29

useDamperCage=true

statorCoreParameters(VRef=100)

strayLoadParameters(IRef=100)

brushParameters(ILinear=0.01)

TsOperational=293.15

ir(fixed=true)

TrOperational=293.15

TeOperational=293.15
rotorDisplacementAngle
useSupport=true

mechanicalPowerSensor
useSupport=true

smeeData

SNominal=30e3

VsNominal=100

fsNominal=50

IeOpenCircuit=10

x0=0.1

xd=1.6

xq=1.6

xdTransient=0.1375

xdSubtransient=0.121428571

xqSubtransient=0.148387097

Ta=0.014171268

Td0Transient=0.261177343

Td0Subtransient=0.006963029

Tq0Subtransient=0.123345081

alpha20s(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

alpha20r(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

alpha20e(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

TsSpecification=293.15

TsRef=293.15

TrSpecification=293.15

TrRef=293.15

TeSpecification=293.15

TeRef=293.15
fixed
Present





Equations in Version 3.2 Equations in Version 3.2.1
connect(rotorDisplacementAngle.plug_n, smee.plug_sn); initial equation

smee.is[1:2]=zeros(2);

equation
 &nbspconnect(rotorDisplacementAngle.plug_n, smee.plug_sn);
connect(rotorDisplacementAngle.plug_p, smee.plug_sp);
...
connect(terminalBox.plug_sp, smee.plug_sp);
connect(constantSpeed.support, fixed.flange); connect(smee.flange, rotorDisplacementAngle.flange);
connect(mechanicalPowerSensor.support, fixed.flange); connect(smee.flange, mechanicalPowerSensor.flange_a);
connect(smee.support, fixed.flange);
connect(rotorDisplacementAngle.support, smee.support);
connect(smee.flange, rotorDisplacementAngle.flange);
connect(smee.flange, mechanicalPowerSensor.flange_a);




model Electrical.Machines.Examples.SynchronousInductionMachines.SMEE_LoadDump

Component
Version 3.2
Version 3.2.1
smee

p=2

Jr=0.29

Js=0.29

statorCoreParameters(VRef=100)

strayLoadParameters(IRef=100)

brushParameters(ILinear=0.01)

TsOperational=293.15

ir(fixed=true)

TrOperational=293.15

TeOperational=293.15
smeeData

SNominal=30e3

VsNominal=100

fsNominal=50

IeOpenCircuit=10

x0=0.1

xd=1.6

xq=1.6

xdTransient=0.1375

xdSubtransient=0.121428571

xqSubtransient=0.148387097

Ta=0.014171268

Td0Transient=0.261177343

Td0Subtransient=0.006963029

Tq0Subtransient=0.123345081

TsSpecification=293.15

TsRef=293.15

alpha20s(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

TrSpecification=293.15

TrRef=293.15

alpha20r(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

TeSpecification=293.15

TeRef=293.15

alpha20e(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero
setPointGain
k=smeeData.VsNominal/wNominal
k=(smeeData.VsNominal/wNominal)/unitMagneticFlux
voltageController

initType=Modelica.Blocks.Types.InitPID.InitialState

Td=0.001
switch

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)

V0=fill(30, m)

dVdt=fill(10e3, m)

Vmax=fill(60, m)
unitMagneticFlux

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(terminalBox.plug_sn, smee.plug_sn); initial equation

smee.idq_sr=zeros(2);
smee.ie=0;

equation
 &nbspconnect(terminalBox.plug_sn, smee.plug_sn);
connect(terminalBox.plug_sp, smee.plug_sp);
...



model Electrical.Machines.Examples.DCMachines.DCPM_Start

Component
Version 3.2
Version 3.2.1
dcpm

VaNominal=dcpmData.VaNominal

IaNominal=dcpmData.IaNominal

wNominal=dcpmData.wNominal

TaNominal=dcpmData.TaNominal

Ra=dcpmData.Ra

TaRef=dcpmData.TaRef

La=dcpmData.La

Jr=dcpmData.Jr

useSupport=false

Js=dcpmData.Js

frictionParameters=dcpmData.frictionParameters

coreParameters=dcpmData.coreParameters

strayLoadParameters=dcpmData.strayLoadParameters

brushParameters=dcpmData.brushParameters

TaOperational=293.15

alpha20a=dcpmData.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)
loadTorqueStep

offsetTorque=0
dcpmData

Present





model Electrical.Machines.Examples.DCMachines.DCEE_Start

Component
Version 3.2
Version 3.2.1
dcee

VaNominal=dceeData.VaNominal

IaNominal=dceeData.IaNominal

wNominal=dceeData.wNominal

TaNominal=dceeData.TaNominal

Ra=dceeData.Ra

TaRef=dceeData.TaRef

La=dceeData.La

Jr=dceeData.Jr

useSupport=false

Js=dceeData.Js

frictionParameters=dceeData.frictionParameters

coreParameters=dceeData.coreParameters

strayLoadParameters=dceeData.strayLoadParameters

brushParameters=dceeData.brushParameters

IeNominal=dceeData.IeNominal

Re=dceeData.Re

TeRef=dceeData.TeRef

Le=dceeData.Le

sigmae=dceeData.sigmae

TaOperational=293.15

alpha20a=dceeData.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)

alpha20e=dceeData.alpha20e

TeOperational=293.15

ie(fixed=true)
loadTorqueStep

offsetTorque=0
dceeData

Present





model Electrical.Machines.Examples.DCMachines.DCSE_Start

Component
Version 3.2
Version 3.2.1
dcse

VaNominal=dcseData.VaNominal

IaNominal=dcseData.IaNominal

wNominal=dcseData.wNominal

TaNominal=dcseData.TaNominal

TeNominal=dcseData.TeNominal

Ra=dcseData.Ra

TaRef=dcseData.TaRef

La=dcseData.La

Jr=dcseData.Jr

useSupport=false

Js=dcseData.Js

frictionParameters=dcseData.frictionParameters

coreParameters=dcseData.coreParameters

strayLoadParameters=dcseData.strayLoadParameters

brushParameters=dcseData.brushParameters

Re=dcseData.Re

TeRef=dcseData.TeRef

Le=dcseData.Le

sigmae=dcseData.sigmae

TaOperational=293.15

alpha20a=dcseData.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)

alpha20e=dcseData.alpha20e

TeOperational=293.15
dcseData

Present





model Electrical.Machines.Examples.DCMachines.DCSE_SinglePhase

Component
Version 3.2
Version 3.2.1
dcse

VaNominal=dcseData.VaNominal

IaNominal=dcseData.IaNominal

wNominal=dcseData.wNominal

TaNominal=dcseData.TaNominal

TeNominal=dcseData.TeNominal

Ra=dcseData.Ra

TaRef=dcseData.TaRef

La=dcseData.La

Jr=dcseData.Jr

useSupport=false

Js=dcseData.Js

frictionParameters=dcseData.frictionParameters

coreParameters=dcseData.coreParameters

strayLoadParameters=dcseData.strayLoadParameters

brushParameters=dcseData.brushParameters

Re=dcseData.Re

TeRef=dcseData.TeRef

Le=dcseData.Le

sigmae=dcseData.sigmae

TaOperational=293.15

alpha20a=dcseData.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)

alpha20e=dcseData.alpha20e

TeOperational=293.15
dcseData

Present





model Electrical.Machines.Examples.DCMachines.DCPM_Temperature

Component
Version 3.2
Version 3.2.1
dcpm
TaNominal=353.15
TaNominal=dcpmData.TaNominal
TaRef=353.15
TaRef=dcpmData.TaRef
alpha20a(displayUnit="1/K") = Machines.Thermal.Constants.alpha20Copper


VaNominal=dcpmData.VaNominal

IaNominal=dcpmData.IaNominal

wNominal=dcpmData.wNominal

Ra=dcpmData.Ra

La=dcpmData.La

Jr=dcpmData.Jr

useSupport=false

Js=dcpmData.Js

frictionParameters=dcpmData.frictionParameters

coreParameters=dcpmData.coreParameters

strayLoadParameters=dcpmData.strayLoadParameters

brushParameters=dcpmData.brushParameters

phiMechanical(fixed=true)

ia(fixed=true)

TaOperational=293.15

alpha20a=dcpmData.alpha20a
thermalAmbientDCPM

Ta=293.15

Tpm=293.15
dcpmData

Present





model Electrical.Machines.Examples.DCMachines.DCPM_Cooling

Component
Version 3.2
Version 3.2.1
dcpm
TaNominal=353.15
TaNominal=dcpmData.TaNominal
TaRef=353.15
TaRef=dcpmData.TaRef
alpha20a(displayUnit="1/K") = Machines.Thermal.Constants.alpha20Copper


VaNominal=dcpmData.VaNominal

IaNominal=dcpmData.IaNominal

wNominal=dcpmData.wNominal

Ra=dcpmData.Ra

La=dcpmData.La

Jr=dcpmData.Jr

useSupport=false

Js=dcpmData.Js

frictionParameters=dcpmData.frictionParameters

coreParameters=dcpmData.coreParameters

strayLoadParameters=dcpmData.strayLoadParameters

brushParameters=dcpmData.brushParameters

phiMechanical(fixed=true)

ia(fixed=true)

TaOperational=293.15

alpha20a=dcpmData.alpha20a
inlet

constantAmbientPressure=0
volumeFlow

m=0
cooling

m=0

h_g=0

V_flowLaminar=0.1

dpLaminar(displayUnit="Pa") = 0.1

V_flowNominal=1

dpNominal(displayUnit="Pa") = 1

T0fixed=false
outlet

constantAmbientPressure=0
dcpmData

Present





model Electrical.Machines.Examples.DCMachines.DCPM_QuasiStationary

Component
Version 3.2
Version 3.2.1
dcpm1
wMechanical(start=w0, fixed=true)

alpha20a(displayUnit="1/K")


VaNominal=dcpmData.VaNominal

IaNominal=dcpmData.IaNominal

wNominal=dcpmData.wNominal

TaNominal=dcpmData.TaNominal

Ra=dcpmData.Ra

TaRef=dcpmData.TaRef

La=dcpmData.La

Jr=dcpmData.Jr

useSupport=false

Js=dcpmData.Js

frictionParameters=dcpmData.frictionParameters

coreParameters=dcpmData.coreParameters

strayLoadParameters=dcpmData.strayLoadParameters

brushParameters=dcpmData.brushParameters

phiMechanical(fixed=true)

ia(fixed=true)

TaOperational=293.15

alpha20a=dcpmData.alpha20a

wMechanical(fixed=true, start=w0)
dcpm2
wMechanical(start=w0, fixed=true)

alpha20a(displayUnit="1/K")


VaNominal=dcpmData.VaNominal

IaNominal=dcpmData.IaNominal

wNominal=dcpmData.wNominal

TaNominal=dcpmData.TaNominal

Ra=dcpmData.Ra

TaRef=dcpmData.TaRef

La=dcpmData.La

Jr=dcpmData.Jr

useSupport=false

Js=dcpmData.Js

frictionParameters=dcpmData.frictionParameters

coreParameters=dcpmData.coreParameters

strayLoadParameters=dcpmData.strayLoadParameters

brushParameters=dcpmData.brushParameters

phiMechanical(fixed=true)

wMechanical(fixed=true, start=w0)

TaOperational=293.15

alpha20a=dcpmData.alpha20a
dcpmData

Present





model Electrical.Machines.Examples.DCMachines.DCPM_withLosses

Component
Version 3.2
Version 3.2.1
dcpm1

VaNominal=dcpmData1.VaNominal

IaNominal=dcpmData1.IaNominal

wNominal=dcpmData1.wNominal

TaNominal=dcpmData1.TaNominal

Ra=dcpmData1.Ra

TaRef=dcpmData1.TaRef

La=dcpmData1.La

Jr=dcpmData1.Jr

useSupport=false

Js=dcpmData1.Js

frictionParameters=dcpmData1.frictionParameters

coreParameters=dcpmData1.coreParameters

strayLoadParameters=dcpmData1.strayLoadParameters

brushParameters=dcpmData1.brushParameters

TaOperational=293.15

alpha20a=dcpmData1.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)
dcpm2
wNominal=148.44025288212
wNominal=dcpmData2.wNominal
TaNominal=368.15
TaNominal=dcpmData2.TaNominal
Ra=0.03864
Ra=dcpmData2.Ra
TaRef=293.15
TaRef=dcpmData2.TaRef
frictionParameters(PRef=100)

alpha20a(displayUnit="1/K") = Modelica_3_2.Electrical.Machines.Thermal.Constants.alpha20Copper

coreParameters(PRef=200)

strayLoadParameters(PRef=50)

brushParameters(V=0.5)


VaNominal=dcpmData2.VaNominal

IaNominal=dcpmData2.IaNominal

La=dcpmData2.La

Jr=dcpmData2.Jr

useSupport=false

Js=dcpmData2.Js

frictionParameters=dcpmData2.frictionParameters

coreParameters=dcpmData2.coreParameters

strayLoadParameters=dcpmData2.strayLoadParameters

brushParameters=dcpmData2.brushParameters

alpha20a=dcpmData2.alpha20a

phiMechanical(fixed=true)

wMechanical(fixed=true)

ia(fixed=true)

core(v(start=0))
dcpmData1

Present


dcpmData2

Present





model Electrical.Machines.Examples.Transformers.TransformerTestbench

Component
Version 3.2
Version 3.2.1
transformerData

parameter

f=50

V1=100

V2=100

SNominal=30E3

v_sc=0.05

P_sc=300
transformer

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15


Equations in Version 3.2 Equations in Version 3.2.1
connect(starS.pin_n, groundS.p); initial equation

transformer.i2[1:2]=zeros(2);

equation
 &nbspconnect(starS.pin_n, groundS.p);
connect(source.plug_n, starS.plug_p);
...



model Electrical.Machines.Examples.Transformers.AsymmetricalLoad

Component
Version 3.2
Version 3.2.1
transformerData

parameter

f=50

V1=100

V2=100

SNominal=30E3

v_sc=0.05

P_sc=300
transformer

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15


Equations in Version 3.2 Equations in Version 3.2.1
connect(starS.pin_n, groundS.p); initial equation

transformer.i2[1]=0;

equation
 &nbspconnect(starS.pin_n, groundS.p);
connect(source.plug_n, starS.plug_p);
...



model Electrical.Machines.Examples.Transformers.Rectifier6pulse

Component
Version 3.2
Version 3.2.1
diode1

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)

Vknee=fill(0, m)
diode2

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)

Vknee=fill(0, m)
transformerData1

parameter

f=50

V1=100

V2=100

SNominal=30E3

v_sc=0.05

P_sc=300
transformer1

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15


Equations in Version 3.2 Equations in Version 3.2.1
connect(cDC1.n, cDC2.p); initial equation

cDC1.v=VC0/2;
cDC2.v=VC0/2;
transformer1.i2[1:2]=zeros(2);

equation
 &nbspconnect(cDC1.n, cDC2.p);
connect(cDC1.n, groundDC.p);
...



model Electrical.Machines.Examples.Transformers.Rectifier12pulse

Component
Version 3.2
Version 3.2.1
diode3

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)

Vknee=fill(0, m)
diode4

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)

Vknee=fill(0, m)
transformer2

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15
transformerData2

parameter

f=50

V1=100

V2=100

SNominal=30E3

v_sc=0.05

P_sc=300


Equations in Version 3.2 Equations in Version 3.2.1
connect(diode3.plug_n, star3.plug_p); initial equation

transformer2.core.plug_p1.pin[1:3].i=zeros(3);

equation
 &nbspconnect(diode3.plug_n, star3.plug_p);
connect(diode4.plug_p, star4.plug_p);
...



model Electrical.Machines.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage

Component
Version 3.2
Version 3.2.1
ir

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(airGapS.spacePhasor_r, squirrelCageR.spacePhasor_r);
connect(airGapS.support, internalSupport);

connect(airGapS.flange, inertiaRotor.flange_a);
...
connect(squirrelCageR.heatPort, internalThermalPort.heatPortRotorWinding);

connect(airGapS.support, internalSupport);



model Electrical.Machines.BasicMachines.AsynchronousInductionMachines.AIM_SlipRing

Component
Version 3.2
Version 3.2.1
lrsigma
final L=fill(Lrsigma, 2)
final L=fill(internalTurnsRatio^2*Lrsigma, 2)
lrzero
final L=Lrzero
final L=internalTurnsRatio^2*Lrzero
rotorCore

final useHeatPort=true

final turnsRatio=internalTurnsRatio


Equations in Version 3.2 Equations in Version 3.2.1
connect(airGapS.support, internalSupport);
connect(airGapS.flange, inertiaRotor.flange_a);
connect(plug_rn, plug_rn);

connect(lssigma.spacePhasor_b, airGapS.spacePhasor_s);
...
connect(plug_rp, rr.plug_p);

connect(airGapS.flange, inertiaRotor.flange_a);
connect(fixed.flange, internalSupport);
connect(internalSupport, airGapS.support);



model Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_PermanentMagnet

Component
Version 3.2
Version 3.2.1
idq_dr
SIunits.Current
Blocks.Interfaces.RealOutput
output

permanentMagnet
Electrical.Machines.BasicMachines.Components.PermanentMagnet
Electrical.Machines.BasicMachines.Components.PermanentMagnetWithLosses
heatFlowSensorDamperCage
Present



ir

Present
permanentMagnetLossParameters

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1

connect(ir, damperCage.i);
connect(idq_dr, damperCage.i);
connect(damperCageLossPower, damperCage.lossPower);
if not useDamperCage then
damperCageLossPower=0;
end if;
connect(airGapR.spacePhasor_r, damperCage.spacePhasor_r);
...
connect(airGapR.support, internalSupport);

connect(lssigma.spacePhasor_b, airGapR.spacePhasor_s);
connect(airGapR.flange, inertiaRotor.flange_a);
connect(lssigma.spacePhasor_b, airGapR.spacePhasor_s); connect(permanentMagnet.heatPort, internalThermalPort.heatPortPermanentMagnet);
connect(damperCage.heatPort, heatFlowSensorDamperCage.port_a); connect(permanentMagnet.flange, inertiaRotor.flange_b);
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding); connect(damperCage.heatPort, internalThermalPort.heatPortRotorWinding);

connect(internalSupport, permanentMagnet.support);



model Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_ElectricalExcited

Component
Version 3.2
Version 3.2.1
idq_dr
SIunits.Current
Blocks.Interfaces.RealOutput
output

brush

final useHeatPort=true
heatFlowSensorDamperCage
Present



ir

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1

connect(ir, damperCage.i);
connect(idq_dr, damperCage.i);
connect(damperCageLossPower, damperCage.lossPower);
if not useDamperCage then
damperCageLossPower=0;
end if;
connect(airGapR.spacePhasor_r, damperCage.spacePhasor_r);
connect(airGapR.spacePhasor_r, electricalExcitation.spacePhasor_r);
connect(airGapR.support, internalSupport);
connect(airGapR.flange, inertiaRotor.flange_a);

connect(electricalExcitation.pin_en, pin_en);
...
connect(re.heatPort, internalThermalPort.heatPortExcitation);
connect(damperCage.heatPort, heatFlowSensorDamperCage.port_a); connect(airGapR.flange, inertiaRotor.flange_a);
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding); connect(airGapR.support, internalSupport);

connect(damperCage.heatPort, internalThermalPort.heatPortRotorWinding);



model Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_ReluctanceRotor

Component
Version 3.2
Version 3.2.1
heatFlowSensorDamperCage
Present



ir

Present
idq_dr

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1

connect(ir, damperCage.i);
connect(idq_dr, damperCage.i);
connect(damperCageLossPower, damperCage.lossPower);
if not useDamperCage then
damperCageLossPower=0;
end if;
connect(airGapR.spacePhasor_r, damperCage.spacePhasor_r);
connect(airGapR.support, internalSupport);

connect(lssigma.spacePhasor_b, airGapR.spacePhasor_s);
connect(airGapR.flange, inertiaRotor.flange_a);
connect(lssigma.spacePhasor_b, airGapR.spacePhasor_s); connect(damperCage.heatPort, internalThermalPort.heatPortRotorWinding);
connect(damperCage.heatPort, heatFlowSensorDamperCage.port_a);
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding);




model Electrical.Machines.BasicMachines.DCMachines.DC_ElectricalExcited

Component
Version 3.2
Version 3.2.1
ie

start=0



model Electrical.Machines.BasicMachines.Components.DamperCage

Component
Version 3.2
Version 3.2.1
i

Present
lossPower

Present



model Electrical.Machines.Sensors.VoltageQuasiRMSSensor

Component
Version 3.2
Version 3.2.1
V

final quantity="ElectricPotential"

final unit="V"



model Electrical.Machines.Sensors.CurrentQuasiRMSSensor

Component
Version 3.2
Version 3.2.1
I

final quantity="ElectricCurrent"

final unit="A"



model Electrical.Machines.Sensors.ElectricalPowerSensor

Component
Version 3.2
Version 3.2.1
P

final quantity="Power"

final unit="W"
Q

final quantity="Power"

final unit="var"



model Electrical.Machines.Sensors.MechanicalPowerSensor

Component
Version 3.2
Version 3.2.1
P

final quantity="Power"

final unit="W"


Equations in Version 3.2 Equations in Version 3.2.1

...
connect(torqueSensor.flange_b, flange_b);
connect(product.y, P);
connect(torqueSensor.tau, product.u2);

connect(flange_a, relSpeedSensor.flange_b);
connect(relSpeedSensor.w_rel, product.u1);

connect(relSpeedSensor.flange_a, fixed.flange);
connect(relSpeedSensor.flange_a, support);

connect(relSpeedSensor.w_rel, product.u1);
connect(torqueSensor.tau, product.u2);
connect(product.y, P);



model Electrical.Machines.Sensors.RotorDisplacementAngle

Component
Version 3.2
Version 3.2.1
rotorDisplacementAngle

final quantity="Angle"

final unit="rad"


Equations in Version 3.2 Equations in Version 3.2.1
connect(constant_.y, add.u2);
connect(add.y, rotatorVS2R.angle);
connect(ToSpacePhasorVS.y, rotatorVS2R.u);
connect(rotatorVS2R.y, ToPolarVSR.u);
connect(ToPolarVSR.y, deMultiplex2.u);

connect(plug_p, VoltageSensor1.plug_p);
connect(plug_n, VoltageSensor1.plug_n);
connect(VoltageSensor1.v, ToSpacePhasorVS.u);
connect(deMultiplex2.y2[1], rotorDisplacementAngle);
connect(relativeAngleSensor.phi_rel, add.u1);

connect(relativeAngleSensor.flange_b, flange);
...
connect(relativeAngleSensor.flange_a, fixed.flange);

connect(relativeAngleSensor.phi_rel, add.u1);
connect(constant_.y, add.u2);
connect(VoltageSensor1.v, ToSpacePhasorVS.u);
connect(ToSpacePhasorVS.y, rotatorVS2R.u);
connect(rotatorVS2R.y, ToPolarVSR.u);
connect(add.y, rotatorVS2R.angle);
connect(ToPolarVSR.y, deMultiplex2.u);
connect(deMultiplex2.y2[1], rotorDisplacementAngle);



function Electrical.Machines.SpacePhasors.Functions.ToSpacePhasor

Component
Version 3.2
Version 3.2.1
m

protected
pi
Real
SIunits.Angle

protected



function Electrical.Machines.SpacePhasors.Functions.FromSpacePhasor

Component
Version 3.2
Version 3.2.1
m

protected
pi
Real
SIunits.Angle

protected



function Electrical.Machines.SpacePhasors.Functions.ToPolar

Component
Version 3.2
Version 3.2.1
small

protected



function Electrical.Machines.SpacePhasors.Functions.FromPolar

Component
Version 3.2
Version 3.2.1
pi
Real
SIunits.Angle

protected
small

protected



function Electrical.Machines.SpacePhasors.Functions.quasiRMS

Component
Version 3.2
Version 3.2.1
m

protected
pi
Real
SIunits.Angle

protected



function Electrical.Machines.SpacePhasors.Functions.activePower

Component
Version 3.2
Version 3.2.1
m

protected
pi

Present



record Electrical.Machines.Losses.FrictionParameters

Component
Version 3.2
Version 3.2.1
PRef
start=0


=0



record Electrical.Machines.Losses.BrushParameters

Component
Version 3.2
Version 3.2.1
V
start=0


=0



record Electrical.Machines.Losses.StrayLoadParameters

Component
Version 3.2
Version 3.2.1
PRef
start=0


=0



record Electrical.Machines.Losses.CoreParameters

Component
Version 3.2
Version 3.2.1
PRef
start=0


=0



model Electrical.Machines.Losses.Friction

Component
Version 3.2
Version 3.2.1
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = tau*w; lossPower = -tau*w;



model Electrical.Machines.Losses.InductionMachines.Brush

Component
Version 3.2
Version 3.2.1
brush

each final useHeatPort=true
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
for j in 1:m loop
connect(brush[j].heatPort, heatPort); connect(brush[j].heatPort, internalHeatPort);
end for;



model Electrical.Machines.Losses.InductionMachines.StrayLoad

Component
Version 3.2
Version 3.2.1
iRMS
=Machines.SpacePhasors.Functions.quasiRMS(i)
=quasiRMS(i)
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = tau*w; lossPower = -tau*w;



model Electrical.Machines.Losses.InductionMachines.Core

Component
Version 3.2
Version 3.2.1
coreParameters
final m=3
final m=m
heatPort
Present



m

Present
turnsRatio

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = -3/2*(+spacePhasor.v_[1]*spacePhasor.i_[1]+spacePhasor.v_[2]*spacePhasor.i_[2]); lossPower = 3/2*(+spacePhasor.v_[1]*spacePhasor.i_[1]+spacePhasor.v_[2]*spacePhasor.i_[2]);



model Electrical.Machines.Losses.DCMachines.Brush

Component
Version 3.2
Version 3.2.1
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = -v*i; lossPower = v*i;



model Electrical.Machines.Losses.DCMachines.StrayLoad

Component
Version 3.2
Version 3.2.1
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = tau*w; lossPower = -tau*w;



model Electrical.Machines.Losses.DCMachines.Core

Component
Version 3.2
Version 3.2.1
heatPort
Present





Equations in Version 3.2 Equations in Version 3.2.1

...
end if;
heatPort.Q_flow = -v*i; lossPower = v*i;



model Electrical.Machines.Thermal.AsynchronousInductionMachines.ThermalAmbientAIMS

Component
Version 3.2
Version 3.2.1
thermalCollectorRotor
m=thermalPort.m


final m=mr
mr

Present



model Electrical.Machines.Interfaces.PartialBasicMachine

Component
Version 3.2
Version 3.2.1
phiMechanical

start=0
wMechanical

start=0



model Electrical.Machines.Interfaces.PartialBasicInductionMachine

Component
Version 3.2
Version 3.2.1
strayLoadParameters
wRef(start=2*pi*fsNominal/p)


wRef=2*pi*fsNominal/p
powerBalance
final lossPowerStatorWinding=-sum(rs.heatPort.Q_flow)
final lossPowerStatorWinding=sum(rs.resistor.LossPower)
final lossPowerStatorCore=-statorCore.heatPort.Q_flow
final lossPowerStatorCore=statorCore.lossPower
final lossPowerStrayLoad=-strayLoad.heatPort.Q_flow
final lossPowerStrayLoad=strayLoad.lossPower
final lossPowerFriction=-friction.heatPort.Q_flow
final lossPowerFriction=friction.lossPower
statorCore

final useHeatPort=true

final turnsRatio=1
strayLoad

final useHeatPort=true

final m=m


Equations in Version 3.2 Equations in Version 3.2.1

...
connect(strayLoad.plug_p, plug_sp);
connect(strayLoad.flange, inertiaRotor.flange_b);

connect(strayLoad.support, internalSupport);
...
connect(friction.heatPort, internalThermalPort.heatPortFriction);

connect(strayLoad.flange, inertiaRotor.flange_b);



connector Electrical.Machines.Interfaces.InductionMachines.PartialThermalPortInductionMachines

Component
Version 3.2
Version 3.2.1
connector
partial




model Electrical.Machines.Interfaces.InductionMachines.PartialThermalAmbientInductionMachines

Component
Version 3.2
Version 3.2.1
model
partial




record Electrical.Machines.Interfaces.InductionMachines.PartialPowerBalanceInductionMachines

Component
Version 3.2
Version 3.2.1
record
partial

powerStator

=0
powerMechanical

=0
powerInertiaStator

=0
powerInertiaRotor

=0
lossPowerTotal

=0
lossPowerStatorWinding

=0
lossPowerStatorCore

=0
lossPowerRotorCore

=0
lossPowerStrayLoad

=0
lossPowerFriction

=0



connector Electrical.Machines.Interfaces.InductionMachines.ThermalPortAIMS

Component
Version 3.2
Version 3.2.1
mr

Present



model Electrical.Machines.Interfaces.PartialBasicDCMachine

Component
Version 3.2
Version 3.2.1
powerBalance
final lossPowerArmature=-ra.heatPort.Q_flow
final lossPowerArmature=ra.LossPower
final lossPowerCore=-core.heatPort.Q_flow
final lossPowerCore=core.lossPower
final lossPowerStrayLoad=-strayLoad.heatPort.Q_flow
final lossPowerStrayLoad=strayLoad.lossPower
final lossPowerFriction=-friction.heatPort.Q_flow
final lossPowerFriction=friction.lossPower
final lossPowerBrush=-brush.heatPort.Q_flow
final lossPowerBrush=brush.lossPower
ia

start=0
brush

final useHeatPort=true
core

final useHeatPort=true
strayLoad

final useHeatPort=true


Equations in Version 3.2 Equations in Version 3.2.1

...
connect(strayLoad.n, ra.p);
connect(strayLoad.flange, inertiaRotor.flange_b);

connect(strayLoad.support, internalSupport);
...
connect(ra.heatPort, internalThermalPort.heatPortArmature);

connect(inertiaRotor.flange_b, strayLoad.flange);



connector Electrical.Machines.Interfaces.DCMachines.PartialThermalPortDCMachines

Component
Version 3.2
Version 3.2.1
connector
partial




model Electrical.Machines.Interfaces.DCMachines.PartialThermalAmbientDCMachines

Component
Version 3.2
Version 3.2.1
model
partial




record Electrical.Machines.Interfaces.DCMachines.PartialPowerBalanceDCMachines

Component
Version 3.2
Version 3.2.1
record
partial

powerArmature

=0
powerMechanical

=0
powerInertiaStator

=0
powerInertiaRotor

=0
lossPowerTotal

=0
lossPowerArmature

=0
lossPowerCore

=0
lossPowerStrayLoad

=0
lossPowerFriction

=0
lossPowerBrush

=0



model Electrical.Machines.Interfaces.PartialBasicTransformer

Component
Version 3.2
Version 3.2.1
powerBalance
final lossPower1=-sum(r1.heatPort.Q_flow)
final lossPower1=sum(r1.resistor.LossPower)
final lossPower2=-sum(r2.heatPort.Q_flow)
final lossPower2=sum(r2.resistor.LossPower)



block Electrical.Machines.Utilities.VfController

Component
Version 3.2
Version 3.2.1
orientation

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
der(x) = 2*pi*u;
y = {amplitude*sin(x + BasePhase - (k - 1)*2/m*pi) for k in 1:m}; y = amplitude*sin(fill(x + BasePhase, m) + orientation);



model Electrical.Machines.Utilities.SwitchYD

Component
Version 3.2
Version 3.2.1
idealCommutingSwitch

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)



model Electrical.Machines.Utilities.SwitchedRheostat

Component
Version 3.2
Version 3.2.1
idealCommutingSwitch

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)



model Electrical.MultiPhase.Examples.TransformerYY

Component
Version 3.2
Version 3.2.1
idealTransformer

Lm1=fill(Lm, m)

n=fill(nT, m)
Lm

Present
nT

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(starS.pin_n, groundS.p); initial equation

transformerL.i[1:m-1]=zeros(m-1) "Y-connection";

equation
 &nbspconnect(starS.pin_n, groundS.p);
connect(starT1.pin_n,groundT1. p);
...



model Electrical.MultiPhase.Examples.TransformerYD

Component
Version 3.2
Version 3.2.1
idealTransformer

Lm1=fill(Lm, m)
Lm

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(groundS.p, starS.pin_n); initial equation

transformerL.i[1:m]=zeros(m) "D-connection";

equation
 &nbspconnect(groundS.p, starS.pin_n);
connect(groundT.p, starT.pin_n);
...



model Electrical.MultiPhase.Examples.Rectifier

Component
Version 3.2
Version 3.2.1
idealDiode1

Ron=fill(Ron, m)

Goff=fill(Goff, m)

Vknee=fill(Vknee, m)
idealDiode2

Ron=fill(Ron, m)

Goff=fill(Goff, m)

Vknee=fill(Vknee, m)
Ron

Present
Goff

Present
Vknee

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(cDC1.n, cDC2.p); initial equation

cDC1.v=0;
cDC2.v=0;
supplyL.i[1:m-1]=zeros(m-1) "Y-connection";

equation
 &nbspconnect(cDC1.n, cDC2.p);
connect(cDC1.n, groundDC.p);
...



model Electrical.MultiPhase.Basic.VariableResistor

Component
Version 3.2
Version 3.2.1
R

each unit="Ohm"



model Electrical.MultiPhase.Basic.VariableConductor

Component
Version 3.2
Version 3.2.1
G

each unit="S"



model Electrical.MultiPhase.Basic.VariableCapacitor

Component
Version 3.2
Version 3.2.1
C

each unit="F"



model Electrical.MultiPhase.Basic.VariableInductor

Component
Version 3.2
Version 3.2.1
L

each unit="H"



model Electrical.MultiPhase.Sensors.PowerSensor



Equations in Version 3.2 Equations in Version 3.2.1

...
connect(voltageSensor.plug_n, nv);

connect(voltageSensor.v, product.u1);
connect(currentSensor.i, product.u2);
connect(product.u1, voltageSensor.v);

connect(product.y, sum.u);
...



model Electrical.MultiPhase.Sources.SignalVoltage

Component
Version 3.2
Version 3.2.1
v

each unit="V"



model Electrical.MultiPhase.Sources.SineVoltage

Component
Version 3.2
Version 3.2.1
phase
=-{(j - 1)/m*2*Modelica_3_2.Constants.pi for j in 1:m}
=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)



model Electrical.MultiPhase.Sources.SignalCurrent

Component
Version 3.2
Version 3.2.1
i

each unit="A"



model Electrical.MultiPhase.Sources.SineCurrent

Component
Version 3.2
Version 3.2.1
phase
=-{(j - 1)/m*2*Modelica_3_2.Constants.pi for j in 1:m}
=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)



model Electrical.QuasiStationary.SinglePhase.Examples.SeriesResonance



Equations in Version 3.2 Equations in Version 3.2.1
connect(f.y, voltageSource.f); initial equation

voltageSource.pin_p.reference.gamma=0;

equation
 &nbspconnect(f.y, voltageSource.f);
connect(polarToComplex.y, voltageSource.V);
...



model Electrical.QuasiStationary.SinglePhase.Examples.ParallelResonance

Component
Version 3.2
Version 3.2.1
I

k=1


Equations in Version 3.2 Equations in Version 3.2.1
connect(currentSource.pin_n, resistor.pin_p); initial equation

currentSource.pin_p.reference.gamma=0;

equation
 &nbspconnect(currentSource.pin_n, resistor.pin_p);
connect(currentSource.pin_n, inductor.pin_p);
...



model Electrical.QuasiStationary.SinglePhase.Examples.Rectifier

Component
Version 3.2
Version 3.2.1
voltageQS

phi=0

i(re(start=0), im(start=0))


Equations in Version 3.2 Equations in Version 3.2.1
connect(voltageQS.pin_p, resistorQS.pin_p); initial equation

voltageQS.pin_p.reference.gamma=0;

equation
 &nbspconnect(voltageQS.pin_p, resistorQS.pin_p);
connect(voltageQS.pin_n, rectifierQS.pin_nQS);
...



model Electrical.QuasiStationary.SinglePhase.Basic.VariableResistor

Component
Version 3.2
Version 3.2.1
R_ref

unit="Ohm"



model Electrical.QuasiStationary.SinglePhase.Basic.VariableConductor

Component
Version 3.2
Version 3.2.1
G_ref

unit="S"



model Electrical.QuasiStationary.SinglePhase.Basic.VariableCapacitor

Component
Version 3.2
Version 3.2.1
C

unit="F"



model Electrical.QuasiStationary.SinglePhase.Basic.VariableInductor

Component
Version 3.2
Version 3.2.1
L

unit="H"



model Electrical.QuasiStationary.SinglePhase.Interfaces.TwoPin

Component
Version 3.2
Version 3.2.1
omega
=der(pin_p.reference.gamma)



Equations in Version 3.2 Equations in Version 3.2.1

...
pin_p.reference.gamma = pin_n.reference.gamma;

omega = der(pin_p.reference.gamma);
v = pin_p.v - pin_n.v;
i = pin_p.i;
v = pin_p.v - pin_n.v;




model Electrical.QuasiStationary.SinglePhase.Interfaces.AbsoluteSensor

Component
Version 3.2
Version 3.2.1
omega
=der(pin.reference.gamma)



Equations in Version 3.2 Equations in Version 3.2.1

omega = der(pin.reference.gamma);
pin.i = Complex(0);



model Electrical.QuasiStationary.SinglePhase.Utilities.GraetzRectifier

Component
Version 3.2
Version 3.2.1
idealDiode1

Vknee=0
idealDiode2

Vknee=0
idealDiode3

Vknee=0
idealDiode4

Vknee=0



model Electrical.QuasiStationary.Machines.Examples.TransformerTestbench

Component
Version 3.2
Version 3.2.1
RL
sizes= 3
sizes= -1
=fill(1/3, 3)
=fill(1/3, m)
source

m=m
starS

m=m
electricalPowerSensorS

m=m
currentSensorS

m=m
polarIS
sizes= 3
sizes= -1
voltageSensorS

m=m
polarVS
sizes= 3
sizes= -1
deltaS

m=m
voltageSensorL

m=m
polarVL
sizes= 3
sizes= -1
deltaL

m=m
currentSensorL

m=m
polarIL
sizes= 3
sizes= -1
electricalPowerSensorL

m=m
load

m=m
starL

m=m
transformerData

f=50

V1=100

V2=100

SNominal=30E3

v_sc=0.05

P_sc=300
transformer

T1Ref=293.15

alpha20_1(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T2Ref=293.15

alpha20_2(displayUnit="1/K") = Modelica.Electrical.Machines.Thermal.Constants.alpha20Zero

T1Operational=293.15

T2Operational=293.15
m

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(starS.pin_n, groundS.pin); initial equation

source.voltageSource.pin_p.reference.gamma=zeros(m);

equation
 &nbspconnect(starS.pin_n, groundS.pin);
connect(source.plug_n, starS.plug_p);
...



model Electrical.QuasiStationary.Machines.BasicMachines.Components.PartialCore

Component
Version 3.2
Version 3.2.1
v1
=plug_p1.pin.v - plug_n1.pin.v

i1
=plug_p1.pin.i

v2
=plug_p2.pin.v - plug_n2.pin.v

i2
=plug_p2.pin.i

v3
=plug_p3.pin.v - plug_n3.pin.v

i3
=plug_p3.pin.i

im
=i1 + i2/n12 + i3/n13



Equations in Version 3.2 Equations in Version 3.2.1

v1 = plug_p1.pin.v - plug_n1.pin.v;
i1 = plug_p1.pin.i;
v2 = plug_p2.pin.v - plug_n2.pin.v;
i2 = plug_p2.pin.i;
v3 = plug_p3.pin.v - plug_n3.pin.v;
i3 = plug_p3.pin.i;
im = i1 + i2/n12 + i3/n13;
Connections.branch(plug_p1.reference, plug_n1.reference);
...



model Electrical.QuasiStationary.Machines.Interfaces.PartialBasicTransformer

Component
Version 3.2
Version 3.2.1
powerBalance
final lossPower1=-sum(r1.heatPort.Q_flow)
final lossPower1=-sum(r1.resistor.LossPower)
final lossPower2=-sum(r2.heatPort.Q_flow)
final lossPower2=-sum(r2.resistor.LossPower)



model Electrical.QuasiStationary.MultiPhase.Examples.BalancingStar

Component
Version 3.2
Version 3.2.1
voltageSource
phi={-(j - 1)*2*Modelica_3_2.Constants.pi/m for j in 1:m}
phi=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)


Equations in Version 3.2 Equations in Version 3.2.1
connect(ground.pin, star.pin_n); initial equation

voltageSource.voltageSource.pin_p.reference.gamma=zeros(m);

equation
 &nbspconnect(ground.pin, star.pin_n);
connect(star.plug_p, voltageSource.plug_n);
...



model Electrical.QuasiStationary.MultiPhase.Examples.BalancingDelta

Component
Version 3.2
Version 3.2.1
voltageSource
phi={-(j - 1)*2*Modelica_3_2.Constants.pi/m for j in 1:m}
phi=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)


Equations in Version 3.2 Equations in Version 3.2.1
connect(ground.pin, star.pin_n); initial equation

voltageSource.voltageSource.pin_p.reference.gamma=zeros(m);

equation
 &nbspconnect(ground.pin, star.pin_n);
connect(star.plug_p, voltageSource.plug_n);
...



model Electrical.QuasiStationary.MultiPhase.Basic.Star

Component
Version 3.2
Version 3.2.1
plugToPins_p

final m=m



model Electrical.QuasiStationary.MultiPhase.Basic.Delta

Component
Version 3.2
Version 3.2.1
plugToPins_p

final m=m
plugToPins_n

final m=m



model Electrical.QuasiStationary.MultiPhase.Basic.VariableResistor

Component
Version 3.2
Version 3.2.1
R_ref

each unit="Ohm"



model Electrical.QuasiStationary.MultiPhase.Basic.VariableConductor

Component
Version 3.2
Version 3.2.1
G_ref

each unit="S"



model Electrical.QuasiStationary.MultiPhase.Basic.VariableCapacitor

Component
Version 3.2
Version 3.2.1
C

each unit="F"



model Electrical.QuasiStationary.MultiPhase.Basic.VariableInductor

Component
Version 3.2
Version 3.2.1
L

each unit="H"



model Electrical.QuasiStationary.MultiPhase.Sensors.FrequencySensor

Component
Version 3.2
Version 3.2.1
potentialSensor
Present



plugToPins_p
Present



frequencySensor

Present


plugToPin_p

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(plug_p, plugToPins_p.plug_p); connect(plug_p, plugToPin_p.plug_p);
connect(plugToPins_p.pin_p, potentialSensor.pin); connect(plugToPin_p.pin_p, frequencySensor.pin);
connect(potentialSensor.y, y); connect(frequencySensor.y, y);



model Electrical.QuasiStationary.MultiPhase.Sensors.PowerSensor



Equations in Version 3.2 Equations in Version 3.2.1

...
connect(sum.y, y);
connect(currentP, currentP);




model Electrical.QuasiStationary.MultiPhase.Sources.VoltageSource

Component
Version 3.2
Version 3.2.1
phi
={0 - (j - 1)*2*pi/m for j in 1:m}
=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)



model Electrical.QuasiStationary.MultiPhase.Sources.CurrentSource

Component
Version 3.2
Version 3.2.1
phi
={0 - (j - 1)*2*pi/m for j in 1:m}
=-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)



model Electrical.QuasiStationary.MultiPhase.Interfaces.TwoPlug

Component
Version 3.2
Version 3.2.1
omega
=der(plug_p.reference.gamma)



Equations in Version 3.2 Equations in Version 3.2.1

omega = der(plug_p.reference.gamma);
v = plug_p.pin.v - plug_n.pin.v;
...



model Electrical.QuasiStationary.MultiPhase.Interfaces.OnePort

Component
Version 3.2
Version 3.2.1
omega
=der(plug_p.reference.gamma)



Equations in Version 3.2 Equations in Version 3.2.1

...
plug_p.reference.gamma = plug_n.reference.gamma;

omega = der(plug_p.reference.gamma);
v = plug_p.pin.v - plug_n.pin.v;
...



model Electrical.QuasiStationary.MultiPhase.Interfaces.AbsoluteSensor

Component
Version 3.2
Version 3.2.1
omega
=der(plug_p.reference.gamma)



Equations in Version 3.2 Equations in Version 3.2.1

omega = der(plug_p.reference.gamma);



model Electrical.Spice3.Examples.Inverter

Component
Version 3.2
Version 3.2.1
mp

Sinternal(start=0)

IC=-1e40
mn

IC=-1e40



model Electrical.Spice3.Examples.InvertersApartRecord

Component
Version 3.2
Version 3.2.1
MPmos

CBD=0

CBS=0
MNmos

CBD=0

CBS=0
mp1

IC=-1e40
mn1

IC=-1e40
mp2

IC=-1e40
mn2

IC=-1e40
c1

IC=0

UIC=true
c2

IC=0

UIC=true



model Electrical.Spice3.Examples.InvertersExtendedModel

Component
Version 3.2
Version 3.2.1
mp1

IC=-1e40
mn1

IC=-1e40
mp2

IC=-1e40
mn2

IC=-1e40
c1

IC=0

UIC=true
c2

IC=0

UIC=true



model Electrical.Spice3.Examples.FourInverters

Component
Version 3.2
Version 3.2.1
modp

CBD=0

CBS=0
modn

CBD=0

CBS=0
mp1

IC=-1e40
mn1

IC=-1e40
mp2

IC=-1e40
mn2

IC=-1e40
mp3

IC=-1e40
mp4

IC=-1e40
mn3

IC=-1e40
mn4

IC=-1e40
c1

IC=0

UIC=true
c2

IC=0

UIC=true
c3

IC=0

UIC=true
c4

IC=0

UIC=true



model Electrical.Spice3.Examples.Nand

Component
Version 3.2
Version 3.2.1
mp1
modelcard(PHI=0.7)
modelcard(PHI=0.7, CBD=0, CBS=0)

Sinternal(start=0)

IC=-1e40
mp2
modelcard(PHI=0.7)
modelcard(PHI=0.7, CBD=0, CBS=0)

IC=-1e40
mn2

Dinternal(start=0)

modelcard(CBD=0, CBS=0)

IC=-1e40
mn1

modelcard(CBD=0, CBS=0)

IC=-1e40



model Electrical.Spice3.Examples.Nor

Component
Version 3.2
Version 3.2.1
mp1

Dinternal(start=0, fixed=true)

Sinternal(start=0, fixed=true)

IC=-1e40
mp2

Dinternal(start=0, fixed=true)

Sinternal(start=0, fixed=true)

IC=-1e40
mn1

Dinternal(start=0, fixed=true)

Sinternal(start=0, fixed=true)

IC=-1e40
mn2

Dinternal(start=0, fixed=true)

Sinternal(start=0, fixed=true)

IC=-1e40



model Electrical.Spice3.Examples.Graetz

Component
Version 3.2
Version 3.2.1
D1

IC=-1e40

SENS_AREA=false

pin(start=0, fixed=true)
D3

IC=-1e40

SENS_AREA=false

n(v(start=0, fixed=true))
D4

IC=-1e40

SENS_AREA=false
D2

IC=-1e40

SENS_AREA=false



model Electrical.Spice3.Examples.Oscillator

Component
Version 3.2
Version 3.2.1
T1

vbe(start=0, fixed=true)
T2

vbe(start=0, fixed=true)



model Electrical.Spice3.Basic.C_Capacitor

Component
Version 3.2
Version 3.2.1
vinternal
start=IC

fixed=UIC



Equations in Version 3.2 Equations in Version 3.2.1
vinternal = p.v - n.v; initial equation
i = C*der(vinternal); vinternal=IC;


equation
   &nbspvinternal = p.v - n.v;
i = C*der(vinternal);



model Electrical.Spice3.Basic.L_Inductor

Component
Version 3.2
Version 3.2.1
iinternal
start=IC

fixed=UIC

ICP

Present




Equations in Version 3.2 Equations in Version 3.2.1
iinternal = p.i; initial equation
L*der(iinternal) = v; if UIC then

iinternal = IC;
else
der(iinternal) = 0;
end if;

equation
 &nbspiinternal = p.i;
L*der(iinternal) = v + ICP.v;
ICP.L=L;
ICP.di = der(iinternal);



model Electrical.Spice3.Sources.V_pulse

Component
Version 3.2
Version 3.2.1
counter

fixed=true
counter2

fixed=true



model Electrical.Spice3.Sources.V_pwl

Component
Version 3.2
Version 3.2.1
tab

protected
table=table
table=tablenew
x

Present
tlast

Present
valuelast

Present
lastvaluematrix

Present
tablenew

Present



model Electrical.Spice3.Sources.I_pwl

Component
Version 3.2
Version 3.2.1
tab

protected
table=table
table=tablenew
x

Present
tlast

Present
valuelast

Present
lastvaluematrix

Present
tablenew

Present



model Electrical.Spice3.Internal.MOS

Component
Version 3.2
Version 3.2.1
C

constant
Dinternal
Real
SIunits.Voltage
Sinternal
Real
SIunits.Voltage
ird
Real
SIunits.Current
irs
Real
SIunits.Current
ibdgmin
Real
SIunits.Current
ibsgmin
Real
SIunits.Current
icBD
Real
SIunits.Current
icBS
Real
SIunits.Current
icGB
Real
SIunits.Current
icGS
Real
SIunits.Current
icGD
Real
SIunits.Current



record Electrical.Spice3.Internal.ModelcardMOS

Component
Version 3.2
Version 3.2.1
TNOM
=-1e40
=27



model Electrical.Spice3.Internal.MOS2

Component
Version 3.2
Version 3.2.1
TEMP
Real
SIunits.Temp_C
p
=Mos2.mos2RenameParameters(modelcard, C)
=Spice3.Internal.Mos2.mos2RenameParametersRevised(modelcard)
m
=Mos2.mos2RenameParametersDev(modelcard, mtype, W, L, AD, AS, PD, PS, NRD, NRS, OFF, IC, TEMP)
=Spice3.Internal.Mosfet.mosfetRenameParametersDev(W, L, AD, AS, PD, PS, NRD, NRS, OFF, IC_VDS, IC_VGS, IC_VBS, UIC, TEMP)
vp
=Mos2.mos2ModelLineParamsInitEquations(p, C, m_type)
=Spice3.Internal.Mos2.mos2ModelLineParamsInitEquations(p, C, m_type)
c1
=Mos.mos2CalcInitEquations(p, C, vp, m)
=Spice3.Internal.Mos.mos2CalcInitEquations(p, C, vp, m)
c2
=Mos.mos2CalcCalcTempDependencies(p, C, vp, m, c1, m_type)
=Spice3.Internal.Mos.mos2CalcCalcTempDependencies(p, C, vp, m, c1, m_type)
Dinternal
Real
SIunits.Voltage
Sinternal
Real
SIunits.Voltage
ird
Real
SIunits.Current
irs
Real
SIunits.Current
ibdgmin
Real
SIunits.Current
ibsgmin
Real
SIunits.Current
icBD
Real
SIunits.Current
icBS
Real
SIunits.Current
icGB
Real
SIunits.Current
icGS
Real
SIunits.Current
icGD
Real
SIunits.Current
IC_VDS

Present
IC_VGS

Present
IC_VBS

Present
UIC

Present
m1

Present
p1

Present
c11

Present
c22

Present
vBD

Present
vBS

Present
vGB

Present
vGD

Present
cc_obsolete

Present
p_obsolete

Present


Equations in Version 3.2 Equations in Version 3.2.1

...
assert( NRS <> 0, "NRS, length of source in squares, must not be zero");

cc = Spice3.Internal.Mos.mos2CalcNoBypassCodeRevised(
       &nbspm1,
       &nbspm_type,
       &nbspc22,
       &nbspp1,
       &nbspm_bInit,
        {G.v,B.v,Dinternal,Sinternal});
vBD = B.v - Dinternal;
vBS = B.v - Sinternal;
vGB = G.v - B.v;
vGD = G.v - Dinternal;
vGS = G.v - Sinternal;
ird * c11.m_drainResistance = (D.v - Dinternal);
irs * c11.m_sourceResistance = (S.v - Sinternal);
icBD = cc.cBD * der(vBD);
icBS = cc.cBS * der(vBS);
icGB = cc.cGB * der(vGB);
icGD = cc.cGD * der(vGD);
icGS = cc.cGS * der(vGS);
ibsgmin = Spice3.Internal.SpiceConstants.CKTgmin*(B.v -
     &nbspSinternal);
ibdgmin = Spice3.Internal.SpiceConstants.CKTgmin*(B.v -
     &nbspDinternal);
G.i = icGB + icGD + icGS;
B.i = cc.iBD + cc.iBS+ ibdgmin + ibsgmin -icGB + icBD + icBS;
D.i = ird;
S.i = irs;
0 = -ird + cc.idrain - cc.iBD - ibdgmin - icGD - icBD;
0 = -irs - cc.idrain - cc.iBS - ibsgmin - icGS - icBS;
vDS = D.v - S.v;
vGS = G.v - S.v; (cc_obsolete,qm) =
Spice3.Internal.Mos.mos2CalcNoBypassCode(
m,
m_type,
c2,
p,
C,
vp,
m_bInit,
{G.v,B.v,Dinternal,Sinternal});
(cc,qm) = Mos.mos2CalcNoBypassCode(
m,
m_type,
c2,
p,
C,
vp,
m_bInit,
{G.v,B.v,Dinternal,Sinternal});
icqmGB = 0;
ird * c1.m_drainResistance = (D.v - Dinternal); icqmGS = 0;
irs * p.m_sourceResistance = (S.v - Sinternal); icqmGD = 0;
icBD = cc.cBD * (der(B.v) - der(Dinternal));
icBS = cc.cBS * (der(B.v) - der(Sinternal));
icGB = cc.cGB * (der(G.v) - der(B.v));
icGD = cc.cGD * (der(G.v) - der(Dinternal));
icGS = cc.cGS * (der(G.v) - der(Sinternal));
icqmGB = qm.qm_capgb*(der(G.v) - der(B.v));
icqmGS = qm.qm_capgs*(der(G.v) - der(Sinternal));
icqmGD = qm.qm_capgd*(der(G.v) - der(Dinternal));
ibsgmin = SpiceConstants.CKTgmin*(B.v - Sinternal);
ibdgmin = SpiceConstants.CKTgmin*(B.v - Dinternal);
G.i = icGB + icGD + icGS + icqmGB + icqmGD + icqmGS;
B.i = cc.iBD + cc.iBS+ ibdgmin + ibsgmin -icGB + icBD + icBS - icqmGB;
D.i = ird;
S.i = irs;
0 = -ird + cc.idrain - cc.iBD - ibdgmin - icGD - icBD - icqmGD;
0 = -irs - cc.idrain - cc.iBS - ibsgmin - icGS - icBS - icqmGS;




record Electrical.Spice3.Internal.ModelcardMOS2

Component
Version 3.2
Version 3.2.1
NFS
Real
SIunits.Conversions.NonSIunits.PerArea_cm
XJ
Real
SIunits.Length
UCRIT
Real
Electrical.Spice3.Types.ElectricFieldStrength_cm
VMAX
Real
SIunits.Velocity



model Electrical.Spice3.Internal.BJT

Component
Version 3.2
Version 3.2.1
p
=Bjt3.bjtRenameParameters(modelcard, Con)
=Spice3.Internal.Bjt3.bjtRenameParameters(modelcard, Con, TBJT)
p1
=Bjt3.bjtRenameParametersDev(AREA, OFF, IC_VBE, IC_VCE, SENS_AREA)
=Spice3.Internal.Bjt3.bjtRenameParametersDev(AREA, OFF, IC_VBE, IC_VCE, SENS_AREA)
m
=Bjt3.bjtRenameParametersDevTemp(TEMP)
=Spice3.Internal.Bjt3.bjtRenameParametersDevTemp(TEMP)
vl
=Bjt3.bjtModelLineInitEquations(p)
=Spice3.Internal.Bjt3.bjtModelLineInitEquations(p)
c
=Bjt3.bjt3CalcTempDependencies(p1, p, m, vl)
=Spice3.Internal.Bjt3.bjt3CalcTempDependencies(p1, p, m, vl)
v
=Bjt3.bjtInitEquations(p1, p, vl)
=Spice3.Internal.Bjt3.bjtInitEquations(p1, p, vl)
p2
Present



Equations in Version 3.2 Equations in Version 3.2.1

...
vBC = B.v - C.v;
(cc,capbe,capbc,capbx) = Bjt3.bjtNoBypassCode(
m,
p1,
p,
c,
v,
vl,
{C.v,B.v,E.v,Cinternal,Binternal,Einternal},
m_bInit);
(cc,capbe,capbc,capbx) = Spice3.Internal.Bjt3.bjtNoBypassCode(
m,
p1,
p,
c,
v,
vl,
{C.v,B.v,E.v,Cinternal,Binternal,Einternal},
m_bInit);
icapbe = if (m_bInit) then 0.0 else capbe*(der(Binternal) - der(Einternal));
...
irb * p.m_baseResist = (B.v - Binternal);
ibcgmin = SpiceConstants.CKTgmin * (Binternal - Cinternal); ibcgmin = Spice3.Internal.SpiceConstants.CKTgmin*(
Binternal - Cinternal);
ibegmin = SpiceConstants.CKTgmin * (Binternal - Einternal); ibegmin = Spice3.Internal.SpiceConstants.CKTgmin*(
Binternal - Einternal);
C.i = irc;
...



model Electrical.Spice3.Internal.DIODE

Component
Version 3.2
Version 3.2.1
C

constant



model Electrical.Spice3.Internal.R_SEMI

Component
Version 3.2
Version 3.2.1
C

constant



record Electrical.Spice3.Internal.SpiceConstants

Component
Version 3.2
Version 3.2.1
CONSTboltz

Present



function Electrical.Spice3.Internal.Functions.energyGapDepTemp

Component
Version 3.2
Version 3.2.1
gap0
Present

coeff1
Present

coeff2
Present



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
ret := gap0 - (coeff1 * temp * temp) / (temp + coeff2); ret := Spice3.Internal.MaterialParameters.EnergyGapSi - (
Spice3.Internal.MaterialParameters.FirstBandCorrFactorSi
*temp*temp)/(temp + Spice3.Internal.MaterialParameters.SecondBandCorrFactorSi);




function Electrical.Spice3.Internal.Functions.junctionPotDepTemp



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
phibtemp := energyGapDepTemp( temp); phibtemp :=
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
phibtnom = energyGapDepTemp( tnom); phibtnom =
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
vt = SpiceConstants.CONSTKoverQ * temp; vt = Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp;
ret = (phi0 - phibtnom)*temp/tnom + phibtemp + vt*3*
   &nbspModelica_3_2.Math.log(tnom/temp);
...



function Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET

Component
Version 3.2
Version 3.2.1
ret
SIunits.Current
Real


Equations in Version 3.2 Equations in Version 3.2.1
algorithm
vt := SpiceConstants.CONSTKoverQ * temp; vt := Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp;
vtnom = SpiceConstants.CONSTKoverQ * tnom; vtnom = Spice3.Internal.SpiceConstants.CONSTKoverQ*
tnom;
energygaptnom = energyGapDepTemp( tnom); energygaptnom =
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
energygaptemp = energyGapDepTemp( temp); energygaptemp =
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
ret = satcur0 * exp( energygaptnom / vtnom - energygaptemp / vt);
...



function Electrical.Spice3.Internal.Functions.junctionVCrit



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
vte := SpiceConstants.CONSTKoverQ * temp * ncoeff; vte := Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp*ncoeff;
ret = vte*Modelica_3_2.Math.log(vte/(sqrt(2)*satcur));
...



function Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3

Component
Version 3.2
Version 3.2.1
phi0
Real
SIunits.Voltage
junctionpot
Real
SIunits.Voltage
phibtemp
Real
SIunits.Voltage
phibtnom
Real
SIunits.Voltage
vt
Real
SIunits.Voltage
vtnom
Real
SIunits.Voltage


Equations in Version 3.2 Equations in Version 3.2.1
algorithm
phibtemp := energyGapDepTemp( temp); phibtemp :=
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(temp);
phibtnom = energyGapDepTemp( tnom); phibtnom =
Modelica.Electrical.Spice3.Internal.Functions.energyGapDepTemp(tnom);
vt = SpiceConstants.CONSTKoverQ * temp; vt = Spice3.Internal.SpiceConstants.CONSTKoverQ * temp;
vtnom = SpiceConstants.CONSTKoverQ * tnom; vtnom = Spice3.Internal.SpiceConstants.CONSTKoverQ * tnom;
arg = -phibtemp/(2*Modelica_3_2.Constants.k*temp) + 1.1150877/(
Modelica_3_2.Constants.k*(2*SpiceConstants.REFTEMP));
arg = -phibtemp/(2*Modelica.Constants.k*temp) +
1.1150877/(Modelica.Constants.k*(2*Spice3.Internal.SpiceConstants.REFTEMP));
fact2 = temp/SpiceConstants.REFTEMP; fact2 = temp/Spice3.Internal.SpiceConstants.REFTEMP;
pbfact = -2*vt*(1.5*Modelica_3_2.Math.log(fact2) + SpiceConstants.CHARGE
*arg);
pbfact = -2*vt*(1.5*Modelica.Math.log(fact2)+Spice3.Internal.SpiceConstants.CHARGE*arg);
arg1 = -phibtnom/(Modelica_3_2.Constants.k*2*tnom) + 1.1150877/(2*
Modelica_3_2.Constants.k*SpiceConstants.REFTEMP);
arg1 = -phibtnom/(Modelica.Constants.k*2*tnom) +
1.1150877/(2*Modelica.Constants.k*Spice3.Internal.SpiceConstants.REFTEMP);
fact1 = tnom/SpiceConstants.REFTEMP; fact1 = tnom/Spice3.Internal.SpiceConstants.REFTEMP;
pbfact1 = -2*vtnom*(1.5*Modelica_3_2.Math.log(fact1) +
SpiceConstants.CHARGE*arg1);
pbfact1 = -2 * vtnom*(1.5*Modelica.Math.log(fact1)+Spice3.Internal.SpiceConstants.CHARGE*arg1);
pbo = (phi0-pbfact1)/fact1;
...
gmanew = (junctionpot-pbo)/pbo;
jucntioncap = cap0 /
(1+mcoeff* (400e-6*(tnom-SpiceConstants.REFTEMP)-gmaold)) *
(1+mcoeff* (400e-6*(temp-SpiceConstants.REFTEMP)-gmanew));
jucntioncap = cap0 /
(1+mcoeff* (400e-6*(tnom-Spice3.Internal.SpiceConstants.REFTEMP)-gmaold)) *
(1+mcoeff* (400e-6*(temp-Spice3.Internal.SpiceConstants.REFTEMP)-gmanew));




function Electrical.Spice3.Internal.Functions.junctionCapCoeffs

Component
Version 3.2
Version 3.2.1
phij
Real
SIunits.Voltage
f1
Real
SIunits.Voltage



function Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET



Equations in Version 3.2 Equations in Version 3.2.1

...
if (satcur > 1e-101) then
vte = SpiceConstants.CONSTKoverQ * temp * ncoeff; vte = Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp*ncoeff;
max_exponent = Modelica_3_2.Math.log(max_current/satcur);
...
out_current = out_cond * voltage;
out_cond = out_cond + SpiceConstants.CKTgmin; out_cond = out_cond + Spice3.Internal.SpiceConstants.CKTgmin;
elseif (voltage >= max_exponent * vte) then
...
evbd = exp( voltage / vte);
out_cond = satcur*evbd/vte + SpiceConstants.CKTgmin; out_cond = satcur*evbd/vte + Spice3.Internal.SpiceConstants.CKTgmin;
out_current = satcur *(evbd-1);
...



function Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
vt := SpiceConstants.CONSTKoverQ*temp; vt := Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp;
vte = emissioncoeff * vt;
...



function Electrical.Spice3.Internal.Functions.junctionVoltage23SPICE3



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
vt := SpiceConstants.CONSTKoverQ*temp; vt := Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp;
v23 = vb;
...
else
tol = SpiceConstants.CKTreltol*cbv; tol = Spice3.Internal.SpiceConstants.CKTreltol*
cbv;
v23 = vb - vt*Modelica_3_2.Math.log(1 + cbv/satcur);
...



function Electrical.Spice3.Internal.Functions.junction3



Equations in Version 3.2 Equations in Version 3.2.1

...
if (satcur > 1.0e-101) then
vte = SpiceConstants.CONSTKoverQ*temp*ncoeff; vte = Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp*ncoeff;
max_exponent = Modelica_3_2.Math.log(max_current/satcur);
...
evd = exp( voltage / vte);
current = satcur*(evd - 1) + SpiceConstants.CKTgmin*voltage; current = satcur*(evd - 1) + Spice3.Internal.SpiceConstants.CKTgmin
*voltage;
cond = satcur*evd/vte + SpiceConstants.CKTgmin; cond = satcur*evd/vte + Spice3.Internal.SpiceConstants.CKTgmin;
elseif (voltage >= -v23) then
arg = 3*vte/(voltage*SpiceConstants.CONSTe); arg = 3*vte/(voltage*Spice3.Internal.SpiceConstants.CONSTe);
arg = arg * arg * arg;
current = -1.*satcur*(1 + arg) + SpiceConstants.CKTgmin*voltage; current = -1.*satcur*(1 + arg) + Spice3.Internal.SpiceConstants.CKTgmin
*voltage;
cond = satcur*3*arg/voltage + SpiceConstants.CKTgmin; cond = satcur*3*arg/voltage + Spice3.Internal.SpiceConstants.CKTgmin;
else
...
evrev = exp( vr / vte);
current = -1.*satcur*evrev + SpiceConstants.CKTgmin*voltage; current = -1.*satcur*evrev + Spice3.Internal.SpiceConstants.CKTgmin
*voltage;
cond = satcur*evrev/vte + SpiceConstants.CKTgmin; cond = satcur*evrev/vte + Spice3.Internal.SpiceConstants.CKTgmin;
end if;
...



function Electrical.Spice3.Internal.Functions.junction2



Equations in Version 3.2 Equations in Version 3.2.1

...
if (satcur > 1.0e-101) then
vte = SpiceConstants.CONSTKoverQ*temp*ncoeff; vte = Spice3.Internal.SpiceConstants.CONSTKoverQ*
temp*ncoeff;
max_exponent = Modelica_3_2.Math.log(max_current/satcur);
...
evd = exp( voltage / vte);
current = satcur*(evd - 1) + SpiceConstants.CKTgmin*voltage; current = satcur*(evd - 1) + Spice3.Internal.SpiceConstants.CKTgmin
*voltage;
cond = satcur*evd/vte + SpiceConstants.CKTgmin; cond = satcur*evd/vte + Spice3.Internal.SpiceConstants.CKTgmin;
else
arg = 3*vte/(voltage*SpiceConstants.CONSTe); arg = 3*vte/(voltage*Spice3.Internal.SpiceConstants.CONSTe);
arg = arg * arg * arg;
current = -1*satcur*(1 + arg) + SpiceConstants.CKTgmin*voltage; current = -1*satcur*(1 + arg) + Spice3.Internal.SpiceConstants.CKTgmin
*voltage;
cond = satcur*3*arg/voltage + SpiceConstants.CKTgmin; cond = satcur*3*arg/voltage + Spice3.Internal.SpiceConstants.CKTgmin;
end if;
...



record Electrical.Spice3.Internal.Mosfet.Mosfet

Component
Version 3.2
Version 3.2.1
m_drainArea
start=SpiceConstants.CKTdefaultMosAD
start=Spice3.Internal.SpiceConstants.CKTdefaultMosAD
m_sourceArea
start=SpiceConstants.CKTdefaultMosAS
start=Spice3.Internal.SpiceConstants.CKTdefaultMosAS
m_drainPerimeter

Present
m_sourcePerimeter

Present
m_uic

Present



record Electrical.Spice3.Internal.Mosfet.MosfetModelLineParams

Component
Version 3.2
Version 3.2.1
m_bulkJctBotGradingCoeff
Real
SIunits.LinearTemperatureCoefficient
m_bulkJctSideGradingCoeff
Real
SIunits.LinearTemperatureCoefficient
m_mjswIsGiven

Present
m_cgsoIsGiven

Present
m_cgdoIsGiven

Present
m_cgboIsGiven

Present
m_pbIsGiven

Present



record Electrical.Spice3.Internal.Mosfet.MosfetCalc

Component
Version 3.2
Version 3.2.1
m_lEff
Real
SIunits.Length



record Electrical.Spice3.Internal.Mos.MosModelLineParams

Component
Version 3.2
Version 3.2.1
m_surfaceStateDensityIsGiven

start=0
m_tnom
start=SpiceConstants.CKTnomTemp
start=Spice3.Internal.SpiceConstants.CKTnomTemp



record Electrical.Spice3.Internal.Mos.MosCalc

Component
Version 3.2
Version 3.2.1
m_tSurfMob
Real
SIunits.Conversions.NonSIunits.Area_cmPerVoltageSecond
m_tSatCurDens
Real
SIunits.CurrentDensity
m_tCj
Real
SIunits.CapacitancePerArea
m_tCjsw
Real
SIunits.Permittivity
m_tDepCap
Real
SIunits.Voltage
m_f1b
Real
SIunits.Voltage
m_f1s
Real
SIunits.Voltage
m_dVt
Real
SIunits.Voltage



function Electrical.Spice3.Internal.Mos.mosCalcInitEquations



Equations in Version 3.2 Equations in Version 3.2.1

...
out_c.m_capOx = in_vp.m_oxideCapFactor * out_c.m_lEff * in_m.m_width;

out_c.m_tTransconductance = 0;

out_c.m_tSurfMob = 0;
out_c.m_tPhi = 0.7;
out_c.m_tVto = 1.;
out_c.m_tSatCurDens = 0;
out_c.m_tDrainSatCur = 0;
out_c.m_tSourceSatCur = 0;
out_c.m_tCBDb = 0;
out_c.m_tCBDs = 0;
out_c.m_tCBSb = 0;
out_c.m_tCBSs = 0;
out_c.m_tCj = 0;
out_c.m_tCjsw = 0;
out_c.m_tBulkPot = 0.7;
out_c.m_tDepCap = 0.35;
out_c.m_tVbi = 1.;
out_c.m_VBScrit = 0.7;
out_c.m_VBDcrit = 0.7;
out_c.m_f1b = 0;
out_c.m_f2b = 0;
out_c.m_f3b = 0;
out_c.m_f1s = 0;
out_c.m_f2s = 0;
out_c.m_f3s = 0;
out_c.m_dVt = 0;
out_c.m_capgd = 0;
out_c.m_capgs = 0;
out_c.m_capgb = 0;
out_c.m_qgs = 0;
out_c.m_qgd = 0;
out_c.m_qgb = 0;
out_c.m_vds = 0;
out_c.m_vgs = 0;
out_c.m_vbs = 0;
out_c.m_cbs = 0;
out_c.m_gbs = 0;
out_c.m_cbd = 0;
out_c.m_gbd = 0;
out_c.m_cdrain = 0;
out_c.m_gds = 0;
out_c.m_gm = 0;
out_c.m_gmbs = 0;
out_c.m_capbsb = 0;
out_c.m_chargebsb = 0;
out_c.m_capbss = 0;
out_c.m_chargebss = 0;
out_c.m_capbdb = 0;
out_c.m_chargebdb = 0;
out_c.m_capbds = 0;
out_c.m_chargebds = 0;
out_c.m_Beta = 0;
out_c.m_von = 0;
out_c.m_vdsat = 0;
out_c.m_mode = 1;




function Electrical.Spice3.Internal.Mos.mosCalcCalcTempDependencies



Equations in Version 3.2 Equations in Version 3.2.1

...
out_c.m_tSurfMob = in_p.m_surfaceMobility / ratio4;
out_c.m_tPhi =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(
in_vp.m_phi,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tPhi =
Spice3.Internal.Functions.junctionPotDepTemp(
in_vp.m_phi,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tVbi = in_vp.m_vt0 - in_m_type*(in_vp.m_gamma*sqrt(in_vp.m_phi))
+ 0.5*(
Modelica_3_2.Electrical.Spice3.Internal.Functions.energyGapDepTemp(
in_p.m_tnom) -
Modelica_3_2.Electrical.Spice3.Internal.Functions.energyGapDepTemp(
in_m.m_dTemp)) + in_m_type*0.5*(out_c.m_tPhi - in_vp.m_phi);
out_c.m_tVbi = in_vp.m_vt0 - in_m_type*(in_vp.m_gamma*sqrt(in_vp.m_phi))
+ 0.5*(Spice3.Internal.Functions.energyGapDepTemp_old(
in_p.m_tnom) -
Spice3.Internal.Functions.energyGapDepTemp_old( in_m.m_dTemp))
+ in_m_type*0.5*(out_c.m_tPhi - in_vp.m_phi);
out_c.m_tVto = out_c.m_tVbi + in_m_type * in_vp.m_gamma * sqrt(out_c.m_tPhi);
out_c.m_tBulkPot =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(
in_p.m_bulkJctPotential,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tBulkPot = Spice3.Internal.Functions.junctionPotDepTemp(
in_p.m_bulkJctPotential,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDepCap = in_p.m_fwdCapDepCoeff * out_c.m_tBulkPot;
if (in_p.m_jctSatCurDensity == 0.0 or in_m.m_sourceArea == 0.0 or in_m.m_drainArea == 0.0) then
out_c.m_tDrainSatCur =
Modelica_3_2.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCur,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDrainSatCur =
Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCur,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tSourceSatCur = out_c.m_tDrainSatCur;
out_c.m_VBScrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBScrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBDcrit = out_c.m_VBScrit;
else
out_c.m_tSatCurDens =
Modelica_3_2.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCurDensity,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tSatCurDens =
Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCurDensity,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDrainSatCur = out_c.m_tSatCurDens * in_m.m_drainArea;
out_c.m_tSourceSatCur = out_c.m_tSatCurDens * in_m.m_sourceArea;
out_c.m_VBScrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBScrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBDcrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tDrainSatCur);
out_c.m_VBDcrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tDrainSatCur);
end if;
if ( not (in_p.m_capBDIsGiven > 0.5) or not (in_p.m_capBSIsGiven > 0.5)) then
(res,out_c.m_tCj) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_bulkCapFactor,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(res,out_c.m_tCj) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_bulkCapFactor,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(res,out_c.m_tCjsw) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_sideWallCapFactor,
in_p.m_bulkJctSideGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(res,out_c.m_tCjsw) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_sideWallCapFactor,
in_p.m_bulkJctSideGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_f1s,out_c.m_f2s,out_c.m_f3s) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctSideGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
(out_c.m_f1s,out_c.m_f2s,out_c.m_f3s) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctSideGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
end if;
if (in_p.m_capBDIsGiven > 0.5) then
(res,out_c.m_tCBDb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBD,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(res,out_c.m_tCBDb) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBD,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tCBDs = 0.0;
...
out_c.m_tCBDb = out_c.m_tCj * in_m.m_drainArea;
out_c.m_tCBDs = out_c.m_tCjsw * in_m.m_drainPerimiter; out_c.m_tCBDs = out_c.m_tCjsw * in_m.m_drainPerimeter;
end if;
if (in_p.m_capBSIsGiven > 0.5) then
(res,out_c.m_tCBSb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBS,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(res,out_c.m_tCBSb) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBS,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tCBSs = 0.0;
...
out_c.m_tCBSb = out_c.m_tCj * in_m.m_sourceArea;
out_c.m_tCBSs = out_c.m_tCjsw * in_m.m_sourcePerimiter; out_c.m_tCBSs = out_c.m_tCjsw * in_m.m_sourcePerimeter;
end if;
(out_c.m_f1b,out_c.m_f2b,out_c.m_f3b) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctBotGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
(out_c.m_f1b,out_c.m_f2b,out_c.m_f3b) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctBotGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
out_c.m_dVt = in_m.m_dTemp * SpiceConstants.CONSTKoverQ; out_c.m_dVt = in_m.m_dTemp*Spice3.Internal.SpiceConstants.CONSTKoverQ;




function Electrical.Spice3.Internal.Mos.mosCalcNoBypassCode



Equations in Version 3.2 Equations in Version 3.2.1

...
int_c := in_c;

out_cc.m_capgd = 0;
int_c.m_vgs = in_m_type * (in_m_pVoltageValues[1] - in_m_pVoltageValues[4]);
...
int_c.m_vds = in_m_type * (in_m_pVoltageValues[3] - in_m_pVoltageValues[4]);
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVBSIsGiven >0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions()) and (in_m.m_dICVBSIsGiven
> 0.5) then
int_c.m_vbs = in_m_type * in_m.m_dICVBS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
int_c.m_vbs = if (in_m.m_off >0.5) then 0. else int_c.m_VBScrit;
end if;
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVDSIsGiven > 0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions())
and (in_m.m_dICVDSIsGiven > 0.5) then
int_c.m_vds = in_m_type * in_m.m_dICVDS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
int_c.m_vds = if (in_m.m_off > 0.5) then 0. else (int_c.m_VBDcrit - int_c.m_VBScrit);
end if;
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVGSIsGiven > 0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions())
and (in_m.m_dICVGSIsGiven > 0.5) then
int_c.m_vgs = in_m_type * in_m.m_dICVGS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
if ( in_m.m_off > 0.5) then
...
vgb = int_c.m_vgs - int_c.m_vbs;
(int_c.m_cbd,int_c.m_gbd) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbd,
int_c.m_gbd,
vbd,
in_m.m_dTemp,
1.0,
int_c.m_tDrainSatCur);
(int_c.m_cbd,int_c.m_gbd) =
Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbd,
int_c.m_gbd,
vbd,
in_m.m_dTemp,
1.0,
int_c.m_tDrainSatCur);
out_cc.iBD = in_m_type * int_c.m_cbd;
(int_c.m_cbs,int_c.m_gbs) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbs,
int_c.m_gbs,
int_c.
m_vbs,
in_m.m_dTemp,
1.0,
int_c.m_tSourceSatCur);
(int_c.m_cbs,int_c.m_gbs) =
Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbs,
int_c.m_gbs,
int_c.m_vbs,
in_m.m_dTemp,
1.0,
int_c.m_tSourceSatCur);
out_cc.iBS = in_m_type * int_c.m_cbs;
...
if (int_c.m_mode == 1) then
int_c = Mos1.drainCur( int_c.m_vbs, int_c.m_vgs, int_c.m_vds, int_c, in_p, in_C, in_vp, in_m_type); int_c = Spice3.Internal.Mos1.drainCur(
int_c.m_vbs,
int_c.m_vgs,
int_c.m_vds,
int_c,
in_p,
in_C,
in_vp,
in_m_type);
else
int_c = Mos1.drainCur( vbd, vgd, -int_c.m_vds, int_c, in_p, in_C, in_vp, in_m_type); int_c = Spice3.Internal.Mos1.drainCur(
vbd,
vgd,
-int_c.m_vds,
int_c,
in_p,
in_C,
in_vp,
in_m_type);
end if;
...
int_c.m_chargebds = 0.0;
(int_c.m_capbsb,int_c.m_chargebsb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSb,
int_c.m_vbs,
int_c.
m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.
m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbsb,int_c.m_chargebsb) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSb,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbdb,int_c.m_chargebdb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDb,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbdb,int_c.m_chargebdb) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDb,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
if ( not (in_p.m_capBSIsGiven > 0.5)) then
(int_c.m_capbss,int_c.m_chargebss) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSs,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
(int_c.m_capbss,int_c.m_chargebss) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSs,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
end if;
if (not (in_p.m_capBDIsGiven > 0.5)) then
(int_c.m_capbds,int_c.m_chargebds) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDs,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
(int_c.m_capbds,int_c.m_chargebds) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDs,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
end if;
...



function Electrical.Spice3.Internal.Mos.mosCalcDEVqmeyer

Component
Version 3.2
Version 3.2.1
vddif
Real
SIunits.Voltage
vddif1
Real
SIunits.Voltage
vddif2
Real
Electrical.Spice3.Types.VoltageSquare


Equations in Version 3.2 Equations in Version 3.2.1

...
end if;

out_qm.qm_qgs = 0.0;

out_qm.qm_qgb = 0.0;
out_qm.qm_qgd = 0.0;
out_qm.qm_vgs = 0.0;
out_qm.qm_vgb = 0.0;
out_qm.qm_vgd = 0.0;




function Electrical.Spice3.Internal.Mos.mos2CalcCalcTempDependencies



Equations in Version 3.2 Equations in Version 3.2.1

...
out_c.m_tSurfMob = in_p.m_surfaceMobility / ratio4;
out_c.m_tPhi =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(
in_vp.m_phi,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tPhi =
Spice3.Internal.Functions.junctionPotDepTemp(
in_vp.m_phi,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tVbi = in_vp.m_vt0 - in_m_type*(in_vp.m_gamma*sqrt(in_vp.m_phi))
+ 0.5*(
Modelica_3_2.Electrical.Spice3.Internal.Functions.energyGapDepTemp(
in_p.m_tnom) -
Modelica_3_2.Electrical.Spice3.Internal.Functions.energyGapDepTemp(
in_m.m_dTemp)) + in_m_type*0.5*(out_c.m_tPhi - in_vp.m_phi);
out_c.m_tVbi = in_vp.m_vt0 - in_m_type*(in_vp.m_gamma*sqrt(in_vp.m_phi))
+ 0.5*(Spice3.Internal.Functions.energyGapDepTemp(
in_p.m_tnom) -
Spice3.Internal.Functions.energyGapDepTemp(in_m.m_dTemp))
+ in_m_type*0.5*(out_c.m_tPhi - in_vp.m_phi);
out_c.m_tVto = out_c.m_tVbi + in_m_type * in_vp.m_gamma * sqrt(out_c.m_tPhi);
out_c.m_tBulkPot =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionPotDepTemp(
in_p.m_bulkJctPotential,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tBulkPot = Spice3.Internal.Functions.junctionPotDepTemp(
in_p.m_bulkJctPotential,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDepCap = in_p.m_fwdCapDepCoeff * out_c.m_tBulkPot;
if (in_p.m_jctSatCurDensity == 0.0 or in_m.m_sourceArea == 0.0 or in_m.m_drainArea == 0.0) then
out_c.m_tDrainSatCur =
Modelica_3_2.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCur,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDrainSatCur =
Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCur,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tSourceSatCur = out_c.m_tDrainSatCur;
out_c.m_VBScrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBScrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBDcrit = out_c.m_VBScrit;
else
out_c.m_tSatCurDens =
Modelica_3_2.Electrical.Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCurDensity,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tSatCurDens =
Spice3.Internal.Functions.saturationCurDepTempSPICE3MOSFET(
in_p.m_jctSatCurDensity,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tDrainSatCur = out_c.m_tSatCurDens * in_m.m_drainArea;
out_c.m_tSourceSatCur = out_c.m_tSatCurDens * in_m.m_sourceArea;
out_c.m_VBScrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBScrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tSourceSatCur);
out_c.m_VBDcrit =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tDrainSatCur);
out_c.m_VBDcrit =
Spice3.Internal.Functions.junctionVCrit(
in_m.m_dTemp,
1.0,
out_c.m_tDrainSatCur);
end if;
if ( not (in_p.m_capBDIsGiven > 0.5) or not (in_p.m_capBSIsGiven > 0.5)) then
(out_c.m_tCj) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_bulkCapFactor,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_tCj) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_bulkCapFactor,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_tCjsw) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_sideWallCapFactor,
in_p.m_bulkJctSideGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_tCjsw) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_sideWallCapFactor,
in_p.m_bulkJctSideGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_f1s,out_c.m_f2s,out_c.m_f3s) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctSideGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
(out_c.m_f1s,out_c.m_f2s,out_c.m_f3s) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctSideGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
end if;
if (in_p.m_capBDIsGiven > 0.5) then
(out_c.m_tCBDb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBD,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_tCBDb) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBD,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tCBDs = 0.0;
...
out_c.m_tCBDb = out_c.m_tCj * in_m.m_drainArea;
out_c.m_tCBDs = out_c.m_tCjsw * in_m.m_drainPerimiter; out_c.m_tCBDs = out_c.m_tCjsw * in_m.m_drainPerimeter;
end if;
if (in_p.m_capBSIsGiven > 0.5) then
(out_c.m_tCBSb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBS,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
(out_c.m_tCBSb) =
Spice3.Internal.Functions.junctionParamDepTempSPICE3(
in_p.m_bulkJctPotential,
in_p.m_capBS,
in_p.m_bulkJctBotGradingCoeff,
in_m.m_dTemp,
in_p.m_tnom);
out_c.m_tCBSs = 0.0;
...
out_c.m_tCBSb = out_c.m_tCj * in_m.m_sourceArea;
out_c.m_tCBSs = out_c.m_tCjsw * in_m.m_sourcePerimiter; out_c.m_tCBSs = out_c.m_tCjsw * in_m.m_sourcePerimeter;
end if;
(out_c.m_f1b,out_c.m_f2b,out_c.m_f3b) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctBotGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
(out_c.m_f1b,out_c.m_f2b,out_c.m_f3b) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_bulkJctBotGradingCoeff,
in_p.m_fwdCapDepCoeff,
out_c.m_tBulkPot);
out_c.m_dVt = in_m.m_dTemp * SpiceConstants.CONSTKoverQ; out_c.m_dVt = in_m.m_dTemp*Spice3.Internal.SpiceConstants.CONSTKoverQ;




function Electrical.Spice3.Internal.Mos.mos2CalcNoBypassCode



Equations in Version 3.2 Equations in Version 3.2.1

...
int_c.m_vds = in_m_type * (in_m_pVoltageValues[3] - in_m_pVoltageValues[4]);
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVBSIsGiven >0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions()) and (in_m.m_dICVBSIsGiven
> 0.5) then
int_c.m_vbs = in_m_type * in_m.m_dICVBS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
int_c.m_vbs = if (in_m.m_off >0.5) then 0. else int_c.m_VBScrit;
end if;
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVDSIsGiven > 0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions())
and (in_m.m_dICVDSIsGiven > 0.5) then
int_c.m_vds = in_m_type * in_m.m_dICVDS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
int_c.m_vds = if (in_m.m_off > 0.5) then 0. else (int_c.m_VBDcrit - int_c.m_VBScrit);
end if;
if ( SpiceRoot.useInitialConditions()) and (in_m.m_dICVGSIsGiven > 0.5) then if (Spice3.Internal.SpiceRoot.useInitialConditions())
and (in_m.m_dICVGSIsGiven > 0.5) then
int_c.m_vgs = in_m_type * in_m.m_dICVGS;
elseif ( SpiceRoot.initJunctionVoltages()) then elseif (
Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
if ( in_m.m_off > 0.5) then
...
end if;
if (int_c.m_vds<>0 and int_c.m_vgs<>0 and int_c.m_vbs<>0 and not (SpiceRoot.useInitialConditions()) and (in_m.m_off<>0)) then if (int_c.m_vds <> 0 and int_c.m_vgs <> 0 and int_c.m_vbs <> 0 and not (
Spice3.Internal.SpiceRoot.useInitialConditions())
and (in_m.m_off <> 0)) then
int_c.m_vbs = -1;
...
if ( int_c.m_vds >= 0) then
int_c.m_vbs = SpiceRoot.limitJunctionVoltage(int_c.m_vbs); int_c.m_vbs =
Spice3.Internal.SpiceRoot.limitJunctionVoltage(
int_c.m_vbs);
vbd = int_c.m_vbs - int_c.m_vds;
else
vbd = SpiceRoot.limitJunctionVoltage(vbd); vbd =
Spice3.Internal.SpiceRoot.limitJunctionVoltage(
vbd);
int_c.m_vbs = vbd + int_c.m_vds;
...
vgb = int_c.m_vgs - int_c.m_vbs;
(int_c.m_cbd,int_c.m_gbd) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbd,
int_c.m_gbd,
vbd,
in_m.m_dTemp,
1.0,
int_c.m_tDrainSatCur);
(int_c.m_cbd,int_c.m_gbd) =
Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbd,
int_c.m_gbd,
vbd,
in_m.m_dTemp,
1.0,
int_c.m_tDrainSatCur);
out_cc.iBD = in_m_type * int_c.m_cbd;
(int_c.m_cbs,int_c.m_gbs) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbs,
int_c.m_gbs,
int_c.
m_vbs,
in_m.m_dTemp,
1.0,
int_c.m_tSourceSatCur);
(int_c.m_cbs,int_c.m_gbs) =
Spice3.Internal.Functions.junction2SPICE3MOSFET(
int_c.m_cbs,
int_c.m_gbs,
int_c.m_vbs,
in_m.m_dTemp,
1.0,
int_c.m_tSourceSatCur);
out_cc.iBS = in_m_type * int_c.m_cbs;
...
if (int_c.m_mode == 1) then
int_c = Mos2.drainCur( int_c.m_vbs, int_c.m_vgs, int_c.m_vds,int_m, int_c, in_p, in_C, in_vp, in_m_type); int_c = Spice3.Internal.Mos2.drainCur(
int_c.m_vbs, int_c.m_vgs, int_c.m_vds,int_m, int_c, in_p, in_C, in_vp, in_m_type);
else
int_c = Mos2.drainCur( vbd, vgd, -int_c.m_vds,int_m, int_c, in_p, in_C, in_vp, in_m_type); int_c = Spice3.Internal.Mos2.drainCur(
vbd, vgd, -int_c.m_vds,int_m, int_c, in_p, in_C, in_vp, in_m_type);
end if;
...
int_c.m_chargebds = 0.0;
(int_c.m_capbsb,int_c.m_chargebsb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSb,
int_c.m_vbs,
int_c.
m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.
m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbsb,int_c.m_chargebsb) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSb,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbdb,int_c.m_chargebdb) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDb,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
(int_c.m_capbdb,int_c.m_chargebdb) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDb,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctBotGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1b,
int_c.m_f2b,
int_c.m_f3b);
if ( not (in_p.m_capBSIsGiven > 0.5)) then
(int_c.m_capbss,int_c.m_chargebss) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSs,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
(int_c.m_capbss,int_c.m_chargebss) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBSs,
int_c.m_vbs,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
end if;
if (not (in_p.m_capBDIsGiven > 0.5)) then
(int_c.m_capbds,int_c.m_chargebds) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDs,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
(int_c.m_capbds,int_c.m_chargebds) =
Spice3.Internal.Functions.junctionCap(
int_c.m_tCBDs,
vbd,
int_c.m_tDepCap,
in_p.m_bulkJctSideGradingCoeff,
int_c.m_tBulkPot,
int_c.m_f1s,
int_c.m_f2s,
int_c.m_f3s);
end if;
...



function Electrical.Spice3.Internal.Mos1.mos1RenameParameters



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
intern.m_oxideCapFactor := 0; intern.m_cgboIsGiven := 0;

intern.m_cgdoIsGiven = 0;
intern.m_cgsoIsGiven = 0;
intern.m_mjswIsGiven = 0;
intern.m_pbIsGiven = 0;
intern.m_surfaceStateDensityIsGiven = 0;
intern.m_oxideCapFactor = 0;
intern.m_vtOIsGiven = if (ex.VTO > -1e40) then 1 else 0;
...
intern.m_latDiff = ex.LD "In m lateral diffusion (default 0)";
intern.m_jctSatCur = ex.IS
"A bulk junction saturation current (defaul 1e-14)";
intern.m_jctSatCur = ex.IS
"A bulk junction saturation current (default 1e-14)";
intern.m_drainResistanceIsGiven = if
                                         (ex.RD > -1e40) then 1 else 0;
...



function Electrical.Spice3.Internal.Mos1.mos1RenameParametersDev



Equations in Version 3.2 Equations in Version 3.2.1

...
dev.m_sourceSquares = NRS "NRS, length of source in squares";
dev.m_drainPerimiter = PD "PD, Drain perimeter"; dev.m_drainPerimeter = PD "PD, Drain perimeter";
dev.m_sourcePerimiter = PS "PS, Source perimeter"; dev.m_sourcePerimeter = PS "PS, Source perimeter";
dev.m_dICVDSIsGiven = if (IC > -1e40) then 1 else 0
  "ICVDS IsGivenValue";
...
dev.m_off = OFF "Non-zero to indicate device is off for dc analysis";
dev.m_bPMOS = mtype "P type MOSfet model"; dev.m_bPMOS = mtype "P type MOSFET model";
dev.m_nLevel = ex.LEVEL "Level";
...
dev.m_dTemp = TEMP + SpiceConstants.CONSTCtoK "Device temperature";

dev.m_drainPerimiter = 0;

dev.m_sourcePerimiter = 0;
dev.m_uic = false;




record Electrical.Spice3.Internal.Mos2.Mos2ModelLineParams

Component
Version 3.2
Version 3.2.1
m_critField
Real
Electrical.Spice3.Types.ElectricFieldStrength_cm
m_maxDriftVel
Real
SIunits.Velocity
m_junctionDepth
Real
SIunits.Length
m_fastSurfaceStateDensity
Real
SIunits.Conversions.NonSIunits.PerArea_cm
m_xd

Present



function Electrical.Spice3.Internal.Mos2.mos2RenameParameters



Equations in Version 3.2 Equations in Version 3.2.1

...
intern.m_transconductance = if (ex.KP > -1e40) then ex.KP else 2e-5;
intern.m_tnom = if (ex.TNOM > -1e40) then ex.TNOM + SpiceConstants.CONSTCtoK else
300.15;
intern.m_tnom = if (ex.TNOM > -1e40) then ex.TNOM + Spice3.Internal.SpiceConstants.CONSTCtoK
else 300.15;
intern.m_jctSatCurDensity = ex.JS;
...



function Electrical.Spice3.Internal.Mos2.mos2RenameParametersDev



Equations in Version 3.2 Equations in Version 3.2.1

...
assert(ex.LEVEL== 1, "only MOS Level1 implemented");
dev.m_dTemp = TEMP + SpiceConstants.CONSTCtoK; dev.m_dTemp = TEMP + Spice3.Internal.SpiceConstants.CONSTCtoK;




record Electrical.Spice3.Internal.Diode.DiodeModelLineParams

Component
Version 3.2
Version 3.2.1
m_gradingCoeff
Real
SIunits.LinearTemperatureCoefficient
m_nomTemp
SIunits.Temp_C
SIunits.Temp_K



function Electrical.Spice3.Internal.Diode.diodeNoBypassCode



Equations in Version 3.2 Equations in Version 3.2.1

...
end if;

m_dCurrent = out_cc.m_dCurrent;
(m_dCap,m_dCharge) =
   &nbspModelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapTransTime(
             &nbspin_c.m_tJctCap,
             &nbspm_dPNVoltage,
             &nbspin_c.m_tJctPot*in_p.m_depletionCapCoeff,
             &nbspin_p.m_gradingCoeff,
             &nbspin_p.m_junctionPot,
             &nbspin_c.m_tF1,
             &nbspin_c.m_f2,
             &nbspin_c.m_f3,
             &nbspin_p.m_transitTime,
             &nbspm_dCond,
             &nbspm_dCurrent);
...



function Electrical.Spice3.Internal.Rsemiconductor.resistorInitEquations



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
out.m_dWidth := in_p.m_dWidth; out.m_dLength := 0;

out.m_dConduct = 0;
out.m_dCond_dTemp = 0;
out.m_dWidth = in_p.m_dWidth;
if ( in_p.m_dResIsGiven < 0.5) then
...



record Electrical.Spice3.Internal.Bjt3.BjtModelLineParams

Component
Version 3.2
Version 3.2.1
m_tnom
start=SpiceConstants.CKTnomTemp
start=Spice3.Internal.SpiceConstants.CKTnomTemp
m_invRollOffF
Real
Electrical.Spice3.Types.InverseElectricCurrent
m_invRollOffR
Real
Electrical.Spice3.Types.InverseElectricCurrent



record Electrical.Spice3.Internal.Bjt3.Bjt3

Component
Version 3.2
Version 3.2.1
m_invRollOffF
Real
Electrical.Spice3.Types.InverseElectricCurrent
m_invRollOffR
Real
Electrical.Spice3.Types.InverseElectricCurrent



function Electrical.Spice3.Internal.Bjt3.bjt3CalcTempDependencies

Component
Version 3.2
Version 3.2.1
arg
Real
Electrical.Spice3.Types.GapEnergyPerEnergy


Equations in Version 3.2 Equations in Version 3.2.1
algorithm
fact1 := in_p.m_tnom/SpiceConstants.REFTEMP; fact1 := in_p.m_tnom/Spice3.Internal.SpiceConstants.REFTEMP;
vt = m.m_dTemp*SpiceConstants.CONSTKoverQ; vt = m.m_dTemp*Spice3.Internal.SpiceConstants.CONSTKoverQ;
fact2 = m.m_dTemp/SpiceConstants.REFTEMP; fact2 = m.m_dTemp/Spice3.Internal.SpiceConstants.REFTEMP;
egfet = 1.16 - (7.02e-4 * m.m_dTemp * m.m_dTemp) / (m.m_dTemp + 1108);
arg = -egfet/(2*Modelica_3_2.Constants.k*m.m_dTemp) + 1.1150877/(
Modelica_3_2.Constants.k*(SpiceConstants.REFTEMP + SpiceConstants.REFTEMP));
arg = -egfet/(2*Modelica.Constants.k*m.m_dTemp) + 1.1150877/(Modelica.Constants.k
*(Spice3.Internal.SpiceConstants.REFTEMP +
Spice3.Internal.SpiceConstants.REFTEMP));
pbfact = -2*vt*(1.5*Modelica_3_2.Math.log(fact2) + SpiceConstants.CHARGE
*arg);
pbfact = -2*vt*(1.5*Modelica.Math.log(fact2) + Spice3.Internal.SpiceConstants.CHARGE
*arg);
ratlog = Modelica_3_2.Math.log(m.m_dTemp/in_p.m_tnom);
...
out_c.m_tBCleakCur = in_vl.m_leakBCcurrent * exp(factlog / in_p.m_leakBCemissionCoeff) / bfactor
                        * in_p3.m_area;
out_c.m_tBEcap = in_p.m_depletionCapBE/(1 + in_p.m_junctionExpBE*(4e-4
*(in_p.m_tnom - SpiceConstants.REFTEMP) - gmaold));
out_c.m_tBEcap = in_p.m_depletionCapBE/(1 + in_p.m_junctionExpBE*(4e-4*(
in_p.m_tnom - Spice3.Internal.SpiceConstants.REFTEMP)
- gmaold));
out_c.m_tBEpot = fact2 * pbo + pbfact;
gmanew = (out_c.m_tBEpot - pbo) / pbo;
out_c.m_tBEcap = out_c.m_tBEcap*(1 + in_p.m_junctionExpBE*(4e-4*(m.m_dTemp
- SpiceConstants.REFTEMP) - gmanew));
out_c.m_tBEcap = out_c.m_tBEcap*(1 + in_p.m_junctionExpBE*(4e-4*(m.m_dTemp
- Spice3.Internal.SpiceConstants.REFTEMP) - gmanew));
pbo = (in_p.m_potentialBC - pbfact) / fact1;
gmaold = (in_p.m_potentialBC - pbo) / pbo;
out_c.m_tBCcap = in_p.m_depletionCapBC/(1 + in_p.m_junctionExpBC*(4e-4
*(in_p.m_tnom - SpiceConstants.REFTEMP) - gmaold));
out_c.m_tBCcap = in_p.m_depletionCapBC/(1 + in_p.m_junctionExpBC*(4e-4*(
in_p.m_tnom - Spice3.Internal.SpiceConstants.REFTEMP)
- gmaold));
out_c.m_tBCpot = fact2 * pbo + pbfact;
gmanew = (out_c.m_tBCpot - pbo) / pbo;
out_c.m_tBCcap = out_c.m_tBCcap*(1 + in_p.m_junctionExpBC*(4e-4*(m.m_dTemp
- SpiceConstants.REFTEMP) - gmanew));
out_c.m_tBCcap = out_c.m_tBCcap*(1 + in_p.m_junctionExpBC*(4e-4*(m.m_dTemp
- Spice3.Internal.SpiceConstants.REFTEMP) - gmanew));
out_c.m_tDepCapBE = in_p.m_depletionCapCoeff * out_c.m_tBEpot;
...
xfc = Modelica_3_2.Math.log(1 - in_p.m_depletionCapCoeff);
out_c.m_tVcrit = vt*Modelica_3_2.Math.log(vt/(SpiceConstants.CONSTroot2
*in_p.m_satCur));
out_c.m_tVcrit = vt*Modelica.Math.log(vt/(Spice3.Internal.SpiceConstants.CONSTroot2
*in_p.m_satCur));
out_c.m_dVt = vt;
...
out_c.m_tBCcap = out_c.m_tBCcap * in_p3.m_area;
(out_c.m_tF1c,out_c.m_f2c,out_c.m_f3c) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_junctionExpBC,
in_p.m_depletionCapCoeff,
out_c.m_tBCpot);
(out_c.m_tF1c,out_c.m_f2c,out_c.m_f3c) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_junctionExpBC,
in_p.m_depletionCapCoeff,
out_c.m_tBCpot);
(out_c.m_tF1e,out_c.m_f2e,out_c.m_f3e) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_junctionExpBE,
in_p.m_depletionCapCoeff,
out_c.m_tBEpot);
(out_c.m_tF1e,out_c.m_f2e,out_c.m_f3e) =
Spice3.Internal.Functions.junctionCapCoeffs(
in_p.m_junctionExpBE,
in_p.m_depletionCapCoeff,
out_c.m_tBEpot);




function Electrical.Spice3.Internal.Bjt3.bjt3NoBypassCode

Component
Version 3.2
Version 3.2.1
temp
SIunits.Temp_K
Real


Equations in Version 3.2 Equations in Version 3.2.1

...
vbx = in_p.m_type * (in_m_pVoltageValues[2] - in_m_pVoltageValues[4]);
if (SpiceRoot.useInitialConditions()) then if (Spice3.Internal.SpiceRoot.useInitialConditions()) then
if (in_p3.m_bICvbeIsGiven > 0.5) then
...
vbx = vbe - vce;
elseif (SpiceRoot.initJunctionVoltages()) then elseif (Spice3.Internal.SpiceRoot.initJunctionVoltages()) then
if (in_p3.m_bOff) then
...
vbc = vbe - vce;
(cbe,gbe) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2(
vbe,
in_m.m_dTemp,
in_p.m_emissionCoeffF,
in_c.m_tSatCur);
(cbe,gbe) = Spice3.Internal.Functions.junction2(
vbe,
in_m.m_dTemp,
in_p.m_emissionCoeffF,
in_c.m_tSatCur);
out_cc.iBE = in_p.m_type * cbe / in_c.m_tBetaF;
(cben,gben) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2(
vbe,
in_m.m_dTemp,
in_p.m_leakBEemissionCoeff,
in_c.m_tBEleakCur);
(cben,gben) = Spice3.Internal.Functions.junction2(
vbe,
in_m.m_dTemp,
in_p.m_leakBEemissionCoeff,
in_c.m_tBEleakCur);
out_cc.iBEN = in_p.m_type * cben;
(cbc,gbc) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2(
vbc,
in_m.m_dTemp,
in_p.m_emissionCoeffR,
in_c.m_tSatCur);
(cbc,gbc) = Spice3.Internal.Functions.junction2(
vbc,
in_m.m_dTemp,
in_p.m_emissionCoeffR,
in_c.m_tSatCur);
out_cc.iBC = in_p.m_type * cbc / in_c.m_tBetaR;
(cbcn,gbcn) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junction2(
vbc,
in_m.m_dTemp,
in_p.m_leakBCemissionCoeff,
in_c.m_tBCleakCur);
(cbcn,gbcn) = Spice3.Internal.Functions.junction2(
vbc,
in_m.m_dTemp,
in_p.m_leakBCemissionCoeff,
in_c.m_tBCleakCur);
out_cc.iBCN = in_p.m_type * cbcn;
...
end if;
(capbe,chargebe) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapTransTime(
in_c.m_tBEcap,
vbe,
in_c.m_tDepCapBE,
in_p.m_junctionExpBE,
in_c.m_tBEpot,
in_c.m_tF1e,
in_c.
m_f2e,
in_c.m_f3e,
in_p.m_transitTimeF,
gbe,
cbe);
(capbe,chargebe) =
Spice3.Internal.Functions.junctionCapTransTime(
in_c.m_tBEcap,
vbe,
in_c.m_tDepCapBE,
in_p.m_junctionExpBE,
in_c.m_tBEpot,
in_c.m_tF1e,
in_c.m_f2e,
in_c.m_f3e,
in_p.m_transitTimeF,
gbe,
cbe);
out_cc.iXX = 0;
aux1 = in_c.m_tBCcap*in_p.m_baseFractionBCcap;
(capbc,chargebc) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCapTransTime(
aux1,
vbc,
in_c.m_tDepCapBC,
in_p.m_junctionExpBC,
in_c.m_tBCpot,
in_c.m_tF1c,
in_c.
m_f2c,
in_c.m_f3c,
in_p.m_transitTimeR,
gbc,
cbc);
(capbc,chargebc) =
Spice3.Internal.Functions.junctionCapTransTime(
aux1,
vbc,
in_c.m_tDepCapBC,
in_p.m_junctionExpBC,
in_c.m_tBCpot,
in_c.m_tF1c,
in_c.m_f2c,
in_c.m_f3c,
in_p.m_transitTimeR,
gbc,
cbc);
aux2= in_c.m_tBCcap*(1. - in_p.m_baseFractionBCcap);
(capbx,chargebx) =
Modelica_3_2.Electrical.Spice3.Internal.Functions.junctionCap(
aux2,
vbx,
in_c.m_tDepCapBC,
in_p.m_junctionExpBC,
in_c.m_tBCpot,
in_c.m_tF1c,
in_c.m_f2c,
in_c.m_f3c);
(capbx,chargebx) =
Spice3.Internal.Functions.junctionCap(
aux2,
vbx,
in_c.m_tDepCapBC,
in_p.m_junctionExpBC,
in_c.m_tBCpot,
in_c.m_tF1c,
in_c.m_f2c,
in_c.m_f3c);




function Electrical.Spice3.Internal.Bjt3.bjtRenameParameters

Component
Version 3.2
Version 3.2.1
TBJT

Present


Equations in Version 3.2 Equations in Version 3.2.1
algorithm
intern.m_satCur := ex.IS; intern.m_type := TBJT;

intern.m_satCur = ex.IS;
intern.m_betaF = ex.BF;
...
intern.m_depletionCapCoeff = ex.FC;
intern.m_tnom = if (ex.TNOM > -1e40) then ex.TNOM + SpiceConstants.CONSTCtoK else 300.15; intern.m_tnom = if (ex.TNOM > -1e40) then ex.TNOM +
Spice3.Internal.SpiceConstants.CONSTCtoK else 300.15;




function Electrical.Spice3.Internal.Bjt3.bjtRenameParametersDevTemp



Equations in Version 3.2 Equations in Version 3.2.1
algorithm
m.m_dTemp :=TEMP + SpiceConstants.CONSTCtoK; m.m_dTemp := TEMP + Spice3.Internal.SpiceConstants.CONSTCtoK;




model Magnetic.FluxTubes.Examples.SaturatedInductor

Component
Version 3.2
Version 3.2.1
r_mFe

B(start=0)



model Magnetic.FluxTubes.Examples.SolenoidActuator.ComparisonQuasiStationary

Component
Version 3.2
Version 3.2.1
advancedFeed_x
exact=true
exact=false



model Magnetic.FluxTubes.Examples.SolenoidActuator.Components.AdvancedSolenoid

Component
Version 3.2
Version 3.2.1
g_mFePole

r_i=0



model Magnetic.FluxTubes.Basic.ElectroMagneticConverter

Component
Version 3.2
Version 3.2.1
N
start=1


=1



model Magnetic.FluxTubes.Basic.ConstantReluctance

Component
Version 3.2
Version 3.2.1
R_m
start=1


=1



model Magnetic.FluxTubes.Basic.LeakageWithCoefficient

Component
Version 3.2
Version 3.2.1
c_usefulFlux
start=0.7


=0.7



model Magnetic.FluxTubes.Basic.EddyCurrent

Component
Version 3.2
Version 3.2.1
rho
start=0.098e-6


=0.098e-6
l
start=1


=1
A
start=1


=1



model Magnetic.FluxTubes.Shapes.FixedShape.HollowCylinderAxialFlux

Component
Version 3.2
Version 3.2.1
l
start=0.01


=0.01
r_i
start=0


=0
r_o
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.FixedShape.HollowCylinderRadialFlux

Component
Version 3.2
Version 3.2.1
l
start=0.01


=0.01
r_i
start=0.01


=0.01
r_o
start=0.02


=0.02



model Magnetic.FluxTubes.Shapes.Force.HollowCylinderAxialFlux

Component
Version 3.2
Version 3.2.1
r_i
start=0


=0
r_o
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.Force.HollowCylinderRadialFlux

Component
Version 3.2
Version 3.2.1
r_i
start=0.01


=0.01
r_o
start=0.015


=0.015



model Magnetic.FluxTubes.Shapes.Force.CuboidParallelFlux

Component
Version 3.2
Version 3.2.1
a
start=0.01


=0.01
b
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.Force.CuboidOrthogonalFlux

Component
Version 3.2
Version 3.2.1
a
start=0.01


=0.01
b
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.Force.LeakageAroundPoles

Component
Version 3.2
Version 3.2.1
w
start=0.1


=0.1
r
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.Leakage.QuarterCylinder

Component
Version 3.2
Version 3.2.1
l
start=0.1


=0.1



model Magnetic.FluxTubes.Shapes.Leakage.QuarterHollowCylinder

Component
Version 3.2
Version 3.2.1
l
start=0.1


=0.1



model Magnetic.FluxTubes.Shapes.Leakage.HalfCylinder

Component
Version 3.2
Version 3.2.1
l
start=0.1


=0.1



model Magnetic.FluxTubes.Shapes.Leakage.HalfHollowCylinder

Component
Version 3.2
Version 3.2.1
l
start=0.1


=0.1



model Magnetic.FluxTubes.Shapes.Leakage.QuarterSphere

Component
Version 3.2
Version 3.2.1
r
start=0.005


=0.005



model Magnetic.FluxTubes.Shapes.Leakage.EighthOfSphere

Component
Version 3.2
Version 3.2.1
r
start=0.01


=0.01



model Magnetic.FluxTubes.Shapes.Leakage.CoaxCylindersEndFaces

Component
Version 3.2
Version 3.2.1
r_0
start=10e-3


=10e-3
r_1
start=17e-3


=17e-3
r_2
start=20e-3


=20e-3



connector Magnetic.FluxTubes.Interfaces.MagneticPort

Component
Version 3.2
Version 3.2.1
V_m
SIunits.MagneticPotentialDifference
SIunits.MagneticPotential



model Magnetic.FluxTubes.Interfaces.PartialTwoPorts

Component
Version 3.2
Version 3.2.1
Phi

start=0



model Magnetic.FluxTubes.Sources.SignalMagneticPotentialDifference

Component
Version 3.2
Version 3.2.1
V_m

unit="A"



model Magnetic.FluxTubes.Sources.SignalMagneticFlux

Component
Version 3.2
Version 3.2.1
Phi

unit="Wb"



model Magnetic.FluxTubes.Sensors.MagneticPotentialDifferenceSensor

Component
Version 3.2
Version 3.2.1
V_m

final quantity="MagneticPotential"

final unit="A"



model Magnetic.FluxTubes.Sensors.MagneticFluxSensor

Component
Version 3.2
Version 3.2.1
Phi

final quantity="MagneticFlux"

final unit="Wb"



model Magnetic.FundamentalWave.Examples.Components.EddyCurrentLosses

Component
Version 3.2
Version 3.2.1
star_e

m=m
star_m

m=m
sineVoltage_e

m=m

V=fill(1, m)

freqHz=fill(1, m)
sineVoltage_m

m=m

V=fill(1, m)

freqHz=fill(1, m)
converter_e
orientation=Modelica_3_2.Magnetic.FundamentalWave.BasicMachines.Functions.symmetricOrientation(3)
orientation=Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)
m=3
m=m
effectiveTurns=fill(N, 3)
effectiveTurns=fill(N, m)
converter_m
orientation=Modelica_3_2.Magnetic.FundamentalWave.BasicMachines.Functions.symmetricOrientation(3)
orientation=Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)
effectiveTurns=fill(N, 3)
effectiveTurns=fill(N, m)
m=3
m=m
loss_e
G=fill(Gc, 3)
G=fill(Gc, m)

m=m
loss_m
G=3*N^2*Gc/2
G=m*N^2*Gc/2
powerb_e

m=m
powerb_m

m=m
RLeader
Present

leader_e
Present



leader_m
Present



m

Present
R

Present
resistor_e

Present


resistor_m

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(sineVoltage_e.plug_n, converter_e.plug_n); initial equation

reluctance_e.Phi = Complex(0, 0);
reluctance_m.Phi = Complex(0, 0);

equation
 &nbspconnect(sineVoltage_e.plug_n, converter_e.plug_n);
connect(sineVoltage_e.plug_n, star_e.plug_p);
...
connect(converter_m.port_n, mground_m.port_p);
connect(leader_e.plug_p, sineVoltage_e.plug_p); connect(resistor_e.plug_p, sineVoltage_e.plug_p);
connect(sineVoltage_m.plug_p, leader_m.plug_p); connect(sineVoltage_m.plug_p, resistor_m.plug_p);
connect(leader_e.plug_n, powerb_e.pc); connect(resistor_e.plug_n, powerb_e.pc);
connect(powerb_e.pv, powerb_e.pc);
...
connect(powerb_e.nv, sineVoltage_e.plug_n);
connect(leader_m.plug_n, powerb_m.pc); connect(resistor_m.plug_n, powerb_m.pc);
connect(powerb_m.pc, powerb_m.pv);
...



model Magnetic.FundamentalWave.Examples.BasicMachines.AIMC_DOL

Component
Version 3.2
Version 3.2.1
sineVoltage
freqHz=fill(fsNominal, m)
freqHz=fill(fNominal, m)
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
aimcM
p=p
p=aimcData.p
Rs=Rs
Rs=aimcData.Rs
Lssigma=Lssigma
Lssigma=aimcData.Lssigma
Lm=Lm
Lm=aimcData.Lm
Lrsigma=Lrsigma
Lrsigma=aimcData.Lrsigma
Rr=Rr
Rr=aimcData.Rr
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = aimcData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = aimcData.alpha20r

Jr=aimcData.Jr

Js=aimcData.Js

fsNominal=aimcData.fsNominal

TsRef=aimcData.TsRef

Lszero=aimcData.Lszero

frictionParameters=aimcData.frictionParameters

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

TrRef=aimcData.TrRef

phiMechanical(fixed=true)

wMechanical(fixed=true)

TsOperational=293.15

TrOperational=293.15
aimcE
p=p
p=aimcData.p
Rs=Rs
Rs=aimcData.Rs
Lssigma=Lssigma
Lssigma=aimcData.Lssigma
Lm=Lm
Lm=aimcData.Lm
Lrsigma=Lrsigma
Lrsigma=aimcData.Lrsigma
Rr=Rr
Rr=aimcData.Rr
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = aimcData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = aimcData.alpha20r

fsNominal=aimcData.fsNominal

TsRef=aimcData.TsRef

Lszero=aimcData.Lszero

Jr=aimcData.Jr

Js=aimcData.Js

frictionParameters=aimcData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimcData.statorCoreParameters

strayLoadParameters=aimcData.strayLoadParameters

TsOperational=293.15

TrRef=aimcData.TrRef

TrOperational=293.15
fsNominal
Present

Rs
Present

Lssigma
Present

Lm
Present

Lrsigma
Present

Rr
Present

fNominal

Present
aimcData

Present


currentQuasiRMSSensor

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimcE.is = zeros(m);
aimcE.ir = zeros(2);
aimcM.is = zeros(m);
aimcM.ir[1:2] = zeros(2);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...
connect(terminalBoxM.plug_sp, aimcM.plug_sp);
connect(terminalBoxM.plugSupply, currentRMSsensorM.plug_n);

connect(aimcE.flange, loadInertiaE.flange_a);
...
connect(currentRMSsensorE.plug_p, idealCloser.plug_n);

connect(currentRMSsensorM.plug_n, currentQuasiRMSSensor.plug_p);
connect(terminalBoxM.plugSupply, currentQuasiRMSSensor.plug_n);



model Magnetic.FundamentalWave.Examples.BasicMachines.AIMS_Start

Component
Version 3.2
Version 3.2.1
RStart
=0.16
=0.16/aimsData.turnsRatio^2
sineVoltage
freqHz=fill(fsNominal, m)
freqHz=fill(fNominal, m)
idealCloser

Ron=fill(1e-5, m)

Goff=fill(1e-5, m)
currentRMSsensorM
Electrical.Machines.Sensors.CurrentQuasiRMSSensor
Electrical.MultiPhase.Sensors.CurrentQuasiRMSSensor
aimsM
Rs=Rs
Rs=aimsData.Rs
Lssigma=Lssigma
Lssigma=aimsData.Lssigma
Lm=Lm
Lm=aimsData.Lm
Lrsigma=Lrsigma
Lrsigma=aimsData.Lrsigma
Rr=Rr
Rr=aimsData.Rr
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = aimsData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = aimsData.alpha20r
p=p
p=aimsData.p

Jr=aimsData.Jr

Js=aimsData.Js

fsNominal=aimsData.fsNominal

TsRef=aimsData.TsRef

Lszero=aimsData.Lszero

frictionParameters=aimsData.frictionParameters

statorCoreParameters=aimsData.statorCoreParameters

strayLoadParameters=aimsData.strayLoadParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

Lrzero=aimsData.Lrzero

TrRef=aimsData.TrRef

useTurnsRatio=aimsData.useTurnsRatio

VsNominal=aimsData.VsNominal

VrLockedRotor=aimsData.VrLockedRotor

rotorCoreParameters=aimsData.rotorCoreParameters

TurnsRatio=aimsData.turnsRatio

TsOperational=293.15

TrOperational=293.15
aimsE
p=p
p=aimsData.p
Rs=Rs
Rs=aimsData.Rs
Lssigma=Lssigma
Lssigma=aimsData.Lssigma
Lm=Lm
Lm=aimsData.Lm
Lrsigma=Lrsigma
Lrsigma=aimsData.Lrsigma
Rr=Rr
Rr=aimsData.Rr
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = aimsData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = aimsData.alpha20r

fsNominal=aimsData.fsNominal

TsRef=aimsData.TsRef

Lszero=aimsData.Lszero

Jr=aimsData.Jr

Js=aimsData.Js

frictionParameters=aimsData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=aimsData.statorCoreParameters

strayLoadParameters=aimsData.strayLoadParameters

Lrzero=aimsData.Lrzero

TrRef=aimsData.TrRef

useTurnsRatio=aimsData.useTurnsRatio

VsNominal=aimsData.VsNominal

VrLockedRotor=aimsData.VrLockedRotor

rotorCoreParameters=aimsData.rotorCoreParameters

TsOperational=566.3

turnsRatio=aimsData.turnsRatio

TrOperational=566.3
rheostatM

m=m
rheostatE

m=m
fsNominal
Present

p
Present

Rs
Present

Lssigma
Present

Lm
Present

Lrsigma
Present

Rr
Present

fNominal

Present
aimsData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(star.pin_n, ground.p); initial equation

aimsE.is = zeros(3);
aimsE.ir = zeros(3);
aimsM.is = zeros(3);
aimsM.ir = zeros(3);

equation
 &nbspconnect(star.pin_n, ground.p);
connect(sineVoltage.plug_n, star.plug_p);
...



model Magnetic.FundamentalWave.Examples.BasicMachines.SMPM_Inverter

Component
Version 3.2
Version 3.2.1
currentRMSsensorM
Electrical.Machines.Sensors.CurrentQuasiRMSSensor
Electrical.MultiPhase.Sensors.CurrentQuasiRMSSensor
smpmM
Rs=Rs
Rs=smpmData.Rs
Lssigma=Lssigma
Lssigma=smpmData.Lssigma
Lmd=Lmd
Lmd=smpmData.Lmd
Lmq=Lmq
Lmq=smpmData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smpmData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smpmData.Lrsigmaq
Rrd=Rrd
Rrd=smpmData.Rrd
Rrq=Rrq
Rrq=smpmData.Rrq
p=p
p=smpmData.p
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smpmData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smpmData.alpha20r

Jr=smpmData.Jr

Js=smpmData.Js

fsNominal=smpmData.fsNominal

TsRef=smpmData.TsRef

Lszero=smpmData.Lszero

phiMechanical(fixed=true)

wMechanical(fixed=true)

useDamperCage=smpmData.useDamperCage

TrRef=smpmData.TrRef

VsOpenCircuit=smpmData.VsOpenCircuit

frictionParameters=smpmData.frictionParameters

statorCoreParameters=smpmData.statorCoreParameters

strayLoadParameters=smpmData.strayLoadParameters

permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters

TsOperational=293.15

TrOperational=293.15

ir(fixed=true)
smpmE
Rs=Rs
Rs=smpmData.Rs
Lssigma=Lssigma
Lssigma=smpmData.Lssigma
Lmd=Lmd
Lmd=smpmData.Lmd
Lmq=Lmq
Lmq=smpmData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smpmData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smpmData.Lrsigmaq
Rrd=Rrd
Rrd=smpmData.Rrd
Rrq=Rrq
Rrq=smpmData.Rrq
p=p
p=smpmData.p
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smpmData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smpmData.alpha20r

fsNominal=smpmData.fsNominal

TsRef=smpmData.TsRef

Lszero=smpmData.Lszero

Jr=smpmData.Jr

Js=smpmData.Js

frictionParameters=smpmData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=smpmData.statorCoreParameters

strayLoadParameters=smpmData.strayLoadParameters

VsOpenCircuit=smpmData.VsOpenCircuit

useDamperCage=smpmData.useDamperCage

TrRef=smpmData.TrRef

permanentMagnetLossParameters=smpmData.permanentMagnetLossParameters

TsOperational=293.15

ir(fixed=true)

TrOperational=293.15
rotorAngleM
p=p
p=smpmM.p
rotorAngleE
p=p
p=smpmE.p
torqueStepM

offsetTorque=0
torqueStepE

offsetTorque=0
p
Present

Rs
Present

Lssigma
Present

Lmd
Present

Lmq
Present

Lrsigmad
Present

Lrsigmaq
Present

Rrd
Present

Rrq
Present

smpmData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(signalVoltage.plug_n, star.plug_p); initial equation

smpmE.is[1:2] = zeros(2);
smpmM.is[1:2] = zeros(2);

equation
 &nbspconnect(signalVoltage.plug_n, star.plug_p);
connect(star.pin_n, ground.p);
...



model Magnetic.FundamentalWave.Examples.BasicMachines.SMEE_Generator

Component
Version 3.2
Version 3.2.1
smeeM
Rs=Rs
Rs=smeeData.Rs
Lssigma=Lssigma
Lssigma=smeeData.Lssigma
Lmd=Lmd
Lmd=smeeData.Lmd
Lmq=Lmq
Lmq=smeeData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smeeData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smeeData.Lrsigmaq
Rrd=Rrd
Rrd=smeeData.Rrd
Rrq=Rrq
Rrq=smeeData.Rrq
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smeeData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smeeData.alpha20r
alpha20e(displayUnit="1/K")
alpha20e(displayUnit="1/K") = smeeData.alpha20e

Jr=0.29

Js=0.29

p=2

fsNominal=smeeData.fsNominal

TsRef=smeeData.TsRef

useDamperCage=true

TrRef=smeeData.TrRef

VsNominal=smeeData.VsNominal

IeOpenCircuit=smeeData.IeOpenCircuit

Re=smeeData.Re

TeRef=smeeData.TeRef

sigmae=smeeData.sigmae

statorCoreParameters(VRef=100)

strayLoadParameters(IRef=100)

brushParameters(ILinear=0.01)

TsOperational=293.15

TrOperational=293.15

TeOperational=293.15

ir(fixed=true)
smeeE
Rs=Rs
Rs=smeeData.Rs
Lssigma=Lssigma
Lssigma=smeeData.Lssigma
Lmd=Lmd
Lmd=smeeData.Lmd
Lmq=Lmq
Lmq=smeeData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smeeData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smeeData.Lrsigmaq
Rrd=Rrd
Rrd=smeeData.Rrd
Rrq=Rrq
Rrq=smeeData.Rrq
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smeeData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smeeData.alpha20r
alpha20e(displayUnit="1/K")
alpha20e(displayUnit="1/K") = smeeData.alpha20e

p=2

fsNominal=smeeData.fsNominal

TsRef=smeeData.TsRef

Jr=0.29

Js=0.29

frictionParameters(PRef=0)

statorCoreParameters(PRef=0, VRef=100)

strayLoadParameters(PRef=0, IRef=100)

useDamperCage=true

VsNominal=smeeData.VsNominal

IeOpenCircuit=smeeData.IeOpenCircuit

Re=smeeData.Re

TeRef=smeeData.TeRef

sigmae=smeeData.sigmae

brushParameters(V=0, ILinear=0.01)

TrRef=smeeData.TrRef

TsOperational=293.15

ir(fixed=true)

TrOperational=293.15

TeOperational=293.15
smeeData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(rotorAngleE.plug_n,smeeE. plug_sn); initial equation

smeeE.is[1:2] = zeros(2);
smeeM.is[1:2] = zeros(2);

equation
 &nbspconnect(rotorAngleE.plug_n, smeeE.plug_sn);
connect(rotorAngleE.plug_p,smeeE. plug_sp);
...



model Magnetic.FundamentalWave.Examples.BasicMachines.SMR_Inverter

Component
Version 3.2
Version 3.2.1
currentRMSsensorM
Electrical.Machines.Sensors.CurrentQuasiRMSSensor
Electrical.MultiPhase.Sensors.CurrentQuasiRMSSensor
smrM
p=p
p=smrData.p
Rs=Rs
Rs=smrData.Rs
Lssigma=Lssigma
Lssigma=smrData.Lssigma
Lmd=Lmd
Lmd=smrData.Lmd
Lmq=Lmq
Lmq=smrData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smrData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smrData.Lrsigmaq
Rrd=Rrd
Rrd=smrData.Rrd
Rrq=Rrq
Rrq=smrData.Rrq
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smrData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smrData.alpha20r

Jr=smrData.Jr

Js=smrData.Js

fsNominal=smrData.fsNominal

TsRef=smrData.TsRef

Lszero=smrData.Lszero

frictionParameters=smrData.frictionParameters

statorCoreParameters=smrData.statorCoreParameters

strayLoadParameters=smrData.strayLoadParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

useDamperCage=smrData.useDamperCage

TrRef=smrData.TrRef

TsOperational=293.15

TrOperational=293.15

ir(fixed=true)
smrE
p=p
p=smrData.p
Rs=Rs
Rs=smrData.Rs
Lssigma=Lssigma
Lssigma=smrData.Lssigma
Lmd=Lmd
Lmd=smrData.Lmd
Lmq=Lmq
Lmq=smrData.Lmq
Lrsigmad=Lrsigmad
Lrsigmad=smrData.Lrsigmad
Lrsigmaq=Lrsigmaq
Lrsigmaq=smrData.Lrsigmaq
Rrd=Rrd
Rrd=smrData.Rrd
Rrq=Rrq
Rrq=smrData.Rrq
alpha20s(displayUnit="1/K")
alpha20s(displayUnit="1/K") = smrData.alpha20s
alpha20r(displayUnit="1/K")
alpha20r(displayUnit="1/K") = smrData.alpha20r

fsNominal=smrData.fsNominal

TsRef=smrData.TsRef

Lszero=smrData.Lszero

Jr=smrData.Jr

Js=smrData.Js

frictionParameters=smrData.frictionParameters

phiMechanical(fixed=true)

wMechanical(fixed=true)

statorCoreParameters=smrData.statorCoreParameters

strayLoadParameters=smrData.strayLoadParameters

useDamperCage=smrData.useDamperCage

TrRef=smrData.TrRef

TsOperational=293.15

ir(fixed=true)

TrOperational=293.15
rotorAngleM
p=p
p=smrM.p
rotorAngleE
p=p
p=smrE.p
torqueStepM

offsetTorque=0
torqueStepE

offsetTorque=0
p
Present

Rs
Present

Lssigma
Present

Lmd
Present

Lmq
Present

Lrsigmad
Present

Lrsigmaq
Present

Rrd
Present

Rrq
Present

smrData

Present




Equations in Version 3.2 Equations in Version 3.2.1
connect(signalVoltage.plug_n, star.plug_p); initial equation

smrE.is[1:2] = zeros(2);
smrM.is[1:2] = zeros(2);

equation
 &nbspconnect(signalVoltage.plug_n, star.plug_p);
connect(star.pin_n, ground.p);
...



model Magnetic.FundamentalWave.Components.MultiPhaseElectroMagneticConverter

Component
Version 3.2
Version 3.2.1
v

Present
i

Present
V_m

Present
Phi

Present



model Magnetic.FundamentalWave.BasicMachines.AsynchronousInductionMachines.AIM_SquirrelCage

Component
Version 3.2
Version 3.2.1
ir

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(airGap.port_rn, rotorCage.port_n);
connect(airGap.port_rp, rotorCage.port_p);

connect(rotorCage.heatPortWinding, internalThermalPort.heatPortRotorWinding);

connect(airGap.port_rn, rotorCage.port_p);
connect(airGap.port_rp, rotorCage.port_n);



model Magnetic.FundamentalWave.BasicMachines.AsynchronousInductionMachines.AIM_SlipRing

Component
Version 3.2
Version 3.2.1
plug_rn
final m=m
final m=mr
plug_rp
final m=m
final m=mr
rotor
final m=m
final m=mr
mr

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(rotor.plug_n, plug_rn);
connect(airGap.port_rn, rotor.port_n);
connect(airGap.port_rp, rotor.port_p);

connect(rotor.heatPortCore, internalThermalPort.heatPortRotorCore);
...
connect(plug_rp, rotor.plug_p);

connect(airGap.port_rn, rotor.port_p);
connect(airGap.port_rp, rotor.port_n);



model Magnetic.FundamentalWave.BasicMachines.SynchronousInductionMachines.SM_PermanentMagnet

Component
Version 3.2
Version 3.2.1
permanentMagnet
Magnetic.FundamentalWave.Sources.ConstantMagneticPotentialDifference
Magnetic.FundamentalWave.BasicMachines.Components.PermanentMagnet
heatFlowSensorDamperCage
Present



TpmOperational

Present
permanentMagnetLossParameters

Present
ir

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1

connect(ir, rotorCage.i);
connect(damperCageLossPower, rotorCage.lossPower);
if not useDamperCage then
damperCageLossPower=0;
end if;
connect(permanentMagnet.port_p, airGap.port_rn);
connect(permanentMagnet.port_n, short.port_n); connect(permanentMagnet.support, airGap.support);
connect(permanentMagnet.port_n, rotorCage.port_n); connect(permanentMagnet.heatPort, internalThermalPort.heatPortPermanentMagnet);
connect(short.port_p, airGap.port_rp); connect(permanentMagnet.flange, inertiaRotor.flange_b);
connect(rotorCage.port_p, airGap.port_rp); connect(airGap.port_rp, rotorCage.port_n);
connect(rotorCage.heatPortWinding, heatFlowSensorDamperCage.port_a); connect(short.port_n, airGap.port_rp);
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding); connect(short.port_p, permanentMagnet.port_n);

connect(rotorCage.port_p, permanentMagnet.port_n);
connect(rotorCage.heatPortWinding, internalThermalPort.heatPortRotorWinding);



model Magnetic.FundamentalWave.BasicMachines.SynchronousInductionMachines.SM_ElectricalExcited

Component
Version 3.2
Version 3.2.1
brush

final useHeatPort=true
heatFlowSensorDamperCage
Present



ir

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(short.port_n, rotorCage.port_n); connect(ir, rotorCage.i);
connect(excitation.port_n, short.port_n); connect(damperCageLossPower, rotorCage.lossPower);
connect(excitation.port_n, rotorCage.port_n); if not useDamperCage then

damperCageLossPower=0;
end if;
connect(pin_en, excitation.pin_n);
connect(airGap.port_rn, excitation.port_p);
connect(airGap.port_rp, short.port_p);
connect(airGap.port_rp, rotorCage.port_p);

connect(pin_ep, brush.p);
...
connect(excitation.heatPortWinding, internalThermalPort.heatPortExcitation);
connect(rotorCage.heatPortWinding, heatFlowSensorDamperCage.port_a); connect(airGap.port_rp, rotorCage.port_n);
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding); connect(short.port_n, airGap.port_rp);

connect(rotorCage.port_p, excitation.port_n);
connect(short.port_p, excitation.port_n);
connect(rotorCage.heatPortWinding, internalThermalPort.heatPortRotorWinding);



model Magnetic.FundamentalWave.BasicMachines.SynchronousInductionMachines.SM_ReluctanceRotor

Component
Version 3.2
Version 3.2.1
heatFlowSensorDamperCage
Present



ir

Present
damperCageLossPower

Present


Equations in Version 3.2 Equations in Version 3.2.1
connect(airGap.port_rn, short.port_n); connect(ir, rotorCage.i);
connect(airGap.port_rn, rotorCage.port_n); connect(damperCageLossPower, rotorCage.lossPower);
connect(airGap.port_rp, short.port_p); if not useDamperCage then
connect(airGap.port_rp, rotorCage.port_p); damperCageLossPower=0;
connect(rotorCage.heatPortWinding, heatFlowSensorDamperCage.port_a); end if;
connect(heatFlowSensorDamperCage.port_b, internalThermalPort.heatPortRotorWinding); connect(rotorCage.port_n, airGap.port_rp);

connect(short.port_n, airGap.port_rp);
connect(rotorCage.port_p, airGap.port_rn);
connect(short.port_p, airGap.port_rn);
connect(rotorCage.heatPortWinding, internalThermalPort.heatPortRotorWinding);



model Magnetic.FundamentalWave.BasicMachines.Components.SymmetricMultiPhaseWinding

Component
Version 3.2
Version 3.2.1
electroMagneticConverter
final orientation=Functions.symmetricOrientation(m)
final orientation=Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)
core
final G=(m/2)*GcRef/effectiveTurns^2
final G=(m/2)*GcRef*effectiveTurns^2
strayReluctance
final R_m(d=3*effectiveTurns^2/2/Lsigma, q=3*effectiveTurns^2/2/Lsigma)
final R_m(d=m*effectiveTurns^2/2/Lsigma, q=m*effectiveTurns^2/2/Lsigma)



model Magnetic.FundamentalWave.BasicMachines.Components.SymmetricMultiPhaseCageWinding

Component
Version 3.2
Version 3.2.1
i
each start=0

winding
final orientation={2*pi*(k - 1)/m for k in 1:m}
final orientation=Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m)



model Magnetic.FundamentalWave.BasicMachines.Components.SaliencyCageWinding

Component
Version 3.2
Version 3.2.1
i
Magnetic.FundamentalWave.Types.SalientCurrent
Blocks.Interfaces.RealOutput

sizes= 2
lossPower

Present



model Magnetic.FundamentalWave.Interfaces.PartialBasicInductionMachine

Component
Version 3.2
Version 3.2.1
m
constant
parameter

min=3
frictionParameters
wRef(start=2*pi*fsNominal/p)


wRef=2*pi*fsNominal/p
statorCoreParameters
wRef(start=2*pi*fsNominal/p)


wRef=2*pi*fsNominal/p
strayLoadParameters
wRef(start=2*pi*fsNominal/p)


wRef=2*pi*fsNominal/p
phiMechanical

start=0
wMechanical

start=0
powerBalance
final powerStator=Modelica_3_2.Electrical.Machines.SpacePhasors.Functions.activePower(vs, is)
final powerStator=Modelica.Electrical.MultiPhase.Functions.activePower(vs, is)
final lossPowerStatorWinding=-sum(stator.heatPortWinding.Q_flow)
final lossPowerStatorWinding=sum(stator.resistor.resistor.LossPower)
final lossPowerStatorCore=-stator.heatPortCore.Q_flow
final lossPowerStatorCore=stator.core.lossPower
final lossPowerStrayLoad=-strayLoad.heatPort.Q_flow
final lossPowerStrayLoad=strayLoad.lossPower
final lossPowerFriction=-friction.heatPort.Q_flow
final lossPowerFriction=friction.lossPower
thermalAmbient

final m=m
thermalPort

final m=m
strayLoad

final useHeatPort=true

final m=m
friction

final useHeatPort=true
internalThermalPort

final m=m


Equations in Version 3.2 Equations in Version 3.2.1
connect(stator.plug_n, plug_sn); initial algorithm

assert(not Modelica.Math.isPowerOf2(m), String(m) +
    " phases are currently not supported in this version of FundametalWave");

equation
 &nbspconnect(stator.plug_n, plug_sn);
connect(thermalPort,internalThermalPort);
...



record Magnetic.FundamentalWave.Types.Salient

Component
Version 3.2
Version 3.2.1
d

replaceable
q

replaceable



model Mechanics.MultiBody.World

Component
Version 3.2
Version 3.2.1
ndim_pointGravity
=if enableAnimation and animateGravity and gravityType == 2 then 1 else 0
=if enableAnimation and animateGravity and gravityType == GravityTypes.UniformGravity then 1 else 0


Equations in Version 3.2 Equations in Version 3.2.1
Connections.root(frame_b.R);
assert(Modelica_3_2.Math.Vectors.length(n) > 1.e-10,
"Parameter n of World object is wrong (length(n) > 0 required)");
assert(Modelica.Math.Vectors.length(
n) > 1.e-10,
"Parameter n of World object is wrong (length(n) > 0 required)");
frame_b.r_0 = zeros(3);
...



model Mechanics.MultiBody.Examples.Elementary.FreeBody

Component
Version 3.2
Version 3.2.1
body
r_0(start={0.2,-0.5,0.1}, fixed=true)
r_0(start={0.2,-0.5,0.1}, each fixed=true)
v_0(fixed=true)


v_0(each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.InitSpringConstant

Component
Version 3.2
Version 3.2.1
spring
c(fixed=false) = 100
c(fixed=false, start=100)



model Mechanics.MultiBody.Examples.Elementary.PointGravity

Component
Version 3.2
Version 3.2.1
body1
r_0(start={0,0.6,0}, fixed=true)
r_0(start={0,0.6,0}, each fixed=true)
v_0(start={1,0,0}, fixed=true)
v_0(start={1,0,0}, each fixed=true)
body2
r_0(start={0.6,0.6,0}, fixed=true)
r_0(start={0.6,0.6,0}, each fixed=true)
v_0(start={0.6,0,0}, fixed=true)
v_0(start={0.6,0,0}, each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses

Component
Version 3.2
Version 3.2.1
body1
r_0(start={0,0.6,0}, fixed=true)
r_0(start={0,0.6,0}, each fixed=true)
v_0(start={1,0,0}, fixed=true)
v_0(start={1,0,0}, each fixed=true)
body2
r_0(start={0.6,0.6,0}, fixed=true)
r_0(start={0.6,0.6,0}, each fixed=true)
v_0(start={0.6,0,0}, fixed=true)
v_0(start={0.6,0,0}, each fixed=true)
body3
r_0(start={0,0.8,0}, fixed=true)
r_0(start={0,0.8,0}, each fixed=true)
v_0(start={0.6,0,0}, fixed=true)
v_0(start={0.6,0,0}, each fixed=true)
body4
r_0(start={0.3,0.8,0}, fixed=true)
r_0(start={0.3,0.8,0}, each fixed=true)
v_0(start={0.6,0,0}, fixed=true)
v_0(start={0.6,0,0}, each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.PointGravityWithPointMasses2

Component
Version 3.2
Version 3.2.1
pointMass1
r_0(start={3,0,0}, fixed=true)
r_0(start={3,0,0}, each fixed=true)
v_0(start={0,0,-1}, fixed=true)
v_0(start={0,0,-1}, each fixed=true)
pointMass3
r_0(start={2,1,0}, fixed=true)
r_0(start={2,1,0}, each fixed=true)
v_0(start={0,0,-1}, fixed=true)
v_0(start={0,0,-1}, each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.SpringDamperSystem

Component
Version 3.2
Version 3.2.1
body1
r_0(start={0.3,-0.2,0}, fixed=true)
r_0(start={0.3,-0.2,0}, each fixed=true)
v_0(fixed=true)

w_0_start(displayUnit="deg/s") = {0,0,0.03490658503988659}


v_0(each fixed=true)

w_0_start(each displayUnit="deg/s") = {0,0,0.03490658503988659}



model Mechanics.MultiBody.Examples.Elementary.SpringWithMass

Component
Version 3.2
Version 3.2.1
body
r_0(start={0,-0.3,0}, fixed=true)
r_0(start={0,-0.3,0}, each fixed=true)
v_0(fixed=true)


v_0(each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.ThreeSprings

Component
Version 3.2
Version 3.2.1
body1
r_0(start={0.5,-0.3,0}, fixed=true)
r_0(start={0.5,-0.3,0}, each fixed=true)
v_0(fixed=true)


v_0(each fixed=true)



model Mechanics.MultiBody.Examples.Elementary.HeatLosses

Component
Version 3.2
Version 3.2.1
body1
r_0(start={0.3,-0.2,0}, fixed=true)
r_0(start={0.3,-0.2,0}, each fixed=true)
v_0(fixed=true)

w_0_start(displayUnit="deg/s") = {0,0,0.034906585039887}


v_0(each fixed=true)

w_0_start(each displayUnit="deg/s") = {0,0,0.034906585039887}
body2
r_0(start={0.6,-0.2,0}, fixed=true)
r_0(start={0.6,-0.2,0}, each fixed=true)
v_0(fixed=true)

w_0_start(displayUnit="deg/s") = {0,0,0.034906585039887}


v_0(each fixed=true)

w_0_start(each displayUnit="deg/s") = {0,0,0.034906585039887}
body3
r_0(start={0.9,-0.2,0}, fixed=true)
r_0(start={0.9,-0.2,0}, each fixed=true)
v_0(fixed=true)

w_0_start(displayUnit="deg/s") = {0,0,0.034906585039887}


v_0(each fixed=true)

w_0_start(each displayUnit="deg/s") = {0,0,0.034906585039887}



model Mechanics.MultiBody.Examples.Elementary.UserDefinedGravityField

Component
Version 3.2
Version 3.2.1
world
redeclare function gravityAcceleration = Modelica.Mechanics.MultiBody.Examples.Elementary.Utilities.theoreticalNormalGravityWGS84 (mue=1, phi=geodeticLatitude)
redeclare function gravityAcceleration = Modelica.Mechanics.MultiBody.Examples.Elementary.Utilities.theoreticalNormalGravityWGS84 (mue=1, phi=geodeticLatitude)



model Mechanics.MultiBody.Examples.Elementary.Surfaces

Component
Version 3.2
Version 3.2.1
surface
redeclare function surfaceCharacteristic = Modelica.Mechanics.MultiBody.Examples.Elementary.Utilities.sineSurface (x_min=x_min, x_max=x_max, y_min=y_min, y_max=y_max, z_min=z_min, z_max=z_max, wz=wz)
redeclare function surfaceCharacteristic = Modelica.Mechanics.MultiBody.Examples.Elementary.Utilities.sineSurface (x_min=x_min, x_max=x_max, y_min=y_min, y_max=y_max, z_min=z_min, z_max=z_max, wz=wz)



model Mechanics.MultiBody.Examples.Loops.EngineV6_analytic

Component
Version 3.2
Version 3.2.1
engine
redeclare model Cylinder = Modelica.Mechanics.MultiBody.Examples.Loops.Utilities.Cylinder_analytic_CAD
redeclare model Cylinder = Modelica.Mechanics.MultiBody.Examples.Loops.Utilities.Cylinder_analytic_CAD



model Mechanics.MultiBody.Examples.Loops.Utilities.GasForce2



Equations in Version 3.2 Equations in Version 3.2.1

...
press*V = k*T;
assert(s_rel >= -1.e-12, "flange_b.s - flange_a.s (= " + String(s_rel) +
") >= 0 required for GasForce component.\n" +
"Most likely, the component has to be flipped.");
assert(s_rel >= -1.e-12, "flange_b.s - flange_a.s (= " + String(s_rel,
significantDigits=14) + ") >= 0 required for GasForce component.\n" +
"Most likely, the component has to be flipped.");
assert(s_rel <= L + 1.e-12, " flange_b.s - flange_a.s (= " + String(s_rel) +
" <= L (" + String(L) + ") required for GasForce component.\n" +
"Most likely, parameter L is not correct.");
assert(s_rel <= L + 1.e-12, " flange_b.s - flange_a.s (= " + String(s_rel,
significantDigits=14) + ") <= L (= " + String(L, significantDigits=14) +
") required for GasForce component.\n" +
"Most likely, parameter L is not correct.");



model Mechanics.MultiBody.Examples.Loops.Utilities.CylinderBase

Component
Version 3.2
Version 3.2.1
Rod
shapeType="2"
shapeType="modelica://Modelica/Resources/Data/Shapes/Engine/rod.dxf"
Piston
shapeType="3"
shapeType="modelica://Modelica/Resources/Data/Shapes/Engine/piston.dxf"



model Mechanics.MultiBody.Examples.Loops.Utilities.Cylinder_analytic_CAD

Component
Version 3.2
Version 3.2.1
CrankShape
shapeType="modelica://Modelica/Resources/Data/CAD/EngineV6/1.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/Engine/crank.dxf"



model Mechanics.MultiBody.Examples.Loops.Utilities.EngineV6_analytic

Component
Version 3.2
Version 3.2.1
crank

r={0,0,0}



model Mechanics.MultiBody.Examples.Rotational3DEffects.MovingActuatedDrive

Component
Version 3.2
Version 3.2.1
position1

w(fixed=true)
position2

w(fixed=true)



model Mechanics.MultiBody.Examples.Rotational3DEffects.GearConstraint

Component
Version 3.2
Version 3.2.1
gearConstraint

phi_b(fixed=true)

w_b(fixed=true)
inertia1
phi(fixed=true)
phi(fixed=true, start=0)
w(fixed=true)
w(fixed=true, start=0)



model Mechanics.MultiBody.Examples.Systems.RobotR3.Components.PathPlanning6

Component
Version 3.2
Version 3.2.1
angleBegDeg
unit="deg"


each unit="deg"
angleEndDeg
unit="deg"


each unit="deg"



model Mechanics.MultiBody.Examples.Systems.RobotR3.Components.Motor

Component
Version 3.2
Version 3.2.1
convert1
k=1


k(unit="V/A") = 1
convert2
k=1


k(unit="V/A") = 1



model Mechanics.MultiBody.Examples.Systems.RobotR3.Components.MechanicalStructure

Component
Version 3.2
Version 3.2.1
b0
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/0.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b0.dxf"
b1
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/1.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b1.dxf"
b2
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/2.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b2.dxf"
b3
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/3.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b3.dxf"
b4
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/4.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b4.dxf"
b5
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/5.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b5.dxf"
b6
shapeType="modelica://Modelica/Resources/Data/CAD/RobotR3/6.dxf"
shapeType="modelica://Modelica/Resources/Data/Shapes/RobotR3/b6.dxf"
load
lengthDirection=rLoad
lengthDirection=to_unit1(rLoad)

r={0,0,0}


Equations in Version 3.2 Equations in Version 3.2.1

...
qdd = der(qd);
tau = {r1.axis.tau,r2.axis.tau,r3.axis.tau,r4.axis.tau,r5.axis.tau,r6.
axis.tau};
tau = {r1.tau, r2.tau, r3.tau, r4.tau, r5.tau, r6.tau};
connect(load.frame_a, b6.frame_b);
...



model Mechanics.MultiBody.Forces.Force

Component
Version 3.2
Version 3.2.1
connectionLine
leng