MATLAB: Is there any possibility to linearize nonlinear system and change into state space system

controlsimulink

my problem is huge 31dof problem, I figure it out how to solve. But the main problem is linearization so i create fuction which represents the 31 equations of motion and parameters and use simulink to linearize. But its not working i want state space system A,B,C,D from my equations. Is there any method to solve ode and convert into state space. Please help me

Best Answer

Hey, if you can set up your dynamical equations in explicit form: dx/dt = f(x,u) and y = g(x,u) e.g. using the symbolic math toolbox you can easily linearize your system around a steady state (x0, u0).
As an example your system matrix results from: A = jacobian(f, x) After it you need to replace all remaining x with x0 and u with u0 in A.
For the input matrix likewise shown but with B = jacobian(f,u) For C and D using g instead of f.
We published a small tool to handle nonlinear dynamical systems symbolically in MATLAB. There the feature of linearization is implemented: https://github.com/odesca/ODESCA/releases
Related Question