Introduccion Matlab Control
Introduccion Matlab Control
Introduccion Matlab Control
En años recientes, el análisis y diseño de sistemas de control han sido afectados dramáticamente
por la proliferación del uso de las computadoras, especialmente de las computadoras personales.
Estas se han hecho tan poderosas y avanzadas que pueden resolver problemas de sistemas de
control con facilidad. Uno de los programas útiles en el campo del control automático es Matlab.
En líneas generales, Matlab es una herramienta interactiva basada en matrices para cálculos
científicos y de ingeniería (de hecho, el término Matlab procede de matrix laboratory). Desde el
punto de vista del control, Matlab se puede considerar un entorno matemático de simulación que
puede utilizarse para modelar y analizar sistemas. Permitiría el estudio de sistemas continuos,
discretos, lineales y no lineales, mediante descripción interna y externa, en el dominio temporal y
frecuencial.
DESARROLLO
Actividades realizadas
Se realizó gráficas de tiempo y frecuencia de data experimental empleando los comandos plot,
polar y semilogx. Posterior a esto, se definió funciones de transferencia en Matlab empleando los
comandos tf y zpk. Luego, se interconectó funciones de transferencia tanto en cascada como en
lazos de realimentación empleando los comandos series y feedback. Finalmente, se obtuvo en
Matlab la respuesta transitoria al escalón de sistemas de control tanto en lazo abierto como en lazo
cerrado usando comandos de la librería de control de Matlab.
Comandos de Graficación
Para cada una de las curvas se tomaron 10 datos (amplitud y tiempo) y se tabularon para
construir la tabla 1, correspondiente a la curva y1 y la tabla 2, correspondiente a la curva y2.
t 0.00 0.07 0.50 0.65 1.14 1.50 1.67 2.00 2.20 2.50
y1 0.00 0.00 1.00 1.16 0.66 0.80 0.90 0.80 0.76 0.80
Tabla 1
t 0.00 0.07 0.44 0.81 1.00 1.14 1.50 1.80 2.17 2.50
y2 0.00 0.00 1.80 0.92 1.20 1.34 1.12 1.26 1.18 1.20
Tabla 2
a.
Se obtuvo el gráfico de y1 vs t (Fig. 1) usando el comando plot. Para esto, se desplegaron los
datos de la variable independiente que corresponde a t (tiempo) y la variable dependiente que
corresponde a y1 (amplitud).
>> t= [0.00 0.07 0.50 0.65 1.14 1.50 1.67 2.00 2.20 2.50];
>> y1= [0.00 0.00 1.00 1.16 0.66 0.80 0.90 0.80 0.76 0.80];
>> plot(t,y1)
Fig. 1
b.
Luego, se obtuvo un gráfico (Fig. 2) usando el comando hold on, para resaltar con un asterisco
de color negro el punto más alto del gráfico de la Fig. 1.
>> hold on
>> plot(0.65,1.16,'k:*')
Fig. 3
d.
Finalmente, se graficó y1 vs t y y2 vs t (Fig. 4) en una misma ventana, haciendo uso el comando
subplot, donde se estableció un arreglo de 2 filas y una columna. Posicionamos la gráfica de y1 en
la posición 1 y la gráfica de y2 en la posición 2. Posteriormente se hizo uso del comando plot para
obtener dichas gráficas.
>> subplot(2,1,1),plot(t,y1),title('Gráfico y1 vs t');
>> subplot(2,1,2),plot(t2,y2),title('Gráfico y2 vs t');
Fig. 4
2. Se tiene la siguiente tabla de valores:
Mag 0.33 0.33 0.33 0.32 0.32 0.28 0.24 0.20 0.17
Fase -3.81 -7.59 -11.3 -14.9 -18.4 -33.7 -45.0 -53.1 -59.0
a.
Para este apartado, se convirtió el vector de magnitud a decibeles. Para esto, se hizo uso del
comando ydb=mag2db(y), el cual expresa en decibelios (dB) las mediciones de magnitud
especificadas en y. La relación entre magnitud y decibelios es de 20*logydb10(y), donde ‘’y’’ es
el vector magnitud. Luego, se definió el vector w.
>> ydb=mag2db([0.33 0.33 0.33 0.32 0.32 0.28 0.24 0.20 0.17])
>> w=[0.20 0.40 0.60 0.80 1.00 2.00 3.00 4.00 5.00]
Para obtener el diagrama de Bode de magnitud representado en la Fig. 5, se hizo uso del
comando bode().
>> bode(w,ydb)
Fig. 5
b.
A partir de los valores de fase y magnitud, se tabularon los valores de las partes real e imaginaria
respectivamente. Para esto, se definió f para los valores de fase como parte real y ydb es el vector
de magnitud (convertido en decibeles en la parte a.) como parte imaginaria. Posteriormente, se hizo
uso del comando nyquist().
>> f= [-3.81 -7.59 -11.3 -14.9 -18.4 -33.7 -45.0 -53.1 -59.0]
>> nyquist(f,ydb)
Asimismo, se obtuvo un diagrama de Nyquist (Fig.6) graficando reales versus imaginarios.
Fig. 6
Funciones de transferencia
3. Se consideró las siguientes funciones de transferencia:
a.
Se definió en MATLAB las funciones F1(s) y F2(s) usando el comando tf. Para esto, la función
de transferencia expresada como cociente de polinomios, se obtiene pasándole dos vectores con
los coeficientes en s del numerador y denominador; estos deberán ir ordenados desde el elemento
de mayor potencia al de menor, añadiendo un cero en el caso de no existir. A continuación, se
muestra para los sistemas F1(s) y F2(s) dados:
b.
Asimismo, se definió en Matlab la función de transferencia F3(s). Para esto, la función de
transferencia, expresada en función de los polos y ceros del sistema, se definió mediante el
comando zpk (zero-polo-gain). Para ello, es necesario pasarle al comando tres vectores que
contengan las posiciones de los zeros (z), las de los polos (p) y el factor de ganancia (K), en este
orden. Así pues, para este sistema se tiene, un cero en la posición -1; un polo doble en -20 y otro
en -100, y un factor de ganancia de 500, esto es:
c.
Se obtuvo una nueva función F12 uniendo en cascada las funciones F1(s) y F2(s). Para esto, se
usó el comando series.
d.
Por otra parte, se obtuvo un sistema de lazo cerrado unitario con la función de lazo abierto del
punto anterior (F12). Para esto, se definió también una función o sistema unitario H con el comando
tf. Así, para obtener dicho sistema de lazo cerrado, se empleó el comando feedback() con los
sistemas F12 y H.
e.
A su vez, se investigó y se comprobó la posibilidad de unir en cascada una función definida
con el comando tf con otra definida con el comando zpk. Para esto, se usó el comando series y en
ella se definieron 2 funciones, las cuales se expresaron con los comandos tf y zpk respectivamente.
Tal cual como se muestra a continuación:
Respuesta en el tiempo
4. Considerando las funciones de transferencia de la parte 3.
a.
Se obtuvo y se comparó las respuestas al escalón de las funciones F1 y F2 (Fig. 7), usando el
comando step. Para ello, se utilizaron las funciones previamente definidas F1s y F2s y se estableció
un límite de tiempo para la clara visualización de ambas curvas.
>> step(F1s,F2s,3.5)
Fig. 7
b.
De igual forma, se obtuvo y se comparó las respuestas al escalón de la función F12 (Fig. 8) en
lazo abierto y lazo cerrado. Para ello, se utilizaron las funciones previamente obtenidas F12 y M,
las cuales corresponden a las funciones en lazo abierto y en lazo cerrado respectivamente.
>> step(F12,M)
Fig. 8
CONCLUSIÓN
La importancia de esta práctica, es que además de anexar una lista de comandos en un lenguaje
de instrucciones, se buscó en general el entendimiento del proceso. Las funciones que ejercen los
comandos digitados por el usuario, tienen una función determinada. Lo que se buscó, es facilitar
estos procesos que requieren que se resuelvan a papel y lápiz, pero con solo entender lo que se
necesita realizar, podemos lograr estos cálculos utilizando de manera esencial la herramienta
Matlab.
También, utilizando los comandos adecuados, se puede modelar de una manera práctica y clara
la función de transferencia de cualquier sistema. Se aprendió, además, a crear o convertir modelos
de función de transferencia, la cual es de mucha importancia para el control de sistemas y
procesamiento de la señal.