Mathematics">
Practica 1
Practica 1
Practica 1
PRÁCTICA 1
INTRODUCCIÓN A
MATLAB Y
SIMULINK
INGENIERÍA EN AERONAÚTICA
NOMBRE: PEREZ GERMAN NAIM ADAN
MATERIA: SISTEMAS DE CONTROL EN AERONAVES
DOCENTE: ING. RAYMUNDO HERNANDEZ BARCENAS
GRUPO: 8AV2
OBJETIVO
Que el alumno conozca distintos comandos de Matlab para declarar variables y graficar, así
mismo que conozca las bondades de la librería Simulink para realizar simulaciones que le sean
de utilidad para la materia y su proyecto final.
MARCO TEÓRICO
NÚMEROS COMPLEJOS
Un número complejo es un par ordenado (a, b) de números reales. Es común representar el
complejo (a, b) en la forma a + bi, donde i es un símbolo llamado unidad imaginaria que cumple
con la condición: i 2=−1 o i=√ −1. A este tipo de representación se le llama forma binómica. El
conjunto de todos los números complejos se denota C cuyos elementos son combinaciones de
la forma z = a + bi donde a y b son números reales.
Entonces, todo número complejo consta de dos partes, o componentes, llamadas: parte real y
parte imaginaria, dadas por a y b respectivamente.
Así pues, se tiene que ℜ ( z )=a e ℑ ( z )=b.
Cuando no hay parte imaginaria se dice que el complejo es real. Entonces los números reales
forman parte del conjunto de los números complejos.
Cuando un número complejo no tiene parte real se dice que es un imaginario puro.
SUMA
La suma de números complejos está basada en la suma de números reales. Cada complejo
tiene una parte real y una parte imaginaria. Para sumar complejos hay que sumar las partes
reales por un lado y las partes imaginarias por otro lado, como números reales. Al hacer esto
nos encontramos de nuevo con otro número complejo.
Más precisamente, sean z 1=a 1+b 1i y z 2=a 2+b 2 i dos números complejos:
RESTA
La resta o diferencia de dos números complejos se realiza restando cada parte por separado.
Más precisamente, sean z=a+ bi y w=c +di dos números complejos:
Es decir, para restar dos números complejos se restan sus componentes correspondientes.
MULTIPLICACIÓN
Sean Z = a + bi y W = c + di definimos su producto, mediante la fórmula:
Z · Z−1=Z−1 · Z=1
6. Propiedad distributiva. Si Z, W y U son números complejos se tienen las relaciones:
Z ·(W +U )=Z ·W + Z ·U
( Z+W )· U=Z · U +W ·U .
CONJUGADO
Si Z = a + bi es un número complejo, entonces el conjugado de Z, denotado por Ź , es otro
número complejo definido por: Ź=a−bi
MÓDULO
Si Z = a + bi es un número complejo, el módulo de Z es el número real: ¿ Z∨¿ √ a2+ b2.
Algunas propiedades muy importantes del módulo se dan a continuación. Suponiendo que Z y
W son números complejos:
1. ¿ Z∨≥ 0
2. ¿ Z∨¿ 0 sí y sólo si Z=0
3. ¿ Z+W ∨≤∨Z∨+¿ W ∨¿
4. ¿ Z · W ∨¿∨Z ∨·∨W ∨¿
5. |Z−1|=¿ Z∨¿−1 ¿
DIVISIÓN
Si Z y W son dos números complejos, y W ≠ 0, la división de Z entre W se haría de la forma
siguiente:
Z Z Ẃ Z ∙ Ẃ
= ∙ =
W W Ẃ |W |2
Entonces la regla para dividir números complejos es que para hacer la división de dos números
complejos Z y W, primero se multiplica Z por el conjugado de W y ´este resultado se divide
entre el módulo al cuadrado de W, el cual es un número real.
Si Z = a + bi y W = c + di, se tiene:
Z (ac +bd )+(bc−ad)i
=
W a2 +b2
REPRESENTACIÓN GEOMÉTRICA
Así como los números reales se representan geométricamente por medio de una recta, es
posible dar una representación geométrica de los números complejos usando un sistema de
coordenadas cartesianas. A cada número complejo Z = a+bi, se le asocia el punto del plano,
P(a,b). De esta forma, se obtiene una representación geométrica o Diagrama de Argand de Z.
En esta representación, la componente real de Z se copia sobre el eje X, que será llamado eje
real y la componente imaginaria sobre el eje Y, que será llamado eje imaginario. El conjunto de
todos estos puntos será llamado Plano Complejo.
MATLAB
MATLAB es un entorno de computación y desarrollo de aplicaciones totalmente integrado
orientado para llevar a cabo proyectos en donde se encuentren implicados elevados cálculos
matemáticos y la visualización gráfica de los mismos.
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.
MATLAB dispone también en la actualidad de un amplio abanico de programas de apoyo
especializados, denominados Toolboxes, que extienden significativamente el número de
funciones incorporadas en el programa principal. Estos Toolboxes cubren en la actualidad
prácticamente casi todas las áreas principales en el mundo de la ingeniería y la simulación,
destacando entre ellos el 'toolbox' de proceso de imágenes, señal, control robusto, estadística,
análisis financiero, etc.
COMANDOS DE MATLAB
A continuación, se nombrarán y explicarán los comandos de Matlab utilizados durante el
desarrollo de esta práctica.
Sqrt (x)
Devuelve la raíz cuadrada de cada elemento de la matriz X. Para los elementos de X que son
negativos o complejos, sqrt (X) produce resultados con números complejos, lo que puede llevar
a resultados inesperados si se utilizan de forma involuntaria.
Si desea que los números negativos y complejos devuelvan mensajes de error en lugar de
devolver resultados complejos, utilice en su lugar “realsqrt”.
Figure
En general, este comando es utilizado para crear una nueva ventana de figura mediante valores
de propiedades predeterminados.
Dependiendo de la sintaxis, el comando figure puede actuar de distintas maneras, en este caso
la sintaxis fue “figure(n)” la cual encuentra una figura en la que la propiedad Number es igual a
n y la convierte en la figura actual. Si no existe ninguna figura con ese valor de propiedad, el
programa creará una nueva figura y establecerá su propiedad Number como n.
Plot
Plot (x,y) crea un gráfico de líneas 2D de los datos de Y frente a los valores correspondientes de
X.
- Si X e Y son ambos vectores, deben tener la misma longitud. La función plot traza Y
frente a X.
- Si X e Y son ambas matrices, deben tener el mismo tamaño. La función plot traza las
columnas de Y en comparación con las columnas de X.
- Si X o Y es un vector y el otro es una matriz, la matriz debe tener dimensiones de forma
que una de sus dimensiones sea igual a la longitud del vector. Si el número de filas de la
matriz equivale a la longitud del vector, la función plot traza cada columna de matriz en
comparación con el vector. Si el número de columnas matriciales equivale a la longitud
del vector, la función trazará cada fila de matriz en comparación con el vector. Si la
matriz es cuadrada, entonces la función traza cada columna frente al vector.
- Si X o Y es un escalar y el otro es un escalar o un vector, entonces la función plot traza
puntos discretos. Sin embargo, para ver los puntos debe especificar un símbolo de
marcador, por ejemplo, plot(X,Y,'o').
Plot (Y) crea un gráfico de líneas 2D de los datos de Y en comparación con el índice de cada
valor.
Title
Title(txt) agrega el título especificado a los ejes o el gráfico devueltos por el comando gca. Al
volver a emitir el comando title, el nuevo título reemplazará el título anterior.
Xlabel
Xlabel (txt) etiqueta o nombra el eje x de los ejes actuales o el gráfico devuelto por el comando
gca. Al reemitir el comando xlabel, se sustituye la etiqueta anterior por la nueva etiqueta.
Ylabel
Ylabel (txt) etiqueta o nombra el eje y de los ejes actuales o el gráfico devuelto por el comando
gca. Al reemitir el comando ylabel, se sustituye la etiqueta anterior por la nueva etiqueta.
Grid
Muestra u oculta las líneas de cuadrícula de los ejes en la figuras o gráficas actuales.
Pi
El comando pi devuelve el número de punto flotante más cercano al valor de π (3.1415...).
Peaks
Es una función de dos variables, obtenida trasladando y escalando distribuciones Gaussianas, lo
que es útil para demostrar mesh, surf, contour.
En general esta función devuelve una matriz simétrica donde el tamaño de esta depende de la
síntesis del comando. Si no se especifica el tamaño, la función entregará una matriz de 49 x 49.
Contour
Este comando se utiliza para general isolíneas de contorno de una matriz Z. En la síntesis
contour(Z,n) utilizada en la práctica, el programa dibuja un trazado de contorno de la matriz Z
con n niveles de contorno. n debe de ser un escalar.
Mesh
Mesh dibuja una malla de alambres para una figura dada. En la síntesis mesh(Z), se dibuja una
malla con X = 1:n y Y = 1:m, donde [m,n] = size(Z). La altura, Z, es una función de un solo valor
definida en una cuadrícula rectangular. El color es proporcional a la altura de la superficie. Los
valores de Z pueden ser valores numéricos, de fecha, duración o categóricos.
Surf
Crea un gráfico de superficie tridimensional. Usando la declaración surf(Z) se creará una
superficie que utiliza los índices de columna y fila de los elementos de Z como las coordenadas
X y Y, respectivamente.
View
Determina el punto de observación de una figura mediante la orientación de los ejes para su
visualización. Se puede especificar el punto de vista en términos de azimut y elevación, o por un
punto en el espacio tridimensional. En la síntesis view(az,el) se establece el ángulo de visión
para un gráfico tridimensional. El acimut, az, es la rotación horizontal alrededor del eje z,
medida en grados desde el eje y negativo. el, es la elevación vertical del punto de vista en
grados.
SIMULINK
SIMULINK es una toolbox especial de MATLAB que sirve para simular el comportamiento de los
sistemas dinámicos. Puede simular sistemas lineales y no lineales, modelos en tiempo continuo
y tiempo discreto y sistemas híbridos de todos los anteriores. Es un entorno gráfico en el cual el
modelo a simular se construye seleccionando y arrastrando los diferentes bloques que lo
constituyen.
Simulink dispone de una serie de utilidades que facilitan la visualización, análisis y guardado de
los resultados de simulación por lo que se emplea profusamente en ingeniería de control.
BLOQUES DE SIMULINK
Esta toolbox tiene una gran variedad de bloques que son de utilidad para realizar muchos tipos
de sistemas. Enseguida se describirán los bloques utilizados en esta práctica
Step (Escalón)
El bloque step proporciona un paso entre dos niveles definibles en un momento específico. Si el
tiempo de simulación es menor que el valor del parámetro Step time, la salida del bloque es el
valor del parámetro Initial value. Para un tiempo de simulación mayor o igual al Step time, la
salida es el valor del parámetro Final value.
Sum
El bloque Sum realiza sumas o restas en sus entradas las cuales pueden ser escalares,
vectoriales o matriciales. También puede colapsar los elementos de una señal y realizar una
suma.
El bloque primero convierte el tipo de datos de entrada a su tipo de datos de acumulador,
luego realiza las operaciones especificadas. Después, convierte el resultado a su tipo de datos
de salida utilizando los modos de redondeo y desbordamiento especificados.
Gain
Este bloque multiplica la entrada por un valor constante especificado por el usuario. La entrada
y la ganancia pueden ser un escalar, un vector o una matriz dependiendo del parámetro
Multiplication.
La ganancia se convierte de tipo doble al tipo de datos especificado. La entrada y la ganancia se
multiplican, y el resultado se convierte al tipo de datos de salida utilizando los modos de
redondeo y desbordamiento especificados.
Transfer Fcn
El bloque Transfer Fcn modela un sistema lineal mediante una función de transferencia de la
variable s en el dominio de Laplace. El bloque puede modelar sistemas de una entrada y una
salida, y de una entrada y múltiples salidas.
Scope
Bloque que muestra en el dominio del tiempo, las señales generadas durante la simulación.
LTI System
El bloque del Sistema LTI importa objetos de modelo de sistema lineal en el entorno Simulink.
Es posible importar cualquier tipo de modelo apropiado de sistema dinámico lineal invariante
en el tiempo. Si el sistema importado es un modelo de espacio de estado, se puede especificar
valores de estado iniciales en el parámetro Initial states.
Mux
El bloque Mux combina sus entradas en una salida vectorial única. Una entrada puede ser una
señal escalar o vectorial. Todas las entradas deben ser del mismo tipo de datos y tipo numérico.
DESARROLLO DE LA PRÁCTICA
MATLAB
En primer lugar, se realizó mediante Matlab un programa para calcular las raíces de una
ecuación de segundo grado mediante la fórmula general.
Se observa que las raíces de este cálculo son números complejos obtenidos por el comando
sqrt. Es importante considerar esto para evitar cometer errores en programas más complejos.
En este programa se graficó la función indicada con la variable q respecto a valores de r que van
desde -10 a 10 con incrementos de 0.1. Se estableció la figura con el número 2 y se indicó que
se graficara en la figura la función establecida por las variables de r y q; se etiquetó el título de
la gráfica y sus ejes. Además mediante el comando grid se dibujaron las marcas de cuadrícula
de los ejes en la figura.
En este programa se graficaron los puntos establecidos por la variable c que van desde 0 a 2 π
con incrementos de π/100. Se estableció la figura con el número 3 y se indicó que se graficara
en la figura los resultados obtenidos por las operaciones dentro del comando plot, se etiquetó
el título de la gráfica y su eje X. Además mediante el comando grid se dibujaron las marcas de
cuadrícula de los ejes en la figura.
En este programa se graficaron los puntos establecidos por la variable t que van desde 0 a 15 π
con incrementos de π/100. Se estableció la figura con el número 4 y se indicó que se graficara
en la figura los resultados obtenidos por las funciones dentro del comando plot, se etiquetó el
título de la gráfica y su eje X. Además mediante el comando grid se dibujaron las marcas de
cuadrícula de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 5 y
se indicó que se graficara la figura dada por la matriz z. Después con el comando contour se
indicó que en la figura se graficaría el contorno de la matriz Z con 10 niveles de contorno donde
su color está definido por su profundidad. Se etiquetó el título de la gráfica y su eje X, y se
dibujaron las marcas de cuadrícula de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 6 y
se indicó que se graficara la figura dada por la matriz z. Se etiquetó el título de la gráfica y su eje
X, y se dibujaron las marcas de cuadrícula de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 7 y
se indicó que se graficara la figura dada por la matriz z. Mediante la herramienta mesh se
graficó una malla dentro de la figura donde cada línea en x y y está definida por el tamaño de
las columnas y filas respectivamente de la matriz Z. Se etiquetó el título de la gráfica y su eje X,
y se dibujaron las marcas de cuadrícula de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 8 y
se indicó que se graficara la figura dada por la matriz z. Con el comando surf se creó una
superficie tridimensional donde cada coordenad en x y y está definida por el tamaño de las
columnas y filas respectivamente de la matriz Z. Se etiquetó el título de la gráfica y su eje X, y se
dibujaron las marcas de cuadrícula de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 9 y
se indicó que se graficara la figura dada por la matriz z. Con el comando surf se creó una
superficie tridimensional donde cada coordenad en x y y está definida por el tamaño de las
columnas y filas respectivamente de la matriz Z. Con view, se indicó que la figura sería
visualizada con una rotación de 10 grados del ángulo acimutal y 90 grados de ángulo de
elevación. Se etiquetó el título de la gráfica y su eje X, y se dibujaron las marcas de cuadrícula
de los ejes en la figura.
En este programa se graficó la función indicada con la variable z, la cual mediante el comando
peaks(10), fue establecida como una matriz de 10x10. Se estableció la figura con el número 10 y
se indicó que se graficara la figura dada por la matriz z. Con el comando surf se creó una
superficie tridimensional donde cada coordenad en x y y está definida por el tamaño de las
columnas y filas respectivamente de la matriz Z. Con view, se indicó que la figura sería
visualizada con una rotación de 45 grados del ángulo acimutal y 45 grados de ángulo de
elevación. Se etiquetó el título de la gráfica y su eje X, y se dibujaron las marcas de cuadrícula
de los ejes en la figura.
SIMULINK
Como segunda parte de la práctica, se hizo uso de la toolbox Simulink de Matlab para simular
sistemas de control mediante diagramas de bloques.
En todos los diagramas se utilizó un bloque step conectado a un sumador por una entrada
positiva. Seguidamente el sumador se conectó a un bloque de ganancia con valor establecido
de 1 para después ser conectado a un bloque de función de transferencia. La salida de este
bloque debía conectarse con 2 líneas: la primera, la retroalimentación, se conectaba al bloque
sumador por una entrada negativa la cual se ajustaba dando doble clic en el bloque sumador,
esto con el objetivo de que la señal de salida se vaya mejorando gradualmente hasta alcanzar
un valor estable dependiendo de la característica de la función de transferencia; y la segunda se
conectaba a un bloque de osciloscopio para observar el comportamiento del sistema de
control.
1
Como primer ejemplo tenemos el siguiente modelo donde la función de transferencia es la
s +1
cual se ajusta dando doble clic en el bloque de la F.T. Esta se declara como [1] en el numerador
y [1 1] en el denominador.
Se observa que la F.T. dada genera un comportamiento donde, después de alcanzar su valor
establecido se mantiene en él hasta el infinito demostrando que un posible sistema de control
con estas características sería estable.
1
En el siguiente modelo la función de transferencia es 2 . Esta se declara como [1] en el
s +1
numerador y [1 0 1] en el denominador.
8
Para el próximo modelo la función de transferencia es 2 . Esta se declara como [8] en el
s + 4 s+ 9
numerador y [1 4 9] en el denominador.
Este modelo presenta buenas características ya que comienza oscilando pero rápidamente se
establece en un valor mostrando estabilidad.
s+1
En el último modelo la función de transferencia es 3 2 . Esta se declara como [1 1] en
s + s + 11s+ 5
el numerador y [1 1 11 5] en el denominador.
Como último punto la práctica, se cambiaron los bloques de función de transferencia por
bloques de sistema LTI, donde los parámetros no varían con el tiempo.
En estos bloques se declararon las mismas funciones de transferencia anteriores, con una
síntesis diferente:
Una vez sustituidos todos los bloques y corriendo el programa podremos observar que las
señales de salida de cada sistema son exactamente iguales a las obtenidas anteriormente con
los bloques de F.T.
CONCLUSIONES
Considero que esta práctica fue de gran importancia ya que, dado que Matlab es una
herramienta muy útil para la ingeniería y a pesar de haber hecho uso de este software en
semestres anteriores, no comprendía del todo cómo funcionaba cada comando, y por esto
tenía muchas dificultades al desarrollar programas de mayor complejidad.
En esta práctica, conocí algunos de los comandos para graficar en Matlab y amplíe mi
conocimiento acerca de los comandos que antes utilizaba.
Además, aprendí acerca del uso de Simulink para poder simular de una manera muy práctica el
uso y diseño de sistemas de control gracias a la amigable interfaz de esta herramienta.
BIBLIOGRAFÍA
1. http://webdelprofesor.ula.ve/ciencias/lico/Libros/complejos.pdf
2. https://www.monografias.com/trabajos5/matlab/matlab.shtml
3. https://www.mathworks.com/help/matlab/
4. https://ocw.upc.edu/sites/all/modules/ocw/estadistiques/download.php?
file=51427/2011/1/54513/tema_5_simulink-5156.pdf
5. https://www.mathworks.com/help/simulink