How to simulate the state-space model

104 visualizaciones (últimos 30 días)
Hein zaw
Hein zaw el 23 de Oct. de 2023
Comentada: munachi el 25 de Nov. de 2024
Hello,
How to do the follow stace-space model in matlab or simulink. I only found the one input and output example.
thanks.

Respuesta aceptada

Sam Chak
Sam Chak el 23 de Oct. de 2023
In MATLAB, you can use the ODE solver approach. If the system is LTI and you have the Control System Toolbox installed, you can also use the lsim() command. However, I generally advise students to learn the ODE solver approach because it provides a more versatile skill that can be applied to both linear and nonlinear state-space systems, avoiding the need to learn something new when dealing with the latter.
% Call ode45 solver
tspan = linspace(0, 10, 1001);
x0 = [0, 0];
[t, x] = ode45(@odefcn, tspan, x0);
% Pre-allocate for the system output signal y
y = zeros(1, numel(t));
% Use for-loop to call odefcn() and compute y
for i = 1:numel(t)
[~, y(i)] = odefcn(t(i), x(i,:).');
end
figure
plot(t, x, 'linewidth', 1.5), hold on
plot(t, y, 'linewidth', 1.5), hold off, grid on
xlabel('Time'), legend('x_1', 'x_2', 'y', 'location', 'best')
% Create a function that returns two outputs (math): dxdt and y
function [dxdt, y] = odefcn(t, x)
% Inputs
u1 = heaviside(t);
u2 = 0.1*sin(2*pi/10*t);
u = [u1;
u2];
% Matrix definitions
A = [ 0 1; % state matrix
-2 -3];
B = [ 0 0; % input matrix
1 1];
C = [ 3 1]; % output matrix
D = 0*C*B; % direct matrix
% State-space system
dxdt = A*x + B*u; % state equation
y = C*x + D*u; % output equation (system)
end
  2 comentarios
Hein zaw
Hein zaw el 24 de Oct. de 2023
Thank you, I will try.
munachi
munachi el 25 de Nov. de 2024
@Sam Chak is there a way I can reach out to you. I have some problem with matlab and I think you might be my savior.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Trimming and Linearization en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by