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"

m (→‎Data: code update)
Line 104: Line 104:
 
%% Procedural generation of "Nonlinear RC Ladder" benchmark system
 
%% Procedural generation of "Nonlinear RC Ladder" benchmark system
 
 
% input matrix
+
B = sparse(1,1,1,N,1); % input matrix
B = sparse(N,1);
+
C = sparse(1,1,1,1,N); % output matrix
B(1,1) = 1;
 
 
% output matrix
 
C = sparse(1,N);
 
C(1,1) = 1;
 
 
 
if model == 'model1'
+
switch(model)
  +
% nonlinearity
 
  +
case 'shockley'
  +
 
g = @(x) exp(40.0*x) + x - 1.0;
 
g = @(x) exp(40.0*x) + x - 1.0;
   
A0 = sparse(N,N);
+
A0 = sparse(1,1,1,N,N);
A0(1,1) = 1;
 
   
 
A1 = spdiags(ones(N-1,1),-1,N,N) - speye(N);
 
A1 = spdiags(ones(N-1,1),-1,N,N) - speye(N);
Line 124: Line 120:
 
A2 = spdiags([ones(N-1,1);0],0,N,N) - spdiags(ones(N,1),1,N,N);
 
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);
  +
else
 
if model == 'model2'
+
case 'sign'
  +
A = spdiags(ones(N-1,1),-1,N,N) - 2*speye(N) +spdiags(ones(N,1),1,N,N) ;
 
  +
A = gallery('tridiag',N,1,-2,1);
 
 
f = @(x) A*x - sign(x).*x.^2;
+
f = @(x) A*x - sign(x).*(x.*x);
  +
else
 
  +
otherwise
msg = 'Input: Error. Choose either model1 or model2';
 
  +
error(msg)
 
 
error('Choose either shockley or sign');
end
 
end
+
end
 
end
 
end
   
Line 141: Line 137:
 
</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==

Revision as of 13:23, 23 April 2018


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),

y(t) = x_1(t),

where the g is a mapping g(x_i):\mathbb{R} \to \mathbb{R}, respreseting 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].

Input

As an external input, several alternatives are presented in [5], 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 [6]:


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 of order N for both 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(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);

    otherwise

      error('Choose either shockley or sign');
  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 = {http://modelreduction.org/index.php/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. 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.
  6. M. Condon and R. Ivanov, "Model Reduction of Nonlinear Systems", COMPEL 23(2): 547--557, 2004

Contact

Christian Himpe