Converting differential equations to State-Space/Transfer Function representation
Show older comments
I'm trying to solve some Control Systems questions, but having trouble with a few of them:

Basically, the question asks for the state-space representation of each system.
I used odeToVectorField for systems a and b:
syms y(t) u(t) t
yd = diff(y);
ydd = diff(y, 2);
yddd = diff(y, 3);
EQD = ydd + 3*yd + y == u
[SS, Sbs] = odeToVectorField(EQD)
EQD2 = yddd + 5*ydd + 8*yd + 12*y == u
[SS2, Sbs2] = odeToVectorField(EQD2)
from which I can get the state-space representation.
But when I get to the other systems (for example, system f), it gets trickier, and most of the systems can't even be solved using odeToVectorField.
syms y(t) u(t) t
yd = diff(y);
ydd = diff(y, 2);
yddd = diff(y, 3);
yi = int(y, 0, t);
ud = diff(u);
EQD = ydd + 2*yd + y + yi == ud + 5*u
[SS, Sbs] = odeToVectorField(EQD)
Is there an easier way to get the state-space representation (or transfer function) directly from the differential equations? And how can I do the same for the more complex differential equations (like f and g, for example)?
Thank you
Accepted Answer
More Answers (1)
Samim Unlusoy
on 22 Dec 2022
0 votes
The following approach may be useful. State equations for the classical ordinary matrix differential equations
[M]{yddot} + [C]{ydot} + [K]{y} = [F]{q}
are given by:
[0] [I] [0]
{xdot} = [A]{x} + [B]{u] = {x} + {u}
-inv[M] [K] -inv[M] [C] inv[M] [C]
Categories
Find more on Control System Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




