(15 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:benchmark]] |
[[Category:benchmark]] |
||
+ | [[Category:procedural]] |
||
[[Category:nonlinear]] |
[[Category:nonlinear]] |
||
[[Category:SISO]] |
[[Category:SISO]] |
||
Line 11: | Line 12: | ||
===Model 1=== |
===Model 1=== |
||
− | First, we discuss the modelling of an RC circuit, where the nonlinear resistors consist of a parallel connected resistor with a diode as shown in the above figure. For this, the underlying model is given by a |
+ | First, we discuss the modelling of an RC circuit, where the nonlinear resistors consist of a parallel connected resistor with a diode as shown in the above figure. For this, the underlying model is given by a SISO gradient system of the form <ref name="condon04"/>: |
:<math> |
:<math> |
||
Line 43: | Line 44: | ||
===Model 2=== |
===Model 2=== |
||
− | Second, we discuss the modelling of an RC circuit, where the nonlinear resistors are connected parallel to the capacitors (see Fig. 7 in <ref name = "RewW03"/>). For this, the underlying model is given by a |
+ | Second, we discuss the modelling of an RC circuit, where the nonlinear resistors are connected parallel to the capacitors (see Fig. 7 in <ref name = "RewW03"/>). For this, the underlying model is also given by a SISO gradient system of the form <ref name="RewW03"/>: |
:<math> |
:<math> |
||
− | \dot{x}(t) = \begin{pmatrix} - |
+ | \dot{x}(t) = \begin{pmatrix} -2 & 1& & \\ 1 & -2 & 1 & \\ & \ddots & \ddots & \ddots\\ & & 1 & -2 \end{pmatrix} x(t) + g(x), |
</math> |
</math> |
||
+ | |||
+ | and the output function: |
||
:<math> |
:<math> |
||
Line 53: | Line 56: | ||
</math> |
</math> |
||
− | where the <math>g</math> is a mapping <math>g(x_i):\mathbb{R} \to \mathbb{R}</math> |
+ | where the <math>g</math> is a mapping <math>g(x_i):\mathbb{R} \to \mathbb{R}</math>, respresenting the effect of a nonlinear resistor. |
:<math> |
:<math> |
||
− | g(x_i) = |
+ | g(x_i) = a\cdot \text{sgn}(x_i)\cdot x_i^2 |
</math> |
</math> |
||
− | which |
+ | which represents the effect of a nonlinear resistor, and sgn denotes the [[wikipedia:Sign_function|sign function]]. |
====Nonlinearity==== |
====Nonlinearity==== |
||
− | The nonlinearity <math>g_D</math> models a diode as a nonlinear resistor |
+ | The nonlinearity <math>g_D</math> models a diode as a nonlinear resistor <ref name="RewW03"/>: |
− | based on the [[wikipedia:Diode_modelling#Shockley_diode_model|Shockley model]] <ref name="reis14"/>: |
||
:<math> |
:<math> |
||
− | + | g(x_i) = a\cdot \text{sgn}(x_i)\cdot x_i^2 |
|
</math> |
</math> |
||
+ | which represents the effect of a nonlinear resistor, and sgn denotes the [[wikipedia:Sign_function|sign function]]. |
||
− | with material parameters <math>i_S > 0</math> and <math>u_P > 0</math>. |
||
+ | |||
⚫ | |||
+ | |||
+ | Alternatively, the variant from <ref name="kawano19"/> can be used, featuring the nonlinearity: |
||
+ | |||
+ | :<math> |
||
+ | g(x_i) = \frac{x_i^2}{2} + \frac{x_i^3}{3}. |
||
+ | </math> |
||
+ | |||
+ | This represents practically a resistor-inductor cascade with nonlinear resistors. |
||
+ | |||
+ | ===Model 3=== |
||
+ | Third, a circuit of chained [[wikipedia:Inverter_(logic_gate)|inverter gates]], a so-called inverter chain <ref name="gu12"/>, is presented. |
||
+ | This is a SISO system, given by: |
||
+ | |||
+ | :<math> |
||
+ | \dot{x}(t) = -x(t) + \begin{pmatrix} 0 \\ g(x_1(t)) \\ \vdots \\ g(x_{N-1}(t)) \end{pmatrix} + \begin{pmatrix} u(t) \\ 0 \\ \vdots \\ 0 \end{pmatrix}, |
||
+ | </math> |
||
+ | |||
+ | and the output function: |
||
+ | |||
+ | :<math> |
||
+ | y(t) = x_N(t). |
||
+ | </math> |
||
+ | |||
+ | ====Nonlinearity==== |
||
+ | |||
+ | The nonlinear function <math>g</math> is a mapping <math>g(x_i):\mathbb{R} \to \mathbb{R}</math> describing the inverter characteristic: |
||
+ | |||
+ | :<math> |
||
+ | g(x_i) = v \tanh(a x_i), |
||
+ | </math> |
||
+ | |||
+ | being a parameterized [[wikipedia:Hyperbolic_function|hyperbolic tangent]] with the supply voltage <math>v=1</math> and a physical parameter <math>a</math>, i.e. <math>a=5</math>. |
||
⚫ | |||
===Input=== |
===Input=== |
||
Line 97: | Line 132: | ||
==Data== |
==Data== |
||
− | A sample procedural MATLAB implementation |
+ | A sample procedural MATLAB implementation for order <math>N</math> for all three models is given by: |
<div class="thumbinner" style="width:540px;text-align:left;"> |
<div class="thumbinner" style="width:540px;text-align:left;"> |
||
<source lang="matlab"> |
<source lang="matlab"> |
||
− | function [f,B,C] = nrc(N) |
+ | function [f,B,C] = nrc(N,model) |
%% Procedural generation of "Nonlinear RC Ladder" benchmark system |
%% Procedural generation of "Nonlinear RC Ladder" benchmark system |
||
⚫ | |||
− | % nonlinearity |
||
− | + | C = sparse(1,1,1,1,N); % output matrix |
|
+ | switch lower(model) |
||
⚫ | |||
− | A0(1,1) = 1; |
||
+ | case 'shockley' |
||
⚫ | |||
− | A1(1,1) = 0; |
||
⚫ | |||
⚫ | |||
⚫ | |||
− | % input matrix |
||
⚫ | |||
− | B(1,1) = 1; |
||
⚫ | |||
− | % output matrix |
||
− | + | A1(1,1) = 0; |
|
− | C(1,1) = 1; |
||
⚫ | |||
− | % vector field and output functional |
||
⚫ | |||
+ | f = @(x) -g(A0*x) + g(A1*x) - g(A2*x); |
||
+ | |||
+ | case 'sign' |
||
+ | |||
+ | A = gallery('tridiag',N,1,-2,1); |
||
+ | |||
+ | f = @(x) A*x - sign(x).*(x.*x); |
||
+ | |||
+ | case 'ind' |
||
+ | |||
+ | A = gallery('tridiag',N,1,-2,1); |
||
+ | |||
+ | f = @(x) A*x - ((x.^2)./2 + (x.^3)./3); |
||
+ | |||
+ | case 'inv' |
||
+ | |||
+ | f = @(x) [0;tanh(x(2:end))] - x; |
||
+ | |||
+ | C = sparse(1,N,1,1,N); |
||
+ | |||
+ | otherwise |
||
+ | |||
+ | error('Choose shockley, sign, ind or inv'); |
||
+ | end |
||
end |
end |
||
Line 132: | Line 185: | ||
</div> |
</div> |
||
− | Here the |
+ | Here the vector field is realized in a vectorized form as a [[wikipedia:Closure_(computer_programming)|closure]]. |
==Dimensions== |
==Dimensions== |
||
Line 152: | Line 205: | ||
==Citation== |
==Citation== |
||
− | To cite |
+ | To cite these benchmarks, use the following references: |
* For the benchmark itself and its data: |
* For the benchmark itself and its data: |
||
− | ::The MORwiki Community |
+ | ::The MORwiki Community, '''Nonlinear RC Ladder'''. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Nonlinear_RC_Ladder |
− | + | @MISC{morwiki_modNonRCL, |
|
− | + | author = <nowiki>{{The MORwiki Community}}</nowiki>, |
|
− | + | title = {Nonlinear RC Ladder}, |
|
− | + | howpublished = {{MORwiki} -- Model Order Reduction Wiki}, |
|
− | + | url = <nowiki>{https://modelreduction.org/morwiki/Nonlinear_RC_Ladder}</nowiki>, |
|
− | + | year = 2018 |
|
+ | } |
||
− | } |
||
+ | * For the background on the benchmarks: |
||
− | * |
+ | ** for Model 1 <span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/#morChe99 morChe99]</span> (<span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/html/mor_bib.html#morChe99 BibTeX]</span>) |
+ | ** for Model 2 <span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/#morRew03 morRew03]</span> (<span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/html/mor_bib.html#morRew03 BibTeX]</span>) |
||
+ | ** for Model 3 <span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/#morGu12 morGu12]</span> (<span class="plainlinks">[https://morwiki.mpi-magdeburg.mpg.de/BibTeX/html/mor_bib.html#morGu12 BibTeX]</span>) |
||
==References== |
==References== |
||
Line 180: | Line 236: | ||
<ref name="condon04a">M. Condon and R. Ivanov, "<span class="plainlinks">[https://doi.org/10.1108/03321640410510730 Model Reduction of Nonlinear Systems]</span>", COMPEL 23(2): 547--557, 2004</ref> |
<ref name="condon04a">M. Condon and R. Ivanov, "<span class="plainlinks">[https://doi.org/10.1108/03321640410510730 Model Reduction of Nonlinear Systems]</span>", COMPEL 23(2): 547--557, 2004</ref> |
||
+ | |||
+ | <ref name="gu12">C. Gu, "<span class="plainlinks">[https://www2.eecs.berkeley.edu/Pubs/TechRpts/2012/EECS-2012-217.pdf Model Order Reduction of Nonlinear Dynamical Systems]</span>", PhD Thesis (University of California, Berkeley), 2012.</ref> |
||
<ref name="reis14">T. Reis. "<span class="plainlinks">[https://doi.org/10.1007/978-3-319-08437-4_2 Mathematical Modeling and Analysis of Nonlinear Time-Invariant RLC Circuits]</span>", In: Large-Scale Networks in Engineering and Life Sciences. Modeling and Simulation in Science, Engineering and Technology: 125--198, 2014.</ref> |
<ref name="reis14">T. Reis. "<span class="plainlinks">[https://doi.org/10.1007/978-3-319-08437-4_2 Mathematical Modeling and Analysis of Nonlinear Time-Invariant RLC Circuits]</span>", In: Large-Scale Networks in Engineering and Life Sciences. Modeling and Simulation in Science, Engineering and Technology: 125--198, 2014.</ref> |
||
+ | |||
+ | <ref name="kawano19">Y. Kawano, J.M.A. Scherpen. "<span class="plainlinks">[https://arxiv.org/abs/1902.09836 Empirical Differential Gramians for Nonlinear Model Reduction]</span>", arXiv (cs.SY): 1902.09836, 2019.</ref> |
||
</references> |
</references> |
Latest revision as of 07:36, 17 June 2025
Description
The nonlinear RC-ladder is an electronic test circuit first introduced in [1], and its variant is also introduced in [2]. These nonlinear first-order system model a resistor-capacitor network that exhibits a distinct nonlinear behaviour caused by either the nonlinear resistors consisting of a parallel connected resistor with a diode (see the right figure) or the nonlinear resistors connected parallel to the capacitor (see Fig. 7 in [2]).
Model 1
First, we discuss the modelling of an RC circuit, where the nonlinear resistors consist of a parallel connected resistor with a diode as shown in the above figure. For this, the underlying model is given by a SISO gradient system of the form [3]:
where the is a mapping
:
which combines the effect of a diode and a resistor.
Nonlinearity
The nonlinearity models a diode as a nonlinear resistor,
based on the Shockley model [4]:
with material parameters and
.
For this benchmark the parameters are selected as: and
as in [1].
Model 2
Second, we discuss the modelling of an RC circuit, where the nonlinear resistors are connected parallel to the capacitors (see Fig. 7 in [2]). For this, the underlying model is also given by a SISO gradient system of the form [2]:
and the output function:
where the is a mapping
, respresenting the effect of a nonlinear resistor.
which represents the effect of a nonlinear resistor, and sgn denotes the sign function.
Nonlinearity
The nonlinearity models a diode as a nonlinear resistor [2]:
which represents the effect of a nonlinear resistor, and sgn denotes the sign function.
For this benchmark the parameters are selected as: as in [1].
Alternatively, the variant from [5] can be used, featuring the nonlinearity:
This represents practically a resistor-inductor cascade with nonlinear resistors.
Model 3
Third, a circuit of chained inverter gates, a so-called inverter chain [6], is presented. This is a SISO system, given by:
and the output function:
Nonlinearity
The nonlinear function is a mapping
describing the inverter characteristic:
being a parameterized hyperbolic tangent with the supply voltage and a physical parameter
, i.e.
.
Input
As an external input, several alternatives are presented in [7], which are listed next. A simple step function is given by:
an exponential decaying input is provided by:
Additional input sources are given by conjunction of sine waves with different periods [8]:
Data
A sample procedural MATLAB implementation for order for all three models is given by:
function [f,B,C] = nrc(N,model)
%% Procedural generation of "Nonlinear RC Ladder" benchmark system
B = sparse(1,1,1,N,1); % input matrix
C = sparse(1,1,1,1,N); % output matrix
switch lower(model)
case 'shockley'
g = @(x) exp(40.0*x) + x - 1.0;
A0 = sparse(1,1,1,N,N);
A1 = spdiags(ones(N-1,1),-1,N,N) - speye(N);
A1(1,1) = 0;
A2 = spdiags([ones(N-1,1);0],0,N,N) - spdiags(ones(N,1),1,N,N);
f = @(x) -g(A0*x) + g(A1*x) - g(A2*x);
case 'sign'
A = gallery('tridiag',N,1,-2,1);
f = @(x) A*x - sign(x).*(x.*x);
case 'ind'
A = gallery('tridiag',N,1,-2,1);
f = @(x) A*x - ((x.^2)./2 + (x.^3)./3);
case 'inv'
f = @(x) [0;tanh(x(2:end))] - x;
C = sparse(1,N,1,1,N);
otherwise
error('Choose shockley, sign, ind or inv');
end
end
Here the vector field is realized in a vectorized form as a closure.
Dimensions
System structure:
System dimensions:
,
,
.
Citation
To cite these benchmarks, use the following references:
- For the benchmark itself and its data:
- The MORwiki Community, Nonlinear RC Ladder. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Nonlinear_RC_Ladder
@MISC{morwiki_modNonRCL, author = {{The MORwiki Community}}, title = {Nonlinear RC Ladder}, howpublished = {{MORwiki} -- Model Order Reduction Wiki}, url = {https://modelreduction.org/morwiki/Nonlinear_RC_Ladder}, year = 2018 }
- For the background on the benchmarks:
References
- ↑ 1.0 1.1 1.2 Y. Chen, "Model Reduction for Nonlinear Systems", Master Thesis, 1999.
- ↑ 2.0 2.1 2.2 2.3 2.4 M. Rewienski and J. White, "A trajectory piecewise-linear approach to model order reduction and fast simulation of nonlinear circuits and micromachined devices", IEEE Transactions on computer-aided design of integrated circuits and systems 22(2): 155--170, 2003.
- ↑ M. Condon and R. Ivanov, "Empirical Balanced Truncation for Nonlinear Systems", Journal of Nonlinear Science 14(5):405--414, 2004.
- ↑ T. Reis. "Mathematical Modeling and Analysis of Nonlinear Time-Invariant RLC Circuits", In: Large-Scale Networks in Engineering and Life Sciences. Modeling and Simulation in Science, Engineering and Technology: 125--198, 2014.
- ↑ Y. Kawano, J.M.A. Scherpen. "Empirical Differential Gramians for Nonlinear Model Reduction", arXiv (cs.SY): 1902.09836, 2019.
- ↑ C. Gu, "Model Order Reduction of Nonlinear Dynamical Systems", PhD Thesis (University of California, Berkeley), 2012.
- ↑ Y. Chen and J. White, "A Quadratic Method for Nonlinear Model Order Reduction", Int. Conference on Modelling and Simulation of Microsystems Semiconductors, Sensors and Actuators, 2000.
- ↑ M. Condon and R. Ivanov, "Model Reduction of Nonlinear Systems", COMPEL 23(2): 547--557, 2004