Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
1c2f8d4
implemented start value for ie (excitation current) as requested in #…
AHaumer Jan 16, 2024
2abe232
Merge branch 'master' into 4242
AHaumer Sep 12, 2025
e5d970b
refs #4668: Fix inconsistency of rmdir w.r.t. mkdir/chdir (#4669)
beutlich Feb 7, 2026
658c22d
Fix build with VS 18.0 (#4732)
beutlich Feb 9, 2026
90f5dde
correct unintended pixel changes as requested by beutlich
AHaumer Feb 16, 2026
2731836
Merge branch 'master' into 4242
AHaumer Feb 16, 2026
0d91955
added a hint about L_stat and corrected usage of noEvent()
AHaumer Feb 16, 2026
eb3d604
Merge pull request #4269 from AHaumer/4242
AHaumer Feb 16, 2026
803246f
add a warning that M330_50A cannot be directly compared to other elec…
AHaumer Feb 16, 2026
5786583
Merge branch 'master' into FT_EMconverter
AHaumer Feb 16, 2026
74c1caa
Merge pull request #4739 from AHaumer/FT_EMconverter
AHaumer Feb 16, 2026
d95e809
Update Modelica/Magnetic/FluxTubes/Material/SoftMagnetic/package.mo
AHaumer Feb 16, 2026
216585d
Update Modelica/Magnetic/FluxTubes/Material/SoftMagnetic/package.mo
AHaumer Feb 16, 2026
d3f3bc8
Merge branch 'master' into FT_M330-50A
AHaumer Feb 16, 2026
66cd82f
Merge pull request #4740 from AHaumer/FT_M330-50A
AHaumer Feb 19, 2026
e5bdd0a
CMake: Set GCC version specific subfolder for MinGW (#4671)
beutlich Feb 21, 2026
6aaad1d
Remove redundant 'return' at end of algorithms
henrikt-ma Feb 2, 2026
c7513d3
Adding missing bracket in doc string
AnHeuermann Feb 25, 2026
c1b0ff3
Merge pull request #4736 from AnHeuermann/add-missing-brace
AHaumer Feb 25, 2026
9a68c6f
Remove trailing white-space
henrikt-ma Feb 26, 2026
81e2c95
Merge pull request #4748 from henrikt-ma/cleanup/trailing-whitespace
maltelenz Feb 26, 2026
2c0d22b
Merge pull request #4727 from henrikt-ma/redundant-return
AHaumer Mar 10, 2026
3ad2a45
#4738 Implement missing media properties in TableBased
MatthiasBSchaefer Mar 13, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Modelica/Blocks/Math.mo
Original file line number Diff line number Diff line change
Expand Up @@ -2607,9 +2607,9 @@ This block detects positive and negative peaks of differentiable and non-differe
For differentiable input signals, an extremum is detected if the derivative of the input signal is zero.
</p>
<p>
To handle non-differentiable input signals, the input signal <code>u</code> is conditioned by a first order with time constant <code>T</code>.
Like in the <a href=\"modelica://Modelica.Blocks.Continuous.Derivative\">derivative block</a>,
the derivative of the input signal is approximated by <code>(u - x)/T</code>.
To handle non-differentiable input signals, the input signal <code>u</code> is conditioned by a first order with time constant <code>T</code>.
Like in the <a href=\"modelica://Modelica.Blocks.Continuous.Derivative\">derivative block</a>,
the derivative of the input signal is approximated by <code>(u - x)/T</code>.
This way even steps with local extrema just before and after the step are taken into account.
</p>
<p>
Expand Down
6 changes: 3 additions & 3 deletions Modelica/Blocks/package.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1669,9 +1669,9 @@ Note that the ContinuousSignalExtremaBlock detects extrema of both signals witho

<p>The output of these blocks is updated after each period of the signal.</p>
<p>
Using a simple pulse series, these values can be calculated analytically.
Propagating these values as initial values for the output,
we can compare the numerical solution with the analytical solution:
Using a simple pulse series, these values can be calculated analytically.
Propagating these values as initial values for the output,
we can compare the numerical solution with the analytical solution:
The output is constant from the beginning.
</p>
</html>"));
Expand Down
2 changes: 0 additions & 2 deletions Modelica/Electrical/Analog/Basic/OpAmpDetailed.mo
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ model OpAmpDetailed "Detailed model of an operational amplifier"
else
result := (v_out - v_source)/Rout;
end if;
return;
annotation (Documentation(info="<html>
<p>Internal limitation function, designed for OpAmpDetailed, not for purpose of external usage.</p>
</html>"));
Expand All @@ -148,7 +147,6 @@ model OpAmpDetailed "Detailed model of an operational amplifier"
else
result := q_sum;
end if;
return;
annotation (Documentation(info="<html>
<p>Internal limitation function, designed for OpAmpDetailed, not for purpose of external usage.</p>
</html>"));
Expand Down
2 changes: 1 addition & 1 deletion Modelica/Electrical/Analog/Basic/Potentiometer.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ model Potentiometer "Adjustable resistor"
"Resistance at temperature T_ref";
parameter SI.Temperature T_ref=293.15 "Reference temperature";
parameter SI.LinearTemperatureCoefficient alpha=0
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref)))";
extends Modelica.Electrical.Analog.Interfaces.ConditionalHeatPort(T=T_ref);
parameter Boolean useRinput=false "Use input for 0<r<1 (else constant)"
annotation (
Expand Down
2 changes: 1 addition & 1 deletion Modelica/Electrical/Analog/Basic/Resistor.mo
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ model Resistor "Ideal linear electrical resistor"
"Resistance at temperature T_ref";
parameter SI.Temperature T_ref=300.15 "Reference temperature";
parameter SI.LinearTemperatureCoefficient alpha=0
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref)))";

extends Modelica.Electrical.Analog.Interfaces.OnePort;
extends Modelica.Electrical.Analog.Interfaces.ConditionalHeatPort(T=T_ref);
Expand Down
2 changes: 1 addition & 1 deletion Modelica/Electrical/Analog/Basic/VariableResistor.mo
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ model VariableResistor
"Ideal linear electrical resistor with variable resistance"
parameter SI.Temperature T_ref=300.15 "Reference temperature";
parameter SI.LinearTemperatureCoefficient alpha=0
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(T_heatPort - T_ref)))";
extends Modelica.Electrical.Analog.Interfaces.OnePort;
extends Modelica.Electrical.Analog.Interfaces.ConditionalHeatPort(T=T_ref);
SI.Resistance R_actual
Expand Down
10 changes: 5 additions & 5 deletions Modelica/Electrical/Analog/Examples/DemoPowerSupplyWithBuffer.mo
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ equation
experiment(Interval = 1e-05, Tolerance = 1e-6, StartTime = 0, StopTime = 1),
Documentation(info="<html>
<p>
At the beginning, the DC power supply charges the buffer capacitor within its limits (current, power, voltage).
The DC power supply is protected from back current by a buffer capacitor and a diode.
This also reduces current ripple of the power supply.
At the beginning, the DC power supply charges the buffer capacitor within its limits (current, power, voltage).
The DC power supply is protected from back current by a buffer capacitor and a diode.
This also reduces current ripple of the power supply.
</p>
<p>
Of course, if the load current feeds back a too high current to the buffer capacitor for a longer period of time,
Of course, if the load current feeds back a too high current to the buffer capacitor for a longer period of time,
the buffer capacitor's voltage increases. This should be under surveillance.
</p>
<p>
The load current is 0 up to 0.5 s, afterwards a pulse with amplitude 50 A, an offset of -25 A, a dutyCycle of 0.5 and a frequency of 1 kHz.
The load current is 0 up to 0.5 s, afterwards a pulse with amplitude 50 A, an offset of -25 A, a dutyCycle of 0.5 and a frequency of 1 kHz.
</p>
</html>"));
end DemoPowerSupplyWithBuffer;
10 changes: 5 additions & 5 deletions Modelica/Electrical/Analog/Ideal/OpAmpLimited.mo
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ In the first case the necessary power is drawn from an implicit internal supply,
<p>
For most applications it is sufficient to use default settings <code>useFirstOrder=false</code> (default on the Advanced-tab).
In this case the intermediate voltage <code>v_int</code> is simply <code>V0*v_in</code>.<br>
In some applications it might be necessary to set <code>useFirstOrder=true</code>
to let the intermediate voltage <code>v_int</code> rise according to a firstOrder with time constant <code>Tau</code>.
In some applications it might be necessary to set <code>useFirstOrder=true</code>
to let the intermediate voltage <code>v_int</code> rise according to a firstOrder with time constant <code>Tau</code>.
In that case the time constant <code>Tau</code> should fit to the dynamics of the input signal.
</p>
<p>
Expand All @@ -115,14 +115,14 @@ Intermediate voltage <code>v_int</code> is limited between positive supply and n
</p>
<h4>Initialization</h4>
<p>
<code>v_in.start</code> and <code>i_out.start</code> are just helpful starting values during initialization,
<code>v_in.start</code> and <code>i_out.start</code> are just helpful starting values during initialization,
it is unlikely that it is necessary to change the start values and / or to declare them as fixed.
</p>
<p>
If it is necessary to use <code>useFirstOrder=true</code>, it is essential to initialize intermediate voltage <code>v_int</code> correctly.<br>
As a default, default initialization (<strong>Linear</strong>) is sufficient: <code>v_int = V0*v_in</code>.<br>
However, in some cases the initialization has more than one solution and it is desired to set
<code>v_int</code> at the positive supply (<strong>UpperLimit</strong>) or
However, in some cases the initialization has more than one solution and it is desired to set
<code>v_int</code> at the positive supply (<strong>UpperLimit</strong>) or
<code>v_int</code> at the negative supply (<strong>LowerLimit</strong>).
</p>
</html>"));
Expand Down
78 changes: 39 additions & 39 deletions Modelica/Electrical/Analog/Lines/M_OLine.mo
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ public
parameter Boolean useInternalGround=true "= true if internal ground is used, otherwise use reference pin"
annotation(Evaluate=true, HideResult=true, choices(checkBox=true));
parameter SI.LinearTemperatureCoefficient alpha_R=0
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref)))";
parameter SI.LinearTemperatureCoefficient alpha_G=0
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref)))";
parameter Boolean useHeatPort=false "= true, if heatPort is enabled"
annotation (
Evaluate=true,
Expand Down Expand Up @@ -66,9 +66,9 @@ public
parameter Real Gl[dim_vector_lgc]=fill(1, dim_vector_lgc)
"Conductance matrix";
parameter SI.LinearTemperatureCoefficient alpha_R
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref)))";
parameter SI.LinearTemperatureCoefficient alpha_G
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref)))";
parameter Boolean useHeatPort=false "= true, if heatPort is enabled"
annotation (
Evaluate=true,
Expand Down Expand Up @@ -172,7 +172,7 @@ public
parameter Real Ll[dim_vector_lgc]=fill(1, dim_vector_lgc)
"Inductance matrix";
parameter SI.LinearTemperatureCoefficient alpha_R
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref)))";
parameter Boolean useHeatPort=false "= true, if HeatPort is enabled"
annotation (
Evaluate=true,
Expand Down Expand Up @@ -309,36 +309,36 @@ equation
extent={{-150,130},{150,90}},
textString="%name",
textColor={0,0,255})}), Documentation(info="<html>
<p>The <code>M_OLine</code> is a multi line model which consists of several segments
and several single lines. Each segment consists of resistors and inductors that
are connected in series in each single line, and of capacitors and conductors both
<p>The <code>M_OLine</code> is a multi line model which consists of several segments
and several single lines. Each segment consists of resistors and inductors that
are connected in series in each single line, and of capacitors and conductors both
between the lines and to the ground. The inductors are coupled to each other like in the
<a href=\"modelica://Modelica.Electrical.Analog.Basic.M_Transformer\">M_Transformer</a> model.
<a href=\"modelica://Modelica.Electrical.Analog.Basic.M_Transformer\">M_Transformer</a> model.
The following picture shows the schematic of a segment with four single lines (lines=4):</p>

<blockquote>
<img src=\"modelica://Modelica/Resources/Images/Electrical/Analog/Lines/segment.png\"
alt=\"segment.png\">
</blockquote>

<p>Note that the user can choose whether the optional &quot;refPin&quot;
is active (so that it can be connected to any other pin),
otherwise the internal &quot;ground&quot; is used.
<p>Note that the user can choose whether the optional &quot;refPin&quot;
is active (so that it can be connected to any other pin),
otherwise the internal &quot;ground&quot; is used.
This is done with the checkbox useInternalGround, true by default
(for compatibility with previous versions).
Obviously the potential of the internal ground is always zero,
Obviously the potential of the internal ground is always zero,
its current can be accessed for plotting.</p>

<p>The complete multi line consists of N segments and an auxiliary segment_last:</p>

<p align=\"center\"><code>-- segment_1 -- segment_2 -- ... -- segment_N -- segment_last --</code></p>

<p>In the picture of the segment can be seen, that a single segment is asymmetrical.
Connecting such asymmetrical segments in a series forces also an asymmetrical multi line.
To design a symmetrical model which is useful for coupling and which guaranties the same pin properties,
in <code>segment_1</code> only half valued resistors and inductors are used.
The remaining resistors and inductors are at the other end of the line within
the auxiliary <code>segment_last</code>. For the example with 4 lines the schematic of
<p>In the picture of the segment can be seen, that a single segment is asymmetrical.
Connecting such asymmetrical segments in a series forces also an asymmetrical multi line.
To design a symmetrical model which is useful for coupling and which guaranties the same pin properties,
in <code>segment_1</code> only half valued resistors and inductors are used.
The remaining resistors and inductors are at the other end of the line within
the auxiliary <code>segment_last</code>. For the example with 4 lines the schematic of
<code>segment_last</code> is like this:</p>

<blockquote>
Expand All @@ -347,75 +347,75 @@ the auxiliary <code>segment_last</code>. For the example with 4 lines the schema
</blockquote>

<p>The number of the capacitors and conductors depends on the number of single lines that are used,
because each line is coupled to every other line by both a capacitor and a conductor.
One line consists of <strong>at least two segments</strong>.
Inside the model <code>M_OLine</code> the model <code>segment</code> is used.
This model represents one segment which is build as described above.
For modelling the inductances and their mutual couplings the model
<a href=\"modelica://Modelica.Electrical.Analog.Basic.M_Transformer\">M_Transformer</a> is used.
To fill the resistance vector, resistance values as many as lines are needed, e.g.,
if there are four lines, four resistances are needed. For example for a microelectronic line
because each line is coupled to every other line by both a capacitor and a conductor.
One line consists of <strong>at least two segments</strong>.
Inside the model <code>M_OLine</code> the model <code>segment</code> is used.
This model represents one segment which is build as described above.
For modelling the inductances and their mutual couplings the model
<a href=\"modelica://Modelica.Electrical.Analog.Basic.M_Transformer\">M_Transformer</a> is used.
To fill the resistance vector, resistance values as many as lines are needed, e.g.,
if there are four lines, four resistances are needed. For example for a microelectronic line
of 0.1m length, a sensible resistance-vector would be R=[4.76e5, 1.72e5, 1.72e5, 1.72e5].</p>

<p>Filling the matrices of the inductances, capacitances and conductances is a bit more complicated,
because those components occur also between two lines and not only (like the resistor) in one line.
The entries of the matrices are given by the user in form of a vector.
The entries of the matrices are given by the user in form of a vector.
The vector length <code>dim_vector_lgc</code> is calculated by:</p>

<blockquote>
<pre>dim_vector_lgc = lines*(lines+1)/2</pre>
</blockquote>

<p>Inside the model a symmetrical inductance matrix, a symmetrical capacitance matrix and
a symmetrical conductance matrix are built out of the entries of the vectors given by the user.
a symmetrical conductance matrix are built out of the entries of the vectors given by the user.
The way of building is the same for each matrix, so the approach for filling one of the matrices
will be shown in the the example below.</p>

<h5>Example</h5>

<p>The number of lines is assumed to be four. To build the matrix, the model needs the
values from the main diagonal and from the positions that are below the main diagonal.
<p>The number of lines is assumed to be four. To build the matrix, the model needs the
values from the main diagonal and from the positions that are below the main diagonal.
To get the following matrix</p>

<blockquote>
<img src=\"modelica://Modelica/Resources/Images/Electrical/Analog/Lines/M_OLine-eqMatrix.png\" alt=\"Matrix\"/>
</blockquote>

<p>the vector with dim_vector_lgc=4*5/2=10 has to appear in the following way:
<p>the vector with dim_vector_lgc=4*5/2=10 has to appear in the following way:
vector = [<strong>1</strong>, 0.1, 0.2, 0.4, <strong>2</strong>, 0.3 0.5, <strong>3</strong>, 0.6, <strong>4</strong>]</p>

<p>For the example of a microelectronic line of 0.1m length,
which is used as default example for the <code>M_OLine</code> model,
<p>For the example of a microelectronic line of 0.1m length,
which is used as default example for the <code>M_OLine</code> model,
a sensible inductance-matrix would be:</p>

<blockquote>
<img src=\"modelica://Modelica/Resources/Images/Electrical/Analog/Lines/M_OLine-eqL.png\" alt=\"L\"/>
</blockquote>

<p>For the example of a microelectronic line of 0.1m length, which is used as default example
<p>For the example of a microelectronic line of 0.1m length, which is used as default example
for the <code>M_OLine</code> model, a sensible capacitance-matrix would be:</p>

<blockquote>
<img src=\"modelica://Modelica/Resources/Images/Electrical/Analog/Lines/M_OLine-eqC.png\" alt=\"C\"/>
</blockquote>

<p>For the example of a microelectronic line of 0.1m length, which is used as default example
<p>For the example of a microelectronic line of 0.1m length, which is used as default example
for the <code>M_OLine</code> model, a sensible conductance-matrix would be:</p>

<blockquote>
<img src=\"modelica://Modelica/Resources/Images/Electrical/Analog/Lines/M_OLine-eqG.png\" alt=\"G\"/>
</blockquote>

<p>The user has the possibility to enable a conditional heatport. If so, the <code>M_OLine</code>
<p>The user has the possibility to enable a conditional heatport. If so, the <code>M_OLine</code>
can be connected to a thermal network. If the parameter <code>alpha</code> is set to a value different than zero,
the <code>M_OLine</code> becomes temperature sensitive due to their resistors which resistances
the <code>M_OLine</code> becomes temperature sensitive due to their resistors which resistances
are calculated by</p>

<blockquote>
<pre>R_actual = R*(1 + alpha*(heatPort.T - T_ref))</pre>
</blockquote>

<p>and conductors calculated by</p>
<p>and conductors calculated by</p>

<blockquote>
<pre>G_actual = G/(1 + alpha*(heatPort.T - T_ref))</pre>
Expand Down
6 changes: 3 additions & 3 deletions Modelica/Electrical/Analog/Lines/OLine.mo
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ model OLine "Lossy Transmission Line"
start=1) "Length of line";
parameter Integer N(final min=1, start=1) "Number of lumped segments";
parameter SI.LinearTemperatureCoefficient alpha_R=0
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of resistance (R_actual = R*(1 + alpha*(heatPort.T - T_ref)))";
parameter SI.LinearTemperatureCoefficient alpha_G=0
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref))";
"Temperature coefficient of conductance (G_actual = G/(1 + alpha*(heatPort.T - T_ref)))";
parameter Boolean useHeatPort=false "= true, if heatPort is enabled"
annotation (
Evaluate=true,
Expand All @@ -48,7 +48,7 @@ model OLine "Lossy Transmission Line"
iconTransformation(extent={{-110,-110},{-90,-90}})));
output SI.Voltage v[N]=G.v "Voltages at the connections of the elements";
output SI.Current i[N+1]=R.i "Currents at the connections of the elements";
/*
/*
The components R[N+1], L[N+1], C[N] and G[N] have been protected in the previous release(s)
to avoid excessive size of simulation results.
Voltages and currents at the connections are now mirrored to alias variables
Expand Down
Loading
Loading