UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
(Universidad del Perú, Decana de América)
FACULTAD DE INGENIERIA ELECTRONICA Y ELECTRICA
LABORATORIO DE SISTEMAS DE CONTROL – L14
Informe N°10 – TRANSFORMACIÓN DE MODELOS DE SISTEMAS CON MATLAB
PROFESOR:
JOSE LUIS MEJIA OLIVOS
ALUMNO:
LIMA noviembre del 2024
TRANSFORMACIÓN DE MODELOS DE SISTEMAS CON MATLAB
1. Introducción
El modelado en el espacio de estados es una técnica crucial en la teoría moderna de sistemas y
control. Permite la representación de sistemas dinámicos mediante ecuaciones matriciales que
describen la evolución de los estados del sistema a lo largo del tiempo. MATLAB, con su
robusto conjunto de herramientas de simulación y análisis, facilita la implementación y el estudio
de estos modelos. Este informe abarca los fundamentos del modelado en el espacio de estados y
la transformación de modelos de sistemas utilizando MATLAB.
2. Conceptos Básicos del Espacio de Estados
2.1 Definición del Modelo en el Espacio de Estados Un sistema dinámico lineal puede
representarse en el espacio de estados mediante las siguientes ecuaciones:
x(t) = Ax(t)+Bu(t)
y(t) = Cx(t)+Du(t)
Donde:
x(t) es el vector de estado.
u(t) es el vector de entrada.
y(t) es el vector de salida.
A es la matriz de estados.
B es la matriz de entrada.
C es la matriz de salida.
D es la matriz de transmisión directa.
2.2 Ventajas del Modelado en el Espacio de Estados
Completo: Permite modelar sistemas multivariables y representar todos los estados
internos.
Flexible: Facilita el diseño de controladores y observadores, y la simulación de sistemas
no lineales.
Compatibilidad: Es compatible con técnicas modernas de control como LQR, LQG y
control óptimo.
3. Ejemplo de Modelado en el Espacio de Estados
3.1 Sistema Ejemplo Consideremos un sistema de segundo orden descrito por la ecuación
diferencial:
y(t)+3y(t)+2y(t)=u(t)
3.2 Representación en el Espacio de Estados Para representar este sistema, definimos las
variables de estado:
x1 = y
x2 = y
La ecuación de estado y de salida se pueden escribir como:
x1 = x2
x2 = −2x1−3x2 + u
y = x1
Las matrices del sistema son:
A=
[−20 −31 ]
B=[ 0 ]
1
C=[1 0]
D= [ 0 ]
4. Implementación en MATLAB
4.1 Definición del Modelo en MATLAB Utilizamos las funciones del Control System Toolbox
para definir el modelo en MATLAB:
% Definir matrices del sistema
A = [0 1; -2 -3];
B = [0; 1];
C = [1 0];
D = [0];
% Crear el sistema en el espacio de estados
sys = ss(A, B, C, D);
4.2 Análisis y Simulación Podemos analizar y simular el comportamiento del sistema utilizando
MATLAB:
% Respuesta al impulso
figure;
impulse(sys);
title('Respuesta al Impulso');
% Respuesta al escalón
figure;
step(sys);
title('Respuesta al Escalón');
% Simulación de respuesta a una entrada arbitraria
t = 0:0.01:10;
u = sin(t);
figure;
lsim(sys, u, t);
title('Respuesta a Entrada Senoidal');
5. Transformación de Modelos de Sistemas
5.1 Diagonalización Para transformar un modelo de sistema a su forma diagonal, utilizamos los
valores y vectores propios del sistema:
[P, D] = eig(A);
A_diag = D;
B_diag = P \ B;
C_diag = C * P;
D_diag = D;
5.2 Forma Canónica Controlable y Observable MATLAB permite transformar un sistema a
sus formas canónicas controlable y observable:
% Forma Canónica Controlable
[Ac, Bc, Cc, Dc, T] = canon(sys, 'companion');
% Forma Canónica Observable
[Ao, Bo, Co, Do, To] = canon(sys, 'modal');
EJERCICIOS
EJERCICIO 1
% Definición de matrices
X = [-1 -1; 6.5 0]
Y = [1 1; 1 0]
Z = [1 0; 0 1]
W = [0 0; 0 0]
% Curvas con step (X, Y, Z, W)
step(X, Y, Z, W)
title('Respuesta Escalón Unitario')
X =
-1.0000 -1.0000
6.5000 0
Y =
1 1
1 0
Z =
1 0
0 1
W =
0 0
0 0
EJERCICIO 3
>> %ejercicio3
num=[1 0]
den=[1 14 56 160]
[X,Y,Z,W]= tf2ss(num, den)
disp('X:')
disp(X)
disp('Y:')
disp(Y)
disp('Z:')
disp(Z)
disp('W:')
disp(W)
num =
1 0
den =
1 14 56 160
X =
-14 -56 -160
1 0 0
0 1 0
Y =
1
0
0
Z =
0 1 0
W =
X:
-14 -56 -160
1 0 0
0 1 0
Y:
1
0
0
Z:
0 1 0
W:
0
EJERCICIO 4
%ejercicio4
% Definir las matrices X, Y, Z y W
X = [0 1 0; 0 0 1; -5.008 -25.1026 -5.03247]
Y = [0; 25.01; -121.015]
Z = [1 0 0]
W = [0]
% Convertir de espacio de estados a función de transferencia (una entrada)
[num, den] = ss2tf(X, Y, Z, W,1)
% Mostrar los resultados
disp('Numerador:')
disp(num)
disp('Denominador:')
disp(den)
X =
0 1.0000 0
0 0 1.0000
-5.0080 -25.1026 -5.0325
Y =
0
25.0100
-121.0150
Z =
1 0 0
W =
num =
0 0 25.0100 4.8471
den =
1.0000 5.0325 25.1026 5.0080
Numerador:
0 0 25.0100 4.8471
Denominador:
1.0000 5.0325 25.1026 5.0080
EJERCICIO 5
% Definir las matrices X,Y,Z y W
X = [0 1; -25 -4]
Y = [1 1; 0 1]
Z = [1 0; 0 1]
W = [0 0; 0 0]
% Crear el sistema en espacio de estados
sys = ss(X, Y, Z, W)
% Obtener la función de transferencia
tf_sys = tf(sys)
% Mostrar la función de transferencia
tf_sys
X =
0 1
-25 -4
Y =
1 1
0 1
Z =
1 0
0 1
W =
0 0
0 0
sys =
A =
x1 x2
x1 0 1
x2 -25 -4
B =
u1 u2
x1 1 1
x2 0 1
C =
x1 x2
y1 1 0
y2 0 1
D =
u1 u2
y1 0 0
y2 0 0
Continuous-time state-space model.
Model Properties
tf_sys =
From input 1 to output...
s + 4
1: --------------
s^2 + 4 s + 25
-25
2: --------------
s^2 + 4 s + 25
From input 2 to output...
s + 5
1: --------------
s^2 + 4 s + 25
s - 25
2: --------------
s^2 + 4 s + 25
Continuous-time transfer function.
Model Properties
tf_sys =
From input 1 to output...
s + 4
1: --------------
s^2 + 4 s + 25
-25
2: --------------
s^2 + 4 s + 25
From input 2 to output...
s + 5
1: --------------
s^2 + 4 s + 25
s - 25
2: --------------
s^2 + 4 s + 25
Continuous-time transfer function.
Model Properties
Numerator: {2x2 cell}
Denominator: {2x2 cell}
Variable: 's'
IODelay: [2x2 double]
InputDelay: [2x1 double]
OutputDelay: [2x1 double]
InputName: {2x1 cell}
InputUnit: {2x1 cell}
InputGroup: [1x1 struct]
OutputName: {2x1 cell}
OutputUnit: {2x1 cell}
OutputGroup: [1x1 struct]
Notes: [0x1 string]
UserData: []
Name: ''
Ts: 0
TimeUnit: 'seconds'
SamplingGrid: [1x1 struct]
Numerator: {2x2 cell}
Denominator: {2x2 cell}
Variable: 's'
IODelay: [2x2 double]
InputDelay: [2x1 double]
OutputDelay: [2x1 double]
InputName: {2x1 cell}
InputUnit: {2x1 cell}
InputGroup: [1x1 struct]
OutputName: {2x1 cell}
OutputUnit: {2x1 cell}
OutputGroup: [1x1 struct]
Notes: [0x1 string]
UserData: []
Name: ''
Ts: 0
TimeUnit: 'seconds'
SamplingGrid: [1x1 struct]
6. Conclusión
El modelado en el espacio de estados y la transformación de modelos son esenciales para el
análisis y diseño de sistemas de control. MATLAB proporciona un conjunto robusto de
herramientas que facilitan estos procesos, permitiendo la simulación y optimización de sistemas
complejos con gran facilidad. A través de estas técnicas, podemos desarrollar controladores y
observadores eficientes, así como analizar el comportamiento dinámico de los sistemas.
Referencias
Ogata, K. (2009). "Ingeniería de Control Moderna". Pearson Educación.
Dorf, R. C., & Bishop, R. H. (2011). "Sistemas de Control Moderno". Prentice Hall.