Está en la página 1de 18

U NIVERSIDAD N ACIONAL A UTÓNOMA

DE M ÉXICO
Facultad de Estudios Superiores Cuautitlán

INGENIERÍA MECÁNICA ELÉCTRICA

DEPARTAMENTO DE INGENIERÍA
LAB. DE TEORÍA DE CONTROL Y ROBÓTICA
Reporte NO.6
“Simulación de sistemas en Matlab”

GRUPO: 1801 B

PROFESOR: Víctor Gonzales Martínez

ALUMNO:
GARCÍA PÉREZ JAN RODRIGO.

Fecha de realización: 28-11-2021 Fecha de entrega: 29-11-2021


6: “Simulación de sistemas en Matlab”
Practica 6: “Simulación de sistemas en Matlab”

Objetivos
Al término de esta práctica el alumno:
- Estará familiarizado con el ambiente de simulación de sistemas Matlab, así
como los comandos del toolbox de control del mismo entorno.
- Conocer el comportamiento teórico de diferentes sistemas de primer y segundo
orden, y su respuesta a señales de entrada fundamentales.

Equipo

1 laptop con el software de simulación Matlab con la licencia institucional 2019.

Introducción

MATLAB
MATLAB (abreviatura de MATrix LABoratory, «laboratorio de matrices») es un
sistema de cómputo numérico que ofrece un entorno de desarrollo integrado (IDE) con
un lenguaje de programación propio (lenguaje M). Está disponible para las plataformas
Unix, Windows, macOS y GNU/Linux.
Entre sus prestaciones básicas se hallan la manipulación de matrices, la representación
de datos y funciones, la implementación de algoritmos, la creación de interfaces de
usuario (GUI) y la comunicación con programas en otros lenguajes y con otros
dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales
que expanden sus prestaciones, a saber, Simulink (plataforma de simulación
multidominio) y GUIDE (editor de interfaces de usuario - GUI). Además, se pueden
ampliar las capacidades de MATLAB con las cajas de herramientas (toolboxes); y las
de Simulink con los paquetes de bloques (blocksets).
Es un software muy usado en universidades y centros de investigación y desarrollo. En
los últimos años ha aumentado el número de prestaciones, como la de programar
directamente procesadores digitales de señal o crear código VHDL.
En 2004, se estimaba que MATLAB era empleado por más de un millón de personas
en ámbitos académicos y empresariales.

Características
Lenguaje

2
Practica 6: “Simulación de sistemas en Matlab”

Las aplicaciones de MATLAB se desarrollan en un lenguaje de programación propio.


Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactivo, como
a través de un archivo de script (archivos *.m). Este lenguaje permite operaciones de
vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos.

Gráficos e interfaces gráficas

Toolboxes

MATLAB
- Parallel Computing
- Math, Statistics, and Optimization
- Control Systems
- Signal Processing and Communications
- Image Processing and Computer Vision
- Test and Measurement
- Computational Finance
- Computational Biology
- Code Generation and Verification
- Application Deployment
- Database Connectivity and Reporting
MATLAB Report Generator
- Text Analytics Toolbox™
- Simulink
- Event-Based Modeling
- Physical Modeling
- Control Systems
- Signal Processing and Communications
- Code Generation
- Real-Time Simulation and Testing
- Verification, Validation, and Test
- Simulation Graphics and Reporting
Limitaciones y alternativas
Durante mucho tiempo hubo críticas porque MATLAB es un producto propietario de
The Mathworks, y los usuarios están sujetos y bloqueados al vendedor. Recientemente
se ha proporcionado una herramienta adicional llamada MATLAB Builder bajo la
sección de herramientas «Application Deployment» para utilizar funciones MATLAB
como archivos de biblioteca que pueden ser usados con ambientes de construcción de
aplicación .NET o Java. Pero la desventaja es que el computador donde la aplicación
tiene que ser utilizada necesita MCR(MATLAB Component Runtime) para que los

2
Practica 6: “Simulación de sistemas en Matlab”

archivos MATLAB funcionen correctamente. MCR se puede distribuir libremente con


los archivos de biblioteca generados por el compilador MATLAB.

Interfaz con otros lenguajes de programación


MATLAB puede llamar funciones y subrutinas escritas en C o Fortran. Se crea una
función envoltorio que permite que sean pasados y devueltos tipos de datos de
MATLAB. Los archivos objeto dinámicamente cargables creados compilando esas
funciones se denominan MEX-files, aunque la extensión de nombre de archivo
depende del sistema operativo y del procesador.

Procedimiento experimental.
1. Matlab consiste en un entorno de ventanas con cuatro partes:
o Command Window: Es la ventana en la que se escriben las instrucciones que se
quieren ejecutar.
o Current Folder: Muestra el contenido de la carpeta de trabajo. La dirección de
la carpeta de trabajo se puede cambiar mediante la barra desplegable que aparece
encima de las ventanas.
o Workspace: La ventana Workspace muestra información sobre las variables y
objetos definidos.
o Editor / Command History: Permite ingresar una serie de comando que se
ejecutaran de manera secuencial de tal manera que nos evita ejecutar cada comando de
manera individual, esta ventana también puede mostrar los últimos comandos
(instrucciones) ejecutados.
Para la realización de esta práctica se utilizará la ventana Command Window.

2
Practica 6: “Simulación de sistemas en Matlab”

2. Sistemas de primer orden. La representación en forma de función de


transferencia viene dada de manera general como:
k
G(s)=
rs+ 1
Escriba en la ventana de comandos (Command Window) las siguientes instrucciones
(en color rojo), de modo que se obtenga tal y como se muestra en la figura 6.2.

3. La respuesta a la entrada escalón unitario de entrada se obtiene con la función


step. Para ello, se debe de definir un intervalo de simulación utilice los siguientes
comandos:

t = [0:0.1:10];
ye = step(num,den,t);
Aquí el parámetro t tiene 3 valores: el valor en el cual inicia la simulación t=0s; el
tiempo en el cual termina la simulación t=10s, es decir, la simulación termina a los 10

2
Practica 6: “Simulación de sistemas en Matlab”

segundos, y el paso intermedio t=0.1s que indica el tiempo en el que el programa hace
los cálculos de la simulación.

4. Para visualizar de manera gráfica la simulación se deben de ingresar los


siguientes comandos:

plot(t,ye);
title ('Respuesta a un escalon unitario'); xlabel ('tiempo(seg)');
grid;
El resultado se observará en una nueva ventana de Matlab, como la que se ve en la
figura 6.3.

5. Las dos características fundamentales de un sistema de primer orden son su


ganancia estática K y su constante de tiempo τ. La constante de tiempo es el tiempo
que le toma a la señal alcanzar el 63% de la salida máxima. 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);

2
Practica 6: “Simulación de sistemas en Matlab”

6. Con la siguiente instrucción (en color rojo), Matlab responde imprimiendo en la


venta de comandos el tiempo que le toma al sistema alcanzar el 63%, como se observa
en la figura 6.4.

fprintf("constante de tiempo:%f\n",tauEstim)

7. Para finalizar con los sistemas de primer orden, se va a comprobar que los
resultados coinciden con los esperados de forma teórica. Los sistemas lineales de
primer orden de ganancia unitaria invariantes en el tiempo tienen la siguiente respuesta
característica a una entrada escalón unitario:
𝑦(𝑡) = 1 − 𝑒−𝑡/𝑟, 𝑡 ≥ 0

Si se dibuja esta función con el vector de tiempos definido anteriormente, y se


superpone con la gráfica vista anteriormente, puede apreciarse que coinciden
perfectamente.

8. Escriba en la ventana de comando las siguientes instrucciones:

ye2 = 1 - exp(-t/tau); plot (t,ye,t,ye2,'o');


title('Respuesta teórica a escalón unitario'); grid;

El resultado se observará en una nueva ventana de Matlab, como se aprecia en la figura


6.5.

2
Practica 6: “Simulación de sistemas en Matlab”

9. Sistemas de Segundo orden. La representación general en forma de función de


transferencia viene dada por:
𝑘 𝜔 𝑛2
𝐺(𝑠) =
𝑠 2 + 2 𝜁 𝜔 𝑛 𝑠 + 𝜔 𝑛2

Sin embargo, las ecuaciones pueden estar dadas de otra forma, por ejemplo:
0.2𝑠2 + 0.3𝑠 + 1
𝐺2(𝑠) =
(𝑠 + 0.5)(𝑠2 + 0.4𝑠 + 1)

10. Escriba en la ventana de comandos (Command Window) las siguientes


instrucciones:

num = [.2 .3 1];


den1 = [1 .4 1];
den2 = [1 .5];
den = conv(den1,den2);

11. Para ver los polos o los ceros de la función de transferencia, se pueden usar los
comandos roots(den) o roots(num) respectivamente.

12. Una forma más completa de convertir una función de transferencia dada por
dos polinomios, numerador y denominador, en un conjunto de factores de grado 1,
correspondientes a los polos (z1, z2, z3) y ceros (c1, c2), es a través del comando:

[ceros,polos,gan] = tf2zp (num,den)

En respuesta Matlab devuelve un vector conteniendo los ceros de la función de


transferencia, un vector conteniendo los polos, y un escalar correspondiente a la
ganancia estática.

13. Escriba el comando anterior y verifique que el sistema muestra la información


tal como se observa en la figura 6.6.

2
Practica 6: “Simulación de sistemas en Matlab”

14. La respuesta a la entrada escalón unitario se obtiene con la función step. Para
ello se debe de definir un intervalo de simulación, empleando los siguientes comandos:

t2 = [0:0.3:15];
y2e = step(num,den,t2); plot(t,y2e);
title ('Respuesta a un escalón unitario'); xlabel ('tiempo(seg)');
grid;

15. La figura 6.7 muestra la ventana donde aparece la gráfica correspondiente a los
comandos del punto anterior.
16. La respuesta en frecuencia de los sistemas se puede obtener usando las
funciones de Bode.
Para obtener la gráfica de la respuesta en frecuencia mostrada en la figura 6.8 escriba
los comandos:

2
Practica 6: “Simulación de sistemas en Matlab”

Figura 6.7. Respuesta a entrada escalón unitario de un sistema de segundo orden.


[mag,phase,w] = bode (num,den);
subplot(211), loglog(w,mag), title('Magnitud'), xlabel('rad/s'); subplot(212),
semilogx(w,phase), title('Fase'), xlabel('rad/s');

17. El comando nyquist calcula tanto la parte real como la imaginaria de 𝐺(𝑗𝜔) y
realiza la representación si no se le indican parámetros de salida. Para obtener la
representación gráfica solo hay que graficar la parte real contra la imaginaria. El
resultado obtenido mediante el ejemplo anterior puede verse en la figura 6.9 al escribir
los siguientes comandos:
[re,im] = nyquist (num,den,w); plot(re,im,re,-im,'r')

2
Practica 6: “Simulación de sistemas en Matlab”

18. Como es bien sabido en la teoría clásica del control, los márgenes de
estabilidad son el margen de fase y el margen de ganancia. Estos márgenes se calculan
usando el comando margin. Escriba el siguiente comando para obtener el margen de
ganancia y el margen de fase de la función de transferencia de segundo orden además
de sus frecuencias correspondientes:
[mg,mf,wmg,wmf] = margin (num,den)

Cuestionario

1) Investigue que funciones en Matlab se deben utilizar para lograr la simulación


de entradas de tipo impulso y rampa unitarios.

2) Para la función se transferencia siguiente y considerando 𝑘 = 1, 𝜔𝑛 = 1 𝑦 𝜁 =


0.5

𝑘𝜔2
𝑛
𝐺(𝑠) =
𝑠2 + 2 𝜁 𝜔 𝑛 𝑠 + 𝜔 𝑛2
Determine:

Determine:
a) Raíces del sistema (polos y ceros)
b) Ganancia estática del sistema
c) Respuesta temporal a entrada escalón unitario
d) Respuesta frecuencial en magnitud y fase
e) Las partes real e imaginaria de G(jw)
f) Los márgenes de ganancia

2
Practica 6: “Simulación de sistemas en Matlab”

Observaciones

A través del programa obtuvimos la respuesta de un sistema de primer orden a un


escalón unitario donde encontramos que en un rango de tiempo de 0-10 segundos en el
segundo 6 el sistema alcanza su estado de régimen permanente.

2
Practica 6: “Simulación de sistemas en Matlab”

A través de los siguientes comandos obtuvimos una mayor cantidad de características


de la función, como lo son la ganancia estática, la constante de tiempo, esto es de gran
utilidad al momento de analizar un sistema ya que de manera más precisa y rápida se
logran visualizar los resultados.

2
Practica 6: “Simulación de sistemas en Matlab”

En esta grafica se pude observar la respuesta que se obtiene insertando la función


general en la que un sistema de primer orden se rige y la que se pude obtener con la
simulación, donde claramente se observa que ambas respuestas coinciden
satisfactoriamente, dando por hecho que análisis previo es correcto.

2
Practica 6: “Simulación de sistemas en Matlab”

A través de estos comandos se muestran los parámetros de una función de segundo


orden, como se puede observar los resultados entregados son en forma de vectores,
resulta de gran utilidad debido a que para un mejor análisis en los polos y se ceros se
necesita trabajar con las raíces de la función.

2
Practica 6: “Simulación de sistemas en Matlab”

Mediante el comando Bode, se obtiene la respuesta en frecuencia del sistema de


segundo orden, se muestran dos gráficos uno de la magnitud y fase los cuales tienen en
el eje de las abscisas rad/seg y en las ordenadas decibeles y frecuencia en escala
logarítmica respectivamente, en la práctica el diagrama de bode se obtiene “barriendo”
al sistema con entradas senoidales de diferentes frecuencias.

Aquí se observa el diagrama de Nyquist el cual grafica la parte real como la parte
imaginaria de G(jω), la principal función de este grafico es observar mediante la
trayectoria de Nyquist el cual debe encerrar todo el semiplano positivo, rodeando e
incluyendo a todos los ceros y polos de la función.

2
Practica 6: “Simulación de sistemas en Matlab”

Con los siguientes comandos obtuvimos los márgenes de ganancia y fase del sistema
de segundo orden, los cuales nos sirven para determinar si un sistema es inestable, el
margen de fase es el ángulo (en grados) que habría que restarle a la fase G(s)*H(s) para
volver inestable a M(s), mientras que el margen de ganancia es el valor que habría que
multiplicar (o los decibeles que habría que sumar) a la ganancia G(s)*H(s) para que
M(s) se vuelva inestable.

Conclusiones.

Luego de analizar los resultados obtenidos, podemos concluir que el software Matlab
es una excelente ayuda y una herramienta indispensable para llevar a cabo el análisis
de las funciones, dado que el programa tiene un gran número de funciones, el completo
entendimiento del mismo puede resultar en una tarea con cierto grado de complejidad,
sin embargo, si se usa en determinado campo y para determinadas acciones, el
programa resulta de gran ayuda para llevar a cabo dichas simulaciones.

Fuentes.

Cibergrafía:
https://dademuch.com/2020/05/07/sistema-de-segundo-orden/

2
Practica 6: “Simulación de sistemas en Matlab”

https://es.wikipedia.org/wiki/MATLAB
Bibliografía:
- Katsuhiko Ogata, Ingeniería de Control Moderna, 4ª edición, Prentice
Hall;2003
- Groover Mikel P., Automation, production systems and computerintegrated
manufacturing 3rd edition, USA, editorial Prentice Hall, 2007.
- Saha Subir Kumar, Introducción a la robótica, México, Editorial McGrawHill,
2010.

También podría gustarte