Subido por capacidad deportiva

Moldelado y control

Anuncio
Universidad Autónoma de Baja California
Facultad de ciencias químicas e ingeniería
Modelado y Control
Reporte práctica #0
Villegas Moraila Luis David 1267277
Aguilera Savage Franco 1269127
Viernes 26 de agosto de 2022
1
MATLAB
Competencia
Familiarizarse con el ambiente de programación de Matlab y ser capaz de
utilizar comandos básicos.
Introducción
Matlab es una herramienta de cómputo numérico para operaciones con
matrices y vectores. Su capacidad incluye graficado.
Matlab puede ser utilizado de diversas formas: como calculador avanzado en
el modo de cálculo (prompt inicial), en modo de programación de lenguaje de
alto nivel para generar las propias funciones y como subrutina para ser
llamada desde un programa de lenguaje C.
Para obtener información sobre los comandos es posible de cualquiera de las
siguientes formas:
Desde la línea de comandos utilizando el comando >>help.
ventana de ayuda, bajo Help Menu.
Desde la
Matlab cuenta también con demostraciones (demos) los cuales son
accesibles escribiendo el comando >>demo.
Formatos de visualización
Matlab tiene varios formatos de salida de pantalla diferentes para mostrar
números. Estos formatos se pueden encontrar escribiendo el comando help
2
format en la ventana de comandos. Algunos de estos formatos se muestran
en la Tabla 2.
Tabla 2. Tabla de formatos.
Comando
Descripción
Ejemplo
format short
Punto fijo con
dígitos decimales.
format long
Punto fijo con 14 >>351/7
dígitos decimales.
ans
50.14285714285715
4 >>351/7 ans
= 50.1429
format short e
Notación científica >>351/7 ans =
con
4
dígitos 5.0143e+001
decimales.
format long e
Notación científica >>351/7
con
15
dígitos ans
decimales.
5.01428571428571e+001
format short g
Los mejores 5 dígitos >>351/7 ans
de punto fijo o = 50.143
flotante.
format bank
Dos dígitos
decimales.
=
=
>>351/7 ans
= 50.14
Expansión de fracciones parciales
Cuando se encuentra la transformada de Laplace inversa (o transformada
inversa de Z) es útil segmentar los polinomios de tal manera que se pueda
aplicar la tabla de transformadas de Laplace (o Z). Esto se puede hacer usando
3
el método de expansión de fracciones parciales, que es el inverso de
encontrar un denominador común y combinar fracciones. Es posible hacer
esto desde Matlab. Primero se presenta un caso simple cuando no hay raíces
repetidas y el orden del polinomio del numerador es estrictamente menor
que el orden del polinomio del denominador.
¿Cómo aplicar la expansión de fracciones parciales?
Se tiene el siguiente ejemplo. Encontrar la transformada inversa de
Primero se factoriza el denominador. Usando la formula cuadrática se
obtienen las raíces y se escribe la forma factorizada como
Después se usa la siguiente ecuación
Utilizando la ecuación
Cuyo valor es r1=7.
De manera similar
4
Osea, r2=-4.
Expansión de fracciones parciales en Matlab
La función residue de Matlab se puede utilizar para calcular esto, de una
relación de dos polinomios.
Este entrega tres piezas de información:
• Los residuos se dan en el vector de salida r.
• Los polos se dan en el vector de salida p.
• Los llamados términos directos se dan en el vector de salida k. Cuando
el orden del polinomio del numerador:
• Es menor que el orden del polinomio denominador, no habrá términos
directos.
5
• Es igual al orden del denominador, habrá un término directo. • Es uno
mayor que el orden del denominador, habrá dos términos directos. Etc.
El comando requiere de dos vectores de entrada:
• Uno con los coeficientes del numerador.
• Uno con los coeficientes de denominador.
Ejemplo. Sin términos directos, sin raíces repetidas, sin raíces complejas.
Se tiene la siguiente función de transferencia
Se podría primero ingresar el numerador y denominador, para después
aplicar el comando residue, como se muestra a
continuación
El resultado obtenido es
6
Note que k se encuentra vacío, indicando que no hay términos directos. Los
números en r son los residuos (son los números que van en el numerador de
cada término de la expansión). Y los números p son los polos (son los
números sustraídos de s para formar los denominadores de los términos).
Se tiene un polo en s=-2 con un residuo de 7 y un polo en s=-1 con un residuo
de -4. Por lo tanto
Y utilizando las tablas de transformada de Laplace para cada término de la
expansión se obtiene:
7
Ejercicios
1. Realizar las siguientes operaciones aritméticas, utilizando 4 dígitos
decimales.
a)
Figura 1. Código inciso a.
Procedimiento
1. En el inciso A primero se declararon las variables.
2. Con base en esas variables se creó la función tanto la
parte del numerador como la del denominador.
3. Al final solo se realizó la división para dar un resultado de
9.9190e+03.
8
Resultado.
Fig. 2. Resultado del inciso a.
b)
Fig. 2. Código del inciso b.
Procedimiento
1. Se utilizó el comando format short,
2. Después se declararon las variables las cuales se le
asignaron valores.
3. Al final se creó la función descrita en el inciso del primer
punto. El resultado obtenido fue 9.8466e-15.
Resultado.
Fig. 3. Resultado del inciso b.
9
c)
Fig. 4. Código inciso c.
Procedimiento
1. Se comenzó definiendo las variables con los valores dados
en la práctica,
2. Luego se creó la función del numerador y posteriormente
la de denominador.
3. Al final solo se dividió y dio como resultado un valor de
3.1667.
Resultado.
Fig. 5. Resultado del inciso c.
10
d)
Fig. 4. Código inciso d.
Procedimiento
1. Primero se le asignaron las variables a los valores dados.
2. Al final se le adiciono ambos valores en forma de fracción
dentro del seno dando así un valor de 1.
Resultado.
Fig. 5. Resultado del inciso d.
2. Graficar las siguientes funciones.
a) 𝑦 = 𝑥 + 250
Fig. 6. Código del inciso a.
Procedimiento
1. Primero creamos un vector de tiempo de -pi hasta 100.
2. Después se creó la función dada en la práctica.
3. Al final con la variable z solo la mandamos a graficar con el comando plot.
11
Resultado
Fig. 7. Gráfica generada.
b) 𝑦 = sin(3𝜋𝑥)
Fig. 7. Código del inciso b.
Procedimiento
1. Se creó el vector de tiempo de -pi hasta pi.
2. Pasamos a realizar la función del inciso utilizando el vector x.
3. Usamos el comando plot para graficar la función.
12
Resultado
Fig. 8. Gráfica.
c) 𝑦 = 𝑒𝑥
Fig. 9. Código del inciso c.
13
Procedimiento
1. Se definió el vector de tiempo x de 1 a 10.
2. Se creó la función correspondiente utilizando el vector x.
3. Se mandó a graficar usando un plot.
Resultado
Fig. 10. Gráfica.
3. Graficar las siguientes funciones en una sola ventana (hint:
usar subplot).
a) 𝑦 = 𝑥2
14
b) 𝑦 = 4𝑥2
c) 𝑦 = 1 𝑥2
2
Procedimiento
Fig. 11. Código.
1. Se creó el vector de tiempo que será común para las tres funciones por realizar.
2. Se crean las tres funciones correspondientes y, y2 y y3.
3. Se utilizó un subplot para posicionar cada una de las gráficas en un lugar específico
del marco de las gráficas y además se crea cada gráfica con plot.
15
Resultado
Fig. 12. Gráficas.
4. Expandir en fracciones parciales las siguientes funciones: a)
Procedimiento
Fig. 13. Código inciso a.
1. Se creó un vector para el numerador y otro para el denominador.
2. Se utiliza el comando residue para obtener los residuos, polos y el indicador de
términos directos k.
16
3. Los residuos obtenidos fueron 0.2500 + 0.2500i y 0.2500 - 0.2500i. Los polos
obtenidos fueron -0.5000 + 0.5000i, -0.5000 - 0.5000i y k sin valor asignado, lo cual
indica que no hay términos directos.
Resultados
Fig. 14. Resultados del inciso a.
Fig. 15.
Procedimiento
1. Creamos el vector n para el numerador y el vector d para el denominador.
17
2. Utilizamos el comando residue para obtener los residuos, polos y el indicador de
términos directos k.
3. Se obtuvieron los siguientes residuos 1.0000 - 2.5000i y 1.0000 + 2.5000i, se
obtuvieron los siguientes polos -1.0000 + 2.0000i y -1.0000 - 2.0000i y se obtuvo
una k sin valor asignado lo cual indica que no hay términos directos.
Resultados
Fig. 16. Resultados del inciso b.
Fig. 17. Código del inciso c.
18
Procedimiento
1. Creamos el vector n para el denominador fijándonos en los coeficientes del
numerador y creamos el vector d para el denominador fijándonos en los
coeficientes del denominador una vez desarrollada la expresión (s + 1)^3
2. Los residuos obtenidos fueron los siguientes 1.0000, 0.0000 y 2.0000, los polos
obtenidos fueron los siguientes -1, -1, -1 y una k sin valor asignado lo cual indica
que no hay términos directos.
Resultados
Fig. 18. Resultados inciso c.
19
SIMULINK
Competencia
Familiarizarse con el entorno gráfico de Simulink.
Introducción
Simulink es una herramienta que ofrece un editor gráfico, bibliotecas de
bloques personalizables y un conjunto de solvers, para modelar y simular
sistemas dinámicos. Está basado en un entorno de diagramas de bloque
multi-dominio bajo un diseño basado en modelos. Simulink permite el diseño
y la simulación a nivel de sistema, la generación automática de código, así
como la prueba y verificación continua de los sistemas embebidos.
La capacidad de integración de Simulink con MATLAB, le permite incorporar
algoritmos de este lenguaje dentro de los modelos Simulink, exportar los
resultados de la simulación a MATLAB para así poder llevar a cabo más
análisis.
Los sistemas dinámicos pueden ser simulados utilizando Simulink. En la
mayoría de casos, estos implican procesos lineales o no lineales dependientes
del tiempo, que pueden ser descritos usando ecuaciones diferenciales
(tiempo continuo) o ecuaciones en diferencia (tiempo discreto). Otra forma
común de describir los sistemas dinámicos es mediante el diagrama de
bloque.
Los diagramas de bloques es un intento de entender el comportamiento del
sistema por medio de una representación gráfica, que esencialmente consiste
20
de representaciones de los componentes individuales del sistema (bloques)
junto con un flujo de señales entre estos componentes. Simulink se basa en
esta forma de representación, para ello usa una interfaz gráfica para convertir
un diagrama de bloques de esta clase (casi) directamente en un modelo
Simulink y luego simular el funcionamiento del sistema.
Las características principales de Simulink son:
• Editor gráfico para crear y gestionar diagramas de bloques jerárquicos.
• Bibliotecas de bloques predefinidos para modelar sistemas continuos y
discretos.
• Motor de simulación con solvers de ecuaciones diferenciales ordinarias
de paso fijo y variable.
• Scopes y data displays para ver los resultados de la simulación.
• Herramientas de gestión de proyectos y datos para administrar los
archivos y los datos del modelo.
• Herramientas de análisis de modelos para perfeccionar la arquitectura
del modelo y aumentar la velocidad de simulación.
• Bloque MATLAB Function para importar algoritmos de MATLAB en
modelos.
• Legacy Code Tool para importar código C y C++ a los modelos.
Principios de operación y gestión de Simulink
El programa se inicia desde la ventana de comandos de MATLAB. Existen
varias formas:
21
1. Con el comando >>simulink. Inmediatamente abrirá una ventana
emergente, donde se puede seleccionar la opción Blank Model. Ya
dentro del modelo nuevo se recomienda abrir Simulink Library Browser.
Fig. 1. Ventana Library Browser.
Simulink Library Browser (SLB) visualiza las bibliotecas de bloques
disponibles (según la instalación) organizadas en grupos funcionales,
los cuales a su vez pueden contener subgrupos.
Por defecto SLB se posiciona en la biblioteca de Simulink, la cual
contiene:
• La biblioteca Sources, conteniendo bloques para la producción de
señales (funciones).
22
Fig. 2. Bloques de Sources.
• La biblioteca Continuous, conteniendo bloques básicos para el
tratamiento de Señales en tiempo continúo.
23
Fig. 3. Bloques de Continuous.
• Y muchas más.
2. Seleccionar el icono de Simulink.
Fig. 4. Icono de Simulink.
3. Abrir un archivo .mdl desde la computadora o desde la ventana de
comandos.
24
Construcción de un diagrama de bloques en Simulink
EJEMPLO Crear un modelo con los bloques que permitan graficar una señal
senoidal y obtenga su integral.
Para cumplir con esto, se siguen los siguientes pasos:
1. Iniciar Simulink.
2. Crear un Nuevo Modelo (Blank Model).
3. Guardar el nuevo modelo con el nombre de sim_test1.mdl.
4. Arrastrar con el mouse el bloque Simulink|Sources|Sine Wave fuera del
SLB hacia la ventana de trabajo. Si no se desea usar el nombre de Sine
Wave, entonces puede hacer clic con el mouse en la línea de texto Sine
Wave y editar el nombre con el teclado. Renombrar.
Fig. 5. Bloque de Sine Wave.
5. Añadir bloque Integrator que permite integrar la señal de salida del
bloque FUENTE. Para esto, abrir biblioteca de funciones Continuous.
Arrastrar el bloque de Integrator a partir de esta biblioteca al espacio
de trabajo. Conectar la salida del bloque FUENTE con la entrada del
bloque Integrator.
25
Fig. 6. Bloque fuente conectado al integrador.
6. Extender el sistema de prueba de tal manera que la señal senoidal y su
integral puedan ser vistas en una única ventana.
Para hacer esto:
a) Elegir el bloque Simulink|Signal Routing|Mux y añadir al área de
trabajo.
b) Elegir el bloque Simulink|Sinks|Scope y añadir al área de trabajo.
c) Realizar las siguientes interconexiones:
Fig. 7. Diagrama básico en Simulink.
¿Qué señales se obtienen a la salida? Anexe al reporte de esta práctica y
explique el por qué se obtiene esto.
26
Procedimiento
1. Se siguieron los pasos indicados para generar el siguiente diagrama de bloques.
Fig. 19. Diagrama de bloques.
Resultados
La señal de entrada es un seno y la integral de un sin u es igual a -cos u + c, el coseno
tiene su valor pico en 0, pero la señal está invertida debido al signo negativo, y tienen un
offset de 1 que corresponde al valor de c.
27
Fig. 20. Scope.
Parametrización de los bloques Simulink y de la simulación
Para asignar valores a los parámetros de cada bloque, se debe abrir la lista de
parámetros del bloque haciendo doble clic en el símbolo correspondiente.
EJEMPLO Continuando con el ejemplo anterior, realizar los siguientes pasos:
1. Abrir la lista de parámetros del bloque FUENTE (Sine Wave) e identificar
sus valores por defecto.
28
Fig. 8. Ventana de parámetros.
29
Modificar solo los valores de los siguientes parámetros:
• Sine type: Time based.
• Amplitude: 2
• Frequency (rad/sec): 2*pi
• Phase (rad): pi/4
2. Abrir la lista de parámetros del bloque Scope e identificar sus valores
por defecto.
Para acceder a los parámetros del bloque primero debe abrir dicho
bloque (haciendo doble clic) y después dar clic en el botón
Configuration Properties.
Fig. 9. Icono de configuración.
Existen 4 pestañas: Main, Time, Display y Logging. Dentro de estas se
puede especificar el número de entradas que tendrá el bloque (1 por
defecto), el rango de tiempo, la cantidad de puntos que se han de
graficar en el bloque (5000 por defecto), etc.
30
Fig. 10. Ventana de configuración.
En la pestaña de Logging hacer las siguientes modificaciones:
• Limit data points to last: Desactivado.
Log data to workspace:
Activado. Variable name: sim_test1_signals
• Save format: Array
Hacer clic en aplicar y cerrar ventana. ¿Qué señales se obtienen a la salida?
Anexe al reporte de esta práctica y explique el por qué se obtiene esto.
Procedimiento
1. Se modificaron los parámetros como se indicó en las instrucciones.
31
Resultados
Se aumentó el valor de la frecuencia por lo que cada ciclo es más estrecho. Se aumentó la
amplitud a dos como se observa en la gráfica. Se desfasó en pi/4 la señal de entrada y esto
se aprecia en la gráfica en la señal de entrada, pues ahora la señal no tiene un valor de cero
en el instante cero.
Por otro lado, los cambios realizados en “scope “ generaron un cambio en el formato de las
señales dándoles un aspecto menos detallado.
Fig. 21.
Parametrización de simulación (parámetros generales)
Nos permitirá establecer valores para la duración de la simulación.
Para ello ir a Modeling|Model Settings|Configuration Parameters.
32
EJEMPLO Establecer los siguientes parámetros de simulación al sistema
creado anteriormente.
• Tiempo de simulación:
✔ Inicio de simulación: 0
✔ Finalización de simulación: 20
• Opciones de solver:
✔ Tipo (Type): Paso Fijo (Fixed-step)
✔ Solver
(Método
de
ode3(BogackiShampine)
✔ Tamaño del paso fijo: 0.01
33
integración numérica):
Fig. 11. Configuración de parámetros de simulación.
Iniciar la simulación y visualizar las señales de salida resultantes de la
simulación. ¿Qué señales se obtienen a la salida? Anexe al reporte de esta
práctica y explique el por qué se obtiene esto.
34
Procedimiento:
1. Se modificaron los valores de la duración de la simulación como se indicó en las
instrucciones.
Fig. 22.
35
Resultados
Fig. 23. Scope.
Como se observa en el gráfico ahora la simulación llega al 20, esto debido a los cambios
que realizamos.
Conclusión.
Esta práctica nos sirvió para reforzar y recordar herramientas útiles como Matlab y simulink
que son ampliamente utilizados en el campo de la ingeniería y en específico en esta
materia para modelar y controlar, y así optimizar el trabajo a la hora de realizar procesos y
pruebas con diferentes sistemas. Tener presente las diferentes herramientas que Matlab y
Simulink ofrecen nos ayudará a tener un mejor desempeño en el estudio de la materia.
Enviar el reporte de la práctica de laboratorio al apartado Reporte práctica 0 y
0.5 en Blackboard.
36
DURACIÓN: 1 SESIÓN DE LABORATORIO
37
Descargar