m |
|||
(40 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:benchmark]] |
[[Category:benchmark]] |
||
+ | [[Category:procedural]] |
||
[[Category:nonlinear]] |
[[Category:nonlinear]] |
||
+ | [[Category:SISO]] |
||
==Description== |
==Description== |
||
+ | <figure id="fig:nrcl">[[File:nrcl.png|400px|thumb|right| Nonlinear RC-Ladder]]</figure> |
||
+ | The nonlinear RC-ladder is an electronic test circuit first introduced in <ref name="chen99"/>, and its variant is also introduced in <ref name="RewW03"/>. |
||
− | The nonlinear RC-ladder is an electronic test circuit introduced in<ref>Y. Chen, "<span class="plainlinks">[http://hdl.handle.net/1721.1/9381 Model Reduction for Nonlinear Systems]</span>", Master Thesis, 1999.</ref><ref>Y. Chen and J. White, "<span class="plainlinks">[https://tesla.physics.purdue.edu/quantum/files/chen_mor_icmsm2000.pdf A quadratic method for nonlinear model order reduction]</span>", Int. conference on modelling and simulation of Microsystems semiconductors, sensors and actuators, 2000.</ref>. |
||
− | + | 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 <ref name = "RewW03"/>). |
|
+ | ===Model 1=== |
||
− | <figure id="fig:nrcl">[[File:nrcl.png|400px|thumb|right| Nonlinear RC-Ladder]]</figure> |
||
+ | 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> |
||
+ | \dot{x}(t) = \begin{pmatrix} -g(x_1(t)) - g(x_1(t) - x_2(t)) \\ g(x_1(t)-x_2(t)) - g(x_2(t)-x_3(t)) \\ \vdots \\ g(x_{k-1}(t) - x_k(t)) - g(x_k(t) - x_{x+1}(t)) \\ \vdots \\ g(x_{N-1}(t) - x_N(t)) \end{pmatrix}+\begin{pmatrix}u(t) \\ 0 \\ \vdots \\ 0 \\ \vdots \\ 0 \end{pmatrix}, |
||
+ | </math> |
||
+ | :<math> |
||
− | ==Model== |
||
+ | y(t) = x_1(t), |
||
+ | </math> |
||
+ | where the <math>g</math> is a mapping <math>g(x_i):\mathbb{R} \to \mathbb{R}</math>: |
||
− | The underlying model is given by a ([[List_of_abbreviations#SISO|SISO]]) gradient system of the form<ref>M. Condon and R. Ivanov, "<span class="plainlinks">[http://dx.doi.org/10.1007/s00332-004-0617-5 Empirical balanced truncation for nonlinear systems]</span>", Journal of Nonlinear Science 14(5):405--414, 2004.</ref>: |
||
:<math> |
:<math> |
||
+ | g(x_i) = g_D(x_i) + x_i, |
||
− | \dot{x}(t) = \begin{pmatrix} -g(x_1(t)) - g(x_1(t) - x_2(t)) + u(t) \\ g(x_1(t)-x_2(t)) - g(x_2(t)-x_3(t)) \\ \vdots \\ g(x_{k-1}(t) - x_k(t)) - g(x_k(t) - x_{x+1}(t)) \\ \vdots \\ g(x_{N-1}(t) - x_N(t)) \end{pmatrix}, |
||
</math> |
</math> |
||
+ | |||
+ | which combines the effect of a [[wikipedia:Diode|diode]] and a resistor. |
||
+ | |||
+ | ====Nonlinearity==== |
||
+ | The nonlinearity <math>g_D</math> models a diode as a nonlinear resistor, |
||
+ | based on the [[wikipedia:Diode_modelling#Shockley_diode_model|Shockley model]] <ref name="reis14"/>: |
||
+ | |||
+ | :<math> |
||
+ | g_D(x_i) = i_S (\exp(u_P x_i) - 1), |
||
+ | </math> |
||
+ | |||
+ | with material parameters <math>i_S > 0</math> and <math>u_P > 0</math>. |
||
+ | |||
+ | For this benchmark the parameters are selected as: <math>i_S = 1</math> and <math>u_P = 40</math> as in <ref name="chen99"/>. |
||
+ | |||
+ | |||
+ | ===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 also given by a SISO gradient system of the form <ref name="RewW03"/>: |
||
+ | |||
+ | :<math> |
||
+ | \dot{x}(t) = \begin{pmatrix} -2 & 1& & \\ 1 & -2 & 1 & \\ & \ddots & \ddots & \ddots\\ & & 1 & -2 \end{pmatrix} x(t) + g(x), |
||
+ | </math> |
||
+ | |||
+ | and the output function: |
||
:<math> |
:<math> |
||
Line 23: | Line 56: | ||
</math> |
</math> |
||
− | where the |
+ | 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( |
+ | 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]]. |
||
− | ==Input== |
||
+ | |||
+ | ====Nonlinearity==== |
||
+ | The nonlinearity <math>g_D</math> models a diode as a nonlinear resistor <ref name="RewW03"/>: |
||
+ | |||
+ | :<math> |
||
+ | g(x_i) = a\cdot \text{sgn}(x_i)\cdot x_i^2 |
||
+ | </math> |
||
+ | |||
+ | which represents the effect of a nonlinear resistor, and sgn denotes the [[wikipedia:Sign_function|sign function]]. |
||
+ | |||
+ | For this benchmark the parameters are selected as: <math>a = 1</math> as in <ref name="chen99"/>. |
||
+ | |||
+ | 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=== |
||
− | As external input several alternatives are presented in<ref |
+ | As an external input, several alternatives are presented in <ref name="chen00"/>, which are listed next. |
A simple step function is given by: |
A simple step function is given by: |
||
:<math> |
:<math> |
||
Line 41: | Line 121: | ||
</math> |
</math> |
||
− | Additional input sources are given by conjunction of sine waves with different periods: |
+ | Additional input sources are given by conjunction of sine waves with different periods <ref name="condon04a"/>: |
:<math> |
:<math> |
||
u_3(t) = \sin(2\pi 50t)+\sin(2\pi 1000t), |
u_3(t) = \sin(2\pi 50t)+\sin(2\pi 1000t), |
||
Line 49: | Line 129: | ||
u_4(t) = \sin(2\pi 50t) \sin(2\pi 1000t). |
u_4(t) = \sin(2\pi 50t) \sin(2\pi 1000t). |
||
</math> |
</math> |
||
− | |||
==Data== |
==Data== |
||
− | A sample MATLAB implementation is given by: |
+ | 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,model) |
||
− | g = @(x) exp(x)+x-1; |
||
+ | %% 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 |
||
− | A2 = spdiags([ones(N-1,1);0],0,N,N)-spdiags(ones(N,1),1,N,N); |
||
+ | switch lower(model) |
||
− | xdot = @(x,u) g(A1*x)-g(A2*x) + [u;sparse(N-1,1)]; |
||
+ | |||
− | y = @(x) x(1); |
||
+ | 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 |
||
</source> |
</source> |
||
</div> |
</div> |
||
+ | |||
+ | Here the vector field is realized in a vectorized form as a [[wikipedia:Closure_(computer_programming)|closure]]. |
||
+ | |||
+ | ==Dimensions== |
||
+ | |||
+ | System structure: |
||
+ | :<math> |
||
+ | \begin{align} |
||
+ | \dot{x}(t) &= f(x(t)) + Bu(t), \\ |
||
+ | y(t) &= Cx(t). |
||
+ | \end{align} |
||
+ | </math> |
||
+ | |||
+ | System dimensions: |
||
+ | |||
+ | <math>f : \mathbb{R}^N \to \mathbb{R}^N</math>, |
||
+ | <math>B \in \mathbb{R}^{N \times 1}</math>, |
||
+ | <math>C \in \mathbb{R}^{1 \times N}</math>. |
||
+ | |||
+ | ==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 = <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== |
||
− | <references |
+ | <references> |
+ | |||
+ | <ref name="chen99">Y. Chen, "<span class="plainlinks">[http://hdl.handle.net/1721.1/9381 Model Reduction for Nonlinear Systems]</span>", Master Thesis, 1999.</ref> |
||
+ | |||
+ | <ref name="RewW03">M. Rewienski and J. White, "<span class="plainlinks">[https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1174092 A trajectory piecewise-linear approach to model order reduction and fast simulation of nonlinear circuits and micromachined devices]</span>", IEEE Transactions on computer-aided design of integrated circuits and systems 22(2): 155--170, 2003.</ref> |
||
+ | |||
+ | <ref name="chen00">Y. Chen and J. White, "<span class="plainlinks">[http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.19.8951&rep=rep1&type=pdf A Quadratic Method for Nonlinear Model Order Reduction]</span>", Int. Conference on Modelling and Simulation of Microsystems Semiconductors, Sensors and Actuators, 2000.</ref> |
||
+ | |||
+ | <ref name="condon04">M. Condon and R. Ivanov, "<span class="plainlinks">[https://doi.org/10.1007/s00332-004-0617-5 Empirical Balanced Truncation for Nonlinear Systems]</span>", Journal of Nonlinear Science 14(5):405--414, 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="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> |
||
==Contact== |
==Contact== |
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