Matlab LAMA
Matlab LAMA
Matlab LAMA
AUTÓNOMA DE MÉXICO
FACULTAD DE ESTUDIOS SUPERIORES
CUAUTITLAN
INGENIERÍA MECÁNICA ELÉCTRICA
ELABORADO POR
LAURA ANDREA MONTOYA AYALA
MAYO 2020
1
Laura Andrea Montoya Ayala | IME
INDICE
_______________________________________________________
1. INTRODUCCIÓN……………………………………..………….........4
2. MATLAB………………………….……......…………..……………....5
2.1 FUNCIONES ………………………………………...…………….5
2.2 HERRAMIENTAS ADICIONALES……………………………....5
3. ENTORNO DE TRABAJO DE MATLAB…………………….………6
2
Laura Andrea Montoya Ayala | IME
8.2 EJEMPLO 2…………………………………………………..…...34
8.3 EJEMPLO 3………………………………………………..……...36
13.ESTABILIDAD DE UN SISTEMA…………………………………...93
13.1 ESTABILIDAD POR EL MÉTODO DE ROUTH-HURWITZ...93
13.1.1 EJEMPLO 1…………………………………..................…100
13.1.2 EJEMPLO 2………………………………………...……...101
13.1.3 EJEMPLO 3……………………………………...………...102
13.2 ESTABILIDAD POR EL MÉTODO DE LGR…………….….103
13.2.1 EJEMPLO 1………………………………………………. 107
13.2.2 EJEMPLO 2 ……………………………………………....109
13.2.3 EJEMPLO3…………………………………………….…111
14. BIBLIOGRAFÍA……………………………………………………113
3
Laura Andrea Montoya Ayala | IME
1. INTRODUCCIÓN
4
Laura Andrea Montoya Ayala | IME
2. MATLAB
Matrix Laboratory (“laboratorios de matrices”).
Software matemático con entorno de desarrollo
integrado (IDE) que tiene un lenguaje de
programación propio (Lenguaje M) y es
multiplataforma (Unix, Windows y Apple Mac
Os X).
Software de un gran uso en Centros de
Investigación y Desarrollo, así como en
Figura 2. MATLAB.
universidades.
Manipulación de Matrices.
La representación de datos y funciones.
Implementación de algoritmos.
Creación de interfaces de usuario (GUI).
Comunicación con programas en otros lenguajes y con otros dispositivos.
5
Laura Andrea Montoya Ayala | IME
Cajas de herramientas y paquetes de bloques
6
Laura Andrea Montoya Ayala | IME
3. ENTORNO DE TRABAJO DE MATLAB
7
Laura Andrea Montoya Ayala | IME
4. MODELADO DE SISTEMAS EN MATLAB SIMULINK
8
Laura Andrea Montoya Ayala | IME
2. Tenemos el entorno de trabajo de simulink.
9
Laura Andrea Montoya Ayala | IME
5. En la parte superior izquierda se encuentra la librería.
10
Laura Andrea Montoya Ayala | IME
Figura 4.6 Librería Commoly Used Blocks.
11
Laura Andrea Montoya Ayala | IME
10.Se inserta cada componente del sistema.
12
Laura Andrea Montoya Ayala | IME
12.Para editar la función de trasferencia se le da doble clip derecho y para
cambiar el sentido “crtl r”.
13
Laura Andrea Montoya Ayala | IME
14.Finalmente se debe de guardar el archivo para posteriormente utilizarlo
en MATLAB.
14
Laura Andrea Montoya Ayala | IME
4.1 EJEMPLO 1
“Ejemplo1DiagramaDeBloques”
4.2 EJEMPLO 2
“Ejemplo2DiagramaDeBloques”
EJEMPLO 3
“Ejemplo3DiagramaDeBloques”
15
Laura Andrea Montoya Ayala | IME
5. FUNCION DE TRANSFERENCIA POR MEDIO DE
DIAGRAMAS DE BLOQUES EN MATLAB
[num,den]=linmod('Ejemplo1DiagramaDeBloques')
Con este comando vamos a obtener los valores del numerador y del
denominador de nuestra función de transferencia.
16
Laura Andrea Montoya Ayala | IME
EJEMPLO 1
“Ejemplo1DiagramaDeBloques”
17
Laura Andrea Montoya Ayala | IME
EJEMPLO 2
“Ejemplo2DiagramaDeBloques”
18
Laura Andrea Montoya Ayala | IME
EJEMPLO 3
“Ejemplo3DiagramaDeBloques”
19
Laura Andrea Montoya Ayala | IME
6. TRANSFORMADA DE LAPLACE EN MATLAB
20
Laura Andrea Montoya Ayala | IME
6.1 EJEMPLO 1
f = 𝒆−𝒕 sen(2t)
𝟐
f (s) =
(𝒔+𝟏)𝟐 +𝟒
21
Laura Andrea Montoya Ayala | IME
EJEMPLO 2
𝟐𝒕
f = sen( )
𝟑
𝟐
f (s) = 𝟒
𝟑 (𝒔𝟐 + )
𝟗
22
Laura Andrea Montoya Ayala | IME
EJEMPLO 3
𝒄𝒐𝒔 (𝟕𝒕)
f=
𝒆𝟓𝒕
𝒔+𝟓
f (s) =
(𝒔+𝟓)𝟐 +𝟒𝟗
23
Laura Andrea Montoya Ayala | IME
7. ANTI TRANSFORMADA DE LA PLACE EN MATLAB
syms s t;
𝟒𝒔𝟐 +𝟐𝒔+𝟏𝟒
f=
(𝒔−𝟏)(𝒔𝟐 +𝟒)
24
Laura Andrea Montoya Ayala | IME
4. Para obtener la antitransformada de Laplace se utiliza el siguiente
comando:
ilaplace(f)
25
Laura Andrea Montoya Ayala | IME
7.1 EJEMPLO 1
𝟏
𝐋−𝟏 { }
𝒔𝟐 −𝟐𝒔+𝟗
√𝟐 𝒆𝒕 𝒔𝒆𝒏(𝟐√𝟐𝒕)
f(t)=
𝟒
26
Laura Andrea Montoya Ayala | IME
7.2 EJEMPLO 2
𝟐𝒔+𝟑
𝑳−𝟏 { }
𝒔𝟐 +𝟔𝒔+𝟏𝟑
𝟑𝒔𝒆𝒏 (𝟐𝒕)
f ( t ) = 𝒆−𝟑𝒕 (𝒄𝒐𝒔(𝟐𝒕) − )2
𝟒
27
Laura Andrea Montoya Ayala | IME
7.3 EJEMPLO 3
𝒔+𝟑
𝑳−𝟏 { }
𝒔 (𝒔𝟐 +𝟏)
28
Laura Andrea Montoya Ayala | IME
8. FRACCIONES PARCIALES EN MATLAB
syms x;
f = (7) / (x^2+3*x-10)
syms A B
c = factor(x^2+3*x-10)
29
Laura Andrea Montoya Ayala | IME
5. A las funciones del resultado anterior se van a nombrar con nuevas
variables:
d=x+5
e=x–2
f = (d*e*A) / d + (d*e*B)/e
7 = A ( x – 2) + B ( x + 5)
7 = Ax – 2A + Bx + 5B
7 = x ( A + B ) + ( -2 A + 5B )
A+B=0
-2A + 5B = 7
30
Laura Andrea Montoya Ayala | IME
8. Con nuestro sistema de ecuaciones vamos a formar una matriz y la vamos
a introducir a MATLAB con los siguientes comandos:
g = [1 1; -2 5]
h = [0; 7]
j=i*h
31
Laura Andrea Montoya Ayala | IME
8.1 EJEMPLO 1
𝟕 −𝟏 𝟏
= +
𝒙𝟐 +𝟑𝒙−𝟏𝟎 (𝑿+𝟓) (𝑿−𝟐)
32
Laura Andrea Montoya Ayala | IME
Figura 8.7 Ejemplo 1: Fracciones parciales.
7 = A ( x – 2) + B ( x + 5)
7 = Ax – 2A + Bx + 5B
7 = x ( A + B ) + ( -2 A + 5B )
A+B=0
-2A + 5B = 7
33
Laura Andrea Montoya Ayala | IME
8.2 EJEMPLO 2
𝟐𝒙−𝟕 𝟓 𝟒
= −
(𝟔𝒙𝟐 −𝟓𝒙+𝟏) 𝟑𝒙−𝟏 𝟐𝒙−𝟏
34
Laura Andrea Montoya Ayala | IME
2x – 7 = 2Ax – A + 3Bx – B
2x – 7 = x ( 2A + 3B ) + ( - A - B )
2A + 3B = 2
A+B=7
35
Laura Andrea Montoya Ayala | IME
8.3 EJEMPLO 3
𝟓 −𝟏. 𝟐𝟓 𝟏. 𝟐𝟓
= +
𝒙𝟐 − 𝟔𝒙 + 𝟓 𝒙−𝟏 𝒙−𝟓
36
Laura Andrea Montoya Ayala | IME
5=A(x–5)+B(x–1)
5 = Ax – 5A + Bx – B
5 = x ( A + B ) + (-5A -B)
A+B=0
-5A - B = 5
37
Laura Andrea Montoya Ayala | IME
9. SISTEMAS DE PRIMER ORDEN EN MATLAB
𝒌
𝒕𝒔 + 𝟏
1. Se debe de declarar las variables que se estará utilizando, en este caso “s,
t”, con el siguiente comando:
syms s t
K = 1;
tau = 1;
num = K;
den = [tau,1]
t = [0:0.1:10];
ye = step(num,den,t);
38
Laura Andrea Montoya Ayala | IME
La ganancia estática es el cociente entre la amplitud de salida y la de
entrada en el régimen permanente. Estos valores se pueden comprobar
directamente en la gráfica o analizando el vector de datos resultante. Para
ello se deben escribir los siguientes comandos.
yRP= ye(length(ye));
k=yRP
n = 1;
while ye(n) < 0.63*yRP
n=n+1;
end
tauEstim = 0.1*(n-1)
fprintf("constante de tiempo:%f\n",tauEstim)
39
Laura Andrea Montoya Ayala | IME
9.1 EJEMPLO 1
𝟏
G ( s ) = 𝐬+𝟏
40
Laura Andrea Montoya Ayala | IME
Figura 9.1 Ejemplo 1: Sistemas de primer orden.
41
Laura Andrea Montoya Ayala | IME
Figura 9.2 Ejemplo 1: Sistemas de primer orden.
42
Laura Andrea Montoya Ayala | IME
Figura 9.3 Ejemplo 1: Sistemas de primer orden.
43
Laura Andrea Montoya Ayala | IME
Figura 9.5 Ejemplo 1: Gráfica sistemas de primer orden.
44
Laura Andrea Montoya Ayala | IME
9.2 EJEMPLO 2
𝟑
G(s)=
𝟐𝐬+𝟑
45
Laura Andrea Montoya Ayala | IME
Figura 9.8 Ejemplo 2: Sistemas de primer orden.
46
Laura Andrea Montoya Ayala | IME
Figura 9.9 Ejemplo 2: Sistemas de primer orden.
47
Laura Andrea Montoya Ayala | IME
Figura 9.10 Ejemplo 2: Sistemas de primer orden.
48
Laura Andrea Montoya Ayala | IME
Figura 9.12 Ejemplo 2: Gráfica sistemas de primer orden.
49
Laura Andrea Montoya Ayala | IME
Figura 9.14 Ejemplo 2: Sistemas de primer orden.
50
Laura Andrea Montoya Ayala | IME
9.3 EJEMPLO 3
𝟏
G(s)=
𝐬+𝟓
51
Laura Andrea Montoya Ayala | IME
Figura 9.16 Ejemplo 3: Sistemas de primer orden.
52
Laura Andrea Montoya Ayala | IME
Figura 9.17 Ejemplo 3: Sistemas de primer orden.
53
Laura Andrea Montoya Ayala | IME
Figura 9.18 Ejemplo 3: Sistemas de primer orden
54
Laura Andrea Montoya Ayala | IME
Figura 9.20 Ejemplo 3: Gráfica de sistemas de primer orden.
55
Laura Andrea Montoya Ayala | IME
10. SISTEMAS DE SEGUNDO ORDEN EN MATLAB
O también:
1. Se debe de declarar las variables que se estará utilizando, en este caso “s,
t”, con el siguiente comando:
syms s t
56
Laura Andrea Montoya Ayala | IME
t2= [0:0.3:15];
y2e = step(num,den,t2);
plot(t2,y2e);
title ('Respuesta a un escalón unitario');
xlabel ('tiempo(seg)');
grid
57
Laura Andrea Montoya Ayala | IME
10.1 EJEMPLO 1
.𝟑𝒔𝟐 +𝟎.𝟐𝒔+𝟏
G(S) = (𝒔+𝟎.𝟓)(𝒔𝟐
+𝟎.𝟓𝒔+𝟏)
58
Laura Andrea Montoya Ayala | IME
Ganancia estática del sistema
Figura 10.4 Ejemplo 1 Sistemas de segundo orden: grafica respuesta a un escalón unitario.
59
Laura Andrea Montoya Ayala | IME
Respuesta frecuencial en magnitud y fase
60
Laura Andrea Montoya Ayala | IME
Figura 10.8 Ejemplo 1 Sistemas de segundo orden: grafica parte real e imaginaria.
61
Laura Andrea Montoya Ayala | IME
EJEMPLO 2
𝒔𝟐 +𝟎.𝟐𝒔+𝟏
G(S) = (𝟐𝒔+𝟎.𝟐)(𝒔𝟐
+𝟎.𝟏𝒔+𝟏)
62
Laura Andrea Montoya Ayala | IME
Ganancia estática del sistema
Figura 10.14 Ejemplo 2: Sistemas de segundo orden: Gráfica de respuesta a un escalon unitario
63
Laura Andrea Montoya Ayala | IME
Figura 10.16 Ejemplo 2: Sistemas de segundo orden: Grafica respuesta frecuencial
Figura 10.18 Ejemplo 2: Sistemas de segundo orden: Gráfica parte real e imaginaria.
64
Laura Andrea Montoya Ayala | IME
Los márgenes de ganancia
65
Laura Andrea Montoya Ayala | IME
10. 3 EJEMPLO 3
𝒔𝟐 +𝟐𝒔+𝟏
G(S) = (𝒔+𝟑)(𝒔𝟐
+𝒔+𝟐)
66
Laura Andrea Montoya Ayala | IME
Ganancia estática del sistema
Figura 10.24 Ejemplo 3 Sistemas de segundo orden: Gráfica de la respuesta a un escalón unitario.
67
Laura Andrea Montoya Ayala | IME
Respuesta frecuencial en magnitud y fase
68
Laura Andrea Montoya Ayala | IME
Figura 10.28 Ejemplo 3 Sistemas de segundo orden: Gráfica parte real e imaginaria.
69
Laura Andrea Montoya Ayala | IME
11.CONTROLADORES
Los controladores nos ayudan a corregir los errores que tienen nuestros sistemas
de control.
n = [3]
d = [1,9,4]
f = tf (n,d)
step(f)
70
Laura Andrea Montoya Ayala | IME
Con el cual podemos visualizar el tiempo de respuesta.
Kp = 4
c = pid(Kp,0,0
sys=feedback(c*f,1)
Donde:
c = controlador
f = función de transferencia
1 = retroalimentación
71
Laura Andrea Montoya Ayala | IME
Figura 11.2 Enlace de control.
step(sys)
72
Laura Andrea Montoya Ayala | IME
11.1.1 EJEMPLO 1
73
Laura Andrea Montoya Ayala | IME
Figura 11.6 Ejemplo 1: Controlador P.
74
Laura Andrea Montoya Ayala | IME
11.2 CONTROLADOR PROPORCIONAL INTEGRAL
n = [1]
d = [1,9,27,10]
G = tf (n,d)
step(G)
75
Laura Andrea Montoya Ayala | IME
2. Se debe de simular el diagrama de bloques del sistema de control junto
con el controlador en simulink.
76
Laura Andrea Montoya Ayala | IME
Figura 11.12 Editor del diagrama del controlador.
77
Laura Andrea Montoya Ayala | IME
11.2.1 EJEMPLO 2
78
Laura Andrea Montoya Ayala | IME
Figura 11.14 Gráfica de función de transferencia.
79
Laura Andrea Montoya Ayala | IME
11.3 CONTROLADOR PROPORCIONAL INTEGRAL DERIVATIVO
n = [1]
d = [6,11,6,1]
G = tf (n,d)
step(f)
80
Laura Andrea Montoya Ayala | IME
Figura 11.18 Gráfica de la función de transferencia.
Kp = 10
Ki=Kp/0.25
Kd= 0.63
81
Laura Andrea Montoya Ayala | IME
4. Ya teniendo los valores de las constantes, ingresamos el siguiente
comando para obtener la función de trasferencia del controlador PID:
G_LC=G*Gc/(1+G*Gc)
82
Laura Andrea Montoya Ayala | IME
6. Para poder visualizar la respuesta del sistema después de ingresar el
controlador proporcional, se ingresa el siguiente comando:
step(G_LC)
83
Laura Andrea Montoya Ayala | IME
11.3. 1 EJEMPLO 3
84
Laura Andrea Montoya Ayala | IME
Figura 11.24 Ejemplo 1 Controlador PID: Variables PID.
85
Laura Andrea Montoya Ayala | IME
Figura 11.26 Ejemplo 1 Controlador PID: Respuesta de salida.
86
Laura Andrea Montoya Ayala | IME
12. RESPUESTA EN FRECUENCIA
1. La señal se atenué
2. La señal se desfase
syms s
n = [3]
d = [1,9,4]
G = tf (n,d)
87
Laura Andrea Montoya Ayala | IME
3. Para obtener nuestros diagramas de bode, se ingresa un comando muy
sencillo:
Bode (G)
88
Laura Andrea Montoya Ayala | IME
12.1.1 EJEMPLO 1
𝒔𝟐 +𝟓𝒔+𝟐
G(S) = (𝒔+𝟐)
89
Laura Andrea Montoya Ayala | IME
12.1.2 EJEMPLO 2
𝒔𝟐 +𝟕𝒔
G(S) = (𝒔+𝟕)
90
Laura Andrea Montoya Ayala | IME
12.1.3 EJEMPLO 3
𝒔+𝟗
G(S) =
(𝟐𝒔𝟐 +𝒔)
91
Laura Andrea Montoya Ayala | IME
12.1.4 EJERCICIO 1
𝒔(𝒔+𝟓)
H(S) = (𝒔+𝟔)
92
Laura Andrea Montoya Ayala | IME
13.ESTABILIDAD DE UN SISTEMA
93
Laura Andrea Montoya Ayala | IME
1. Para declarar los coeficientes del polinomio característico se ingresa el
siguiente comando.
2. Con los siguientes comandos se van a organizar las primeras dos filas
para después proceder a armar la tabla del criterio de Routh-Hurwitz.
ceoffLength=length(coeffVector);
rhTableColumn=round(ceoffLength/2);
rhTable = zeros(ceoffLength,rhTableColumn);
rhTable(1,:) = coeffVector(1,1:2:ceoffLength);
if (rem(ceoffLength,2) ~= 0);
rhTable(2,1:rhTableColumn - 1) = coeffVector(1,2:2:ceoffLength);
else
rhTable(2,:) = coeffVector(1,2:2:ceoffLength);
end
94
Laura Andrea Montoya Ayala | IME
Figura 13.1 Construcción de la Tabla de Routh-Huwitz.
if rhTable(i-1,:) == 0
order = (ceoffLength - i);
cnt1 = 0;
cnt2 = 1;
for j = 1:rhTableColumn – 1
rhTable(i-1,j) = (order - cnt1) * rhTable(i-2,cnt2);
cnt2 = cnt2 + 1;
cnt1 = cnt1 + 2;
end
end
for j = 1:rhTableColumn – 1
firstElemUpperRow = rhTable(i-1,1);
95
Laura Andrea Montoya Ayala | IME
10.Para cada elemento de la tabla:
if rhTable(i,1) == 0
rhTable(i,1) = epss;
end
end
96
Laura Andrea Montoya Ayala | IME
12. Posteriormente se calcularán los polos inestables.
unstablePoles = 0;
for i = 1:ceoffLength – 1
if sign(rhTable(i,1)) * sign(rhTable(i+1,1)) == -1
unstablePoles = unstablePoles + 1;
end
end
if unstablePoles == 0
fprintf('~~~~~> it is a stable system! <~~~~~\n')
else
97
Laura Andrea Montoya Ayala | IME
fprintf('~~~~~> it is an unstable system! <~~~~~\n')
end
fprintf('\n Number of right hand side poles =%2.0f\n',unstablePoles)
reply = input('Do you want roots of system be shown? Y/N ', 's');
if reply == 'y' || reply == 'Y'
sysRoots = roots(coeffVector);
fprintf('\n Given polynomial coefficients roots :\n')
sysRoots
end
98
Laura Andrea Montoya Ayala | IME
Figura 13.6 Programa en ejecución.
99
Laura Andrea Montoya Ayala | IME
13.1.1 EJEMPLO 1
100
Laura Andrea Montoya Ayala | IME
13.1.2 EJEMPLO 2
101
Laura Andrea Montoya Ayala | IME
13.1.3 EJEMPLO 3
102
Laura Andrea Montoya Ayala | IME
13.2 ESTABILIDAD POR EL MÉTODO DE LGR
Lugar Geométrico de las Raíces (LGR) es otro método para poder conocer la
estabilidad de un sistema. Consiste en obtener el comportamiento de los polos
y ceros de una manera gráfica. Nos muestra que sucede con las variaciones de
k, y en que puntos el sistema es estable o inestable.
Podemos obtener las gráficas con las asíntotas de los polos y ceros por medio
de Matlab.
num = [1 4 2 6 3]
den = [1 4 2 8 4 1]
G=tf(num,den)
103
Laura Andrea Montoya Ayala | IME
2. Para obtener la gráfica del Lugar Geométrico de las Raíces, ingresamos
el siguiente comando:
rlocus(G)
104
Laura Andrea Montoya Ayala | IME
La información que nos arroja la asíntota es:
Interpretación de la gráfica
Ceros Polos
P5 = 0.2385 – 1.3603 i
Figura 13.13 El polo P2 tiende a cero Z1, el polo P3 tiende a cero Z3, mientras que el polo El polo P1 tiende a
cero en el infinito.
105
Laura Andrea Montoya Ayala | IME
Figura 13.14 El polo P4 Figura 13.15 El polo P2
tiende a cero Z2 . tiende a cero Z4 .
106
Laura Andrea Montoya Ayala | IME
13.2.1 EJEMPLO 1
107
Laura Andrea Montoya Ayala | IME
Interpretación de la gráfica
Figura 13.17 El polo P1 tiende a cero en el infinito, el polo P2 tiende a cero Z3, el polo P3 tiende a cero Z4, el
polo P4 tiende a cero Z5, P5 tiende a cero Z1, mientras que el polo P6 tiende a cero Z2 .
Ceros Polos
P6 = 0.3366 - 0.6750i
Nota: Los polos y ceros se obtiene de la información que nos arroja las
asíntotas de la gráfica.
108
Laura Andrea Montoya Ayala | IME
13.2.2 EJEMPLO 2
109
Laura Andrea Montoya Ayala | IME
Interpretación de la gráfica
Figura 13.19 El polo P1 tiende a cero Z3, el polo P2 tiende a cero Z4, el polo P3 tiende a cero Z5, el polo P4
tiende a cero Z1, mientras que el polo P5 tiende a cero Z2.
Ceros Polos
Nota: Los polos y ceros se obtiene de la información que nos arroja las
asíntotas de la gráfica.
110
Laura Andrea Montoya Ayala | IME
13.2.3 EJEMPLO 3
111
Laura Andrea Montoya Ayala | IME
Interpretación de la gráfica
Figura 13.21 El polo P1 tiende a cero Z3, el polo P2 tiende a cero Z4, el polo P3 tiende a cero Z5, el polo P4
tiende a cero Z1, mientras que el polo P5 tiende a cero Z2.
Ceros Polos
Nota: Los polos y ceros se obtiene de la información que nos arroja las
asíntotas de la gráfica.
112
Laura Andrea Montoya Ayala | IME
BIBLIOGRAFÍA
MathWorks.
113
Laura Andrea Montoya Ayala | IME