1
\$\begingroup\$

I have a set of non-linear equations, which I would like to model in Simulink in order to compare to their linear counterpart.

Here is the block diagram of my setup. The state-space block represents the linear model, while the Matlab function contains the non-linear equations.

enter image description here

Linearised Response:

enter image description here

Non Linear Response:

enter image description here

I am trying to simulate the following non linear equations:

enter image description here

The function \$\dot{\vec x} = f(\vec x, u)\$ is outputting derivative of \$\vec x\$, not \$\vec x\$ itself. The function block that finds \$\dot{\vec x}\$ from \$\vec x\$ and \$u\$, then feeds it to an integrator and feeds the \$\vec x\$ back to the block, and extracts \$y\$ from it.

with these parameters:

g = 9.81;
m = 0.05;
R = 1;
L = 0.01;
C = 0.0001; 
x1 = 0.012; %initial condition 1: displacement
x2 = 0;     %initial condition 2: velocity
x3 = 0.84;  %initial condition 3: acceleration

This is how I coding the Matlab function to represent my non-linear system:

    function [xdot,y] = fcn(x,u)

    % define your constants
    g = 9.81;
    m = 0.05;
    R = 1;
    L = 0.01;
    C = 0.0001; 
%   x1 = 0.012; %initial condition 1: displacement
%   x2 = 0;     %initial condition 2: velocity
%   x3 = 0.84;  %initial condition 3: acceleration


    % nonlinear set of equations
    xdot = [x(2); g-((C/m)*(x(3)/x(1))^2); -((R/L) +(((2*C)/L)*(((x(2)*x(3))/((x(1))^2)))))] + [0;0;1/L]*u;

    y = x';

My question is: Where do the initial conditions come into play with the non-linear mode? To calculate Matrix A in the state space block for the linear systems the initial conditions are used.

How should they be included in the non linear model coded above? Since as they are defined, they will never be utilized within the code.

\$\endgroup\$
5
  • \$\begingroup\$ Last time I used SIMULINK was quite long ago during my studies. To solve a differential equations we used integrator instead of derivative, so far I can remeber... \$\endgroup\$
    – Crowley
    Nov 28, 2018 at 20:04
  • \$\begingroup\$ Thanks for you input. Which part are you referring to? Indeed it is an integrator block I am using in the Simulink model defined by 1/s \$\endgroup\$
    – rrz0
    Nov 28, 2018 at 20:05
  • \$\begingroup\$ Note that your linearized system is not stable. The 10^11 exponent in the graph should have clued you in. Have you verified its eigenvalues? \$\endgroup\$ Nov 28, 2018 at 20:21
  • \$\begingroup\$ @EdgarBrown this is an open loop system so I was expecting an unstable response. \$\endgroup\$
    – rrz0
    Nov 28, 2018 at 20:39
  • \$\begingroup\$ @EdgarBrown the linearized matrix A was taken from pdfs.semanticscholar.org/d25a/…, and the eigenvalues do not seem to be correct for the given matrix. I am trying to reproduce the results in the paper. \$\endgroup\$
    – rrz0
    Nov 28, 2018 at 20:47

1 Answer 1

1
\$\begingroup\$

If you want to use initial conditions for the \$ X_i \$ variables in the non-linear model, just assign them to the external integrator (1/s) block, or add them as a constant vector after the integrator.

As it is, I am not sure how the simulation is working at all as the non-linear system is not defined for \$ X_1 = 0\$ .

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.