Anonymous
×
Create a new article
Write your page title here:
We currently have 105 articles on MOR Wiki. Type your article name above or click on one of the titles below and start writing!



MOR Wiki

Difference between revisions of "Nonlinear RC Ladder"

(→‎Citation: changed bib handle since before it was related to Gyro model)
 
(30 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 7: Line 8:
 
<figure id="fig:nrcl">[[File:nrcl.png|400px|thumb|right| Nonlinear RC-Ladder]]</figure>
 
<figure id="fig:nrcl">[[File:nrcl.png|400px|thumb|right| Nonlinear RC-Ladder]]</figure>
   
The nonlinear RC-ladder is an electronic test circuit introduced in <ref name="chen99"/>.
+
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"/>.
This nonlinear first-order system models a resistor-capacitor network that exhibits a distinct nonlinear behavior caused by the nonlinear resistors consisting of a parallel connected resistor with a diode.
+
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===
+
===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 <ref name="condon04"/>:
 
The underlying model is given by a ([[List_of_abbreviations#SISO|SISO]]) gradient system of the form <ref name="condon04"/>:
 
   
 
:<math>
 
:<math>
Line 30: Line 30:
 
which combines the effect of a [[wikipedia:Diode|diode]] and a resistor.
 
which combines the effect of a [[wikipedia:Diode|diode]] and a resistor.
   
===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,
 
based on the [[wikipedia:Diode_modelling#Shockley_diode_model|Shockley model]] <ref name="reis14"/>:
 
based on the [[wikipedia:Diode_modelling#Shockley_diode_model|Shockley model]] <ref name="reis14"/>:
Line 41: Line 41:
   
 
For this benchmark the parameters are selected as: <math>i_S = 1</math> and <math>u_P = 40</math> as in <ref name="chen99"/>.
 
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>
  +
y(t) = x_1(t),
  +
</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>
  +
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]].
  +
  +
====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===
 
===Input===
Line 66: Line 132:
 
==Data==
 
==Data==
   
A sample procedural MATLAB implementation of order <math>N</math> 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)
+
function [f,B,C] = nrc(N,model)
 
%% Procedural generation of "Nonlinear RC Ladder" benchmark system
 
%% Procedural generation of "Nonlinear RC Ladder" benchmark system
   
  +
B = sparse(1,1,1,N,1); % input matrix
% nonlinearity
 
g = @(x) exp(40.0*x) + x - 1.0;
+
C = sparse(1,1,1,1,N); % output matrix
   
  +
switch lower(model)
A0 = sparse(N,N);
 
A0(1,1) = 1;
 
   
  +
case 'shockley'
A1 = spdiags(ones(N-1,1),-1,N,N) - speye(N);
 
A1(1,1) = 0;
 
   
  +
g = @(x) exp(40.0*x) + x - 1.0;
A2 = spdiags([ones(N-1,1);0],0,N,N) - spdiags(ones(N,1),1,N,N);
 
   
  +
A0 = sparse(1,1,1,N,N);
% input matrix
 
B = sparse(N,1);
 
B(1,1) = 1;
 
   
  +
A1 = spdiags(ones(N-1,1),-1,N,N) - speye(N);
% output matrix
 
C = sparse(1,N);
+
A1(1,1) = 0;
C(1,1) = 1;
 
   
  +
A2 = spdiags([ones(N-1,1);0],0,N,N) - spdiags(ones(N,1),1,N,N);
% vector field and output functional
 
f = @(x) -g(A0*x) + g(A1*x) - g(A2*x);
 
   
  +
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 101: Line 185:
 
</div>
 
</div>
   
Here the nonlinear part of the vectorfield is realized in a vectorized form as a [[wikipedia:Closure_(computer_programming)|closure]].
+
Here the vector field is realized in a vectorized form as a [[wikipedia:Closure_(computer_programming)|closure]].
   
 
==Dimensions==
 
==Dimensions==
Line 121: Line 205:
 
==Citation==
 
==Citation==
   
To cite this benchmark, use the following references:
+
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. '''Nonlinear RC Ladder'''. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Nonlinear_RC_Ladder
+
::The MORwiki Community, '''Nonlinear RC Ladder'''. MORwiki - Model Order Reduction Wiki, 2018. http://modelreduction.org/index.php/Nonlinear_RC_Ladder
 
 
@MISC{morwiki_modNonRCL,
+
@MISC{morwiki_modNonRCL,
author = {The {MORwiki} Community},
+
author = <nowiki>{{The MORwiki Community}}</nowiki>,
title = {Nonlinear RC Ladder},
+
title = {Nonlinear RC Ladder},
howpublished = {{MORwiki} -- Model Order Reduction Wiki},
+
howpublished = {{MORwiki} -- Model Order Reduction Wiki},
url = {<nowiki>http://modelreduction.org/index.php/Nonlinear_RC_Ladder</nowiki>},
+
url = <nowiki>{https://modelreduction.org/morwiki/Nonlinear_RC_Ladder}</nowiki>,
year = {2018}
+
year = 2018
  +
}
}
 
   
  +
* For the background on the benchmarks:
* For the background on the benchmark: <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 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 142: Line 229:
 
<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="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="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="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="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="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="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

Nonlinear RC-Ladder

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]:


\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},

y(t) = x_1(t),

where the g is a mapping g(x_i):\mathbb{R} \to \mathbb{R}:


g(x_i) = g_D(x_i) + x_i,

which combines the effect of a diode and a resistor.

Nonlinearity

The nonlinearity g_D models a diode as a nonlinear resistor, based on the Shockley model [4]:


g_D(x_i) = i_S (\exp(u_P x_i) - 1),

with material parameters i_S > 0 and u_P > 0.

For this benchmark the parameters are selected as: i_S = 1 and u_P = 40 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]:


\dot{x}(t) = \begin{pmatrix} -2 & 1& &  \\ 1 & -2 & 1 &  \\ & \ddots & \ddots & \ddots\\ & & 1 & -2 \end{pmatrix} x(t) + g(x),

and the output function:


y(t) = x_1(t),

where the g is a mapping g(x_i):\mathbb{R} \to \mathbb{R}, respresenting the effect of a nonlinear resistor.


g(x_i) = a\cdot \text{sgn}(x_i)\cdot x_i^2

which represents the effect of a nonlinear resistor, and sgn denotes the sign function.

Nonlinearity

The nonlinearity g_D models a diode as a nonlinear resistor [2]:


g(x_i) = a\cdot \text{sgn}(x_i)\cdot x_i^2

which represents the effect of a nonlinear resistor, and sgn denotes the sign function.

For this benchmark the parameters are selected as: a = 1 as in [1].

Alternatively, the variant from [5] can be used, featuring the nonlinearity:


g(x_i) = \frac{x_i^2}{2} + \frac{x_i^3}{3}.

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:


\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},

and the output function:


y(t) = x_N(t).

Nonlinearity

The nonlinear function g is a mapping g(x_i):\mathbb{R} \to \mathbb{R} describing the inverter characteristic:


g(x_i) = v \tanh(a x_i),

being a parameterized hyperbolic tangent with the supply voltage v=1 and a physical parameter a, i.e. a=5.


Input

As an external input, several alternatives are presented in [7], which are listed next. A simple step function is given by:


u_1(t)=\begin{cases}0 & t < 4 \\ 1 & t \geq 4 \end{cases},

an exponential decaying input is provided by:


u_2(t) = e^{-t}.

Additional input sources are given by conjunction of sine waves with different periods [8]:


u_3(t) = \sin(2\pi 50t)+\sin(2\pi 1000t),

u_4(t) = \sin(2\pi 50t) \sin(2\pi 1000t).

Data

A sample procedural MATLAB implementation for order N 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:


\begin{align}
\dot{x}(t) &= f(x(t)) + Bu(t), \\
y(t) &= Cx(t).
\end{align}

System dimensions:

f : \mathbb{R}^N \to \mathbb{R}^N, B \in \mathbb{R}^{N \times 1}, C \in \mathbb{R}^{1 \times N}.

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
}

References

  1. 1.0 1.1 1.2 Y. Chen, "Model Reduction for Nonlinear Systems", Master Thesis, 1999.
  2. 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.
  3. M. Condon and R. Ivanov, "Empirical Balanced Truncation for Nonlinear Systems", Journal of Nonlinear Science 14(5):405--414, 2004.
  4. 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.
  5. Y. Kawano, J.M.A. Scherpen. "Empirical Differential Gramians for Nonlinear Model Reduction", arXiv (cs.SY): 1902.09836, 2019.
  6. C. Gu, "Model Order Reduction of Nonlinear Dynamical Systems", PhD Thesis (University of California, Berkeley), 2012.
  7. 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.
  8. M. Condon and R. Ivanov, "Model Reduction of Nonlinear Systems", COMPEL 23(2): 547--557, 2004

Contact

Christian Himpe