You are on page 1of 258

MATLAB

Introducción
¿Qué es Matlab?
• Un lenguaje de programación.

• Un lenguaje de programación interpretado.

• Un lenguaje de programación interactivo.

Usar Matlab == Programar en Matlab


¿Qué no es Matlab?

• Una hoja de cálculo.

• Un programa de cálculo simbólico. Por ejemplo:

Matlab puede hacer esto:

Pero, no puede hacer esto:


¿Qué significa interpretado?

• Un intérprete es un programa.

• Es como un actor que hace todo lo que le dice un


guión.

• Muy parecido a una calculadora.

• Es interactivo: El usuario ingresa comandos y


obtiene respuesta por parte de Matlab.
Por lo tanto…. Matlab es:
• Un entorno abierto y a su vez un
lenguaje de programación, el cual puede
ser visualizado como una calculadora
totalmente equipada.

• Ofrece muchas más características y es


mucho más versátil que una
calculadora.
¿Qué son los toolboxes?
• Son paquetes específicos adicionales que han sido
desarrollados para su uso en Matlab.

• Estos paquetes específicos adicionales están


constituidos por un conjunto de funciones, que
pueden ser llamadas desde el programa y mediante
los cuales se pueden realizar multitud de
operaciones.

• Podemos crear nuestras propias funciones, creando


programas especiales (conocidos como archivos-M)
en código Matlab.
¿Cómo puedo saber que toolboxes
tiene Matlab?
• Con el comando Help o directamente sobre
el menú Help - > Product Help de la barra
de Menús.
Toolbox: Control System Toolbox
Interfaz gráfica

Ventana donde se
muestran las
variables utilizadas
en el programa y
sus valores .

Sección para Ventana de Historial de


mostrar los comandos, donde el comandos, donde
archivos usuario puede se muestran todos
guardados en la escribir las los comandos
carpeta de instrucciones utilizados en
trabajo correspondientes. Matlab.
predeterminada.
¿Cómo inicio?
• Para iniciar en Matlab es necesario identificar
la ventana de comandos.

• La ventana de comandos contiene el símbolo


>> el cual le indica al usuario que puede
escribir ahí su comando.

• Si escribimos, nos daremos cuenta que lo hace


enseguida del símbolo antes mencionado.
Variables, números y operadores.
CONCEPTOS
• Importante diferenciar entres estos
conceptos:

a) Tipo: Cualquier elemento en un código tiene


un tipo: caracteres, números, matrices,
vectores, gráficas, etc.
b) Variables: ¿?
c) Argumento: Variable de entrada o salida de
una unidad de programa.
¿Qué es una variable?
• Es un espacio en memoria que se asigna para
guardar cierto valor.

• Se utilizan cuando se desea dar nombres simbólicos


a los números que se han de manejar en el
programa.

• A diferencia de las variables en otros lenguajes de


programación, en Matlab no se declara el tipo de
variable que se a de usar .
Sintaxis
nombre_de_la_variable = valor_que_se_asigna

El signo = es conocido como de asignación.

• Los nombres de las variables son sumamente


importantes, es decir, es primordial dar un nombre
relacionado con lo que contiene para evitar problemas
futuros sobre su uso.
• También es importante saber que Matlab si diferencia
entre mayúsculas y minúsculas, es decir, F es distinto a f
como variables.
Variables
• Cuando se crea en la ventana de comandos
una variable, lo que hace el programa es:

a) Crea la variable tomando cierta cantidad de


memoria para almacenar su valor .
b) Da un valor inicial a la variable.
Variables
• ¿Es posible crear variables sin inicializar?
• No, siempre es necesario agregar un valor a la
variable, de lo contrario marca el siguiente error:

• Las variables pueden ser usadas en otras


expresiones como si fueran números.
Ejemplos de variables
NOTAS Importantes:
• No por el hecho de cambiar el valor de una
variable, quiere decir que las variables que
dependen de este valor también deban cambiar
su valor.

x = 23.5 Ahora: x = -3
y = x + 10 ¿Cuánto vale y?
¿Cuánto vale y?
Operaciones elementales
FUNCIONES
Funciones en Matlab
• Dentro de Matlab es posible utilizar funciones que se
encuentran predeterminadas en cada uno de los
toolboxes.

• Estas funciones realizan cierto proceso dependiendo de


la información que utilizan con parámetros.

• Se diferencian con respecto a los operadores, ya que


una función es una palabra en inglés o su contracción y
no símbolos como son los operadores.
Funciones
• Las funciones además de un nombre deben
contener parámetros.

• ¿Todas las funciones solo usan un parámetro?

• Matlab también permite crear funciones


propias para un objetivo en específico, esto es
entonces una característica importante de las
funciones en Matlab.
Funciones elementales de Matlab
Funciones elementales de Matlab
Funciones elementales Matlab
Funciones elementales Matlab
¿Cómo se usan estas funciones?
• La forma de uso de las funciones anteriores es
simple e intuitiva.

• Dependiendo de la definición de la función es


el resultado que se obtendrá.

• Siempre una función consta de argumentos,


es decir, elementos que necesita para poder
realizar su función.
Analicemos una de las funciones
resultado_seno = sin (1)

1. Esta función obtiene el seno de 1 radián.


2. Como característica de las funciones
trigonométricas, estas solo permiten valores en
radianes y no en grados.
3. Siempre dentro del paréntesis se asignan los
valores que requiere la función para obtener un
resultado, en este caso solo requiere el número
de radianes para obtener su resultado.
Función seno
• ¿Cómo puedes obtener el valor del seno de
30° usando Matlab?

Es diferente el
resultado a lo que
debemos obtener

sin (30°) = ½
Función seno
• Debemos recordar que para que se obtenga
un resultado válido, el valor del ángulo debe
estar en radianes, por lo tanto…..

El resultado es correcto

• sin(π / 6) = 1/2
Funciones propias
• Para aumentar la funcionalidad de Matlab, es
posible también crear nuestras propias
aplicaciones definiendo funciones.

• Estas funciones deben ser guardadas en archivos


M (M-files).

• Los M-files pueden ser scripts, que ejecutan una


serie de órdenes o instrucciones de MATLAB.
Funciones propias
• También los M-files pueden ser funciones que
además aceptan argumentos y producen
resultados.

• Se puede crear un M-file utilizando un editor de


textos que contiene el propio Matlab.

• Para abrir el editor de textos de Matlab se


necesario escribir en la ventana de comandos la
palabra reservada edit.
Editor de textos
M-file
• Una vez que se escriban las instrucciones que
queremos realice esta función, es necesario
guardarlo con la extensión .m (M-file).
Scripts vs. Funciones
Scripts

• Trabajan sobre variables en el Workspace de la


línea de comandos o crean nuevas variables
que son añadidas a dicho Workspace.

• De este modo todas esas variables pueden ser


luego manipuladas desde la línea de
comandos.
Ejemplo de función
Elementos de la función ejemplo
• Definición de la función: Es una línea al inicio
del archivo que define el nombre de la
función, y el número y orden de los
parámetros de entrada y finalmente número y
orden de los parámetros de salida o
resultados:
Elementos de la función ejemplo
• ¿Qué pasa cuando existen más parámetros de
entrada y más parámetros de salida?

1) Parámetros de entrada: se colocan entre


paréntesis y se separan por comas.
2) Parámetros de salida: Lista separada por
comas y entre corchetes.
Elementos de la función ejemplo
• Las líneas comentadas en el ejemplo se
identifican por el uso del símbolo % . Estos
comentarios se muestran cuando se utiliza la
palabra reservada help junto con el nombre
de la función.
Elementos de la función ejemplo
• Cuerpo de la función: esta parte contiene las
sentencias que realizan los cálculos, asignan
valores a los parámetros de salida y asignan
variables y sus valores.
Nombre de la función

• El nombre de la función debe empezar por una


letra.

• Lo demás puede ser cualquier combinación de


letras , números o signos.

• El nombre del archivo .m (M-file) debe ser el


mismo nombre de la función seguido de la
extensión .m
Contenido del archivo.
• Si queremos ver el contenido del archivo .m,
sólo debemos usar el comando type.
Llamada a una función
• Para llamar a una función se hace desde la
línea de comandos, como si fuera cualquier
otra orden o función ya definida en Matlab.

• ¿Cómo llamar a la función pvt?


Notas importantes
• Los parámetros de entrada y salida no tienen por
qué tener el mismo nombre que en la definición
de la función.

• Es importante escribir todos los parámetros de


entrada entre paréntesis y todos los parámetros
de salida entre corchete, siempre en el orden
correspondiente.

• Las variables de una función son locales.


Ejemplo de Script
¿Qué hace el script anterior?
• Establece los valores de A y B, en este caso
son matrices.

• Realiza la multiplicación de las dos matrices.

• Obtiene el cuadrado de la inversa de C.

• Obtiene la transpuesta de C
¿Cómo se ejecuta el script?

• Para ejecutar un
script, solo es
necesario escribir
en la ventana de
comandos el
nombre del
archivo:
Estructuras de programación
en Matlab
¿Qué son las sentencias condicionales?

• Es una instrucción MATLAB que permite tomar decisiones


sobre si se ejecuta un grupo de comandos que cumplen
una condición o, por el contrario omitirlos.

• Siempre se evalúa una expresión condicional.

• Si la expresión es verdadera, el grupo de comandos se


ejecutará.

• Si la expresión es falsa, no se ejecutarán el grupo de


comandos en cuestión.
Sintaxis
• La forma básica de una sentencia condicional es la
siguiente:

if (expresion_condicional_con_operaciones_lógicas)

• Todas las sentencias if deben concluir con la palabra


end que es la sentencia de finalización.

• Las sentencias pueden ser utilizadas en scripts o


funciones.
Estructura if - end
Estructura if – else - end
Estructura if – elseif – else
• Esta estructura permite implementar condicionales
más complicados, en los que se “encadenan”
condiciones. En la forma siguiente:

a) Si se verifica la condición 1, ejecutar las instrucciones


del bloque 1.
b) Si no se verifica la condición 1, pero SI se verifica la
condición 2, ejecutar las instrucciones del bloque 2.
c) Si no, esto es, si no se ha verificado ninguna de las
condiciones anteriores, ejecutar las instrucciones del
bloque 3.
Estructura if – elseif – else - end
Estructura if –elseif – else
• La cláusula elseif se puede multiplicar,
obteniéndose así una cascada de
condiciones.

• En este tipo de estructura condicional,


la cláusula else junto con su bloque de
instrucciones pueden no estar
presente.

• Las estructuras pueden ser anidadas


siempre y cuando no haya
solapamiento.
Estructura de repetición indexada: FOR
• Este tipo de estructura permite implementar la repetición
de un cierto conjunto de instrucciones un número pre-
determinado de veces.

• Se utiliza una variable de control del bucle, llamada


también índice.

• Para cada valor del índice en dicho conjunto, se ejecuta una


vez el mismo conjunto de instrucciones.

• El índice debe ir recorriendo ciertos valores en un orden


determinado.
Estructura FOR
• La variable índice del bucle puede tener
cualquier nombre, normalmente se utiliza i, j,
k, m o n; aunque i y j no deberían usarse si se
está trabajando con números complejos.
Estructura FOR
• En el primer paso k toma el valor inicial f, y el
sistema ejecuta los comandos que se encuentran
entre las instrucciones for y end.

• Después vuelve a la instrucción for para realizar


el incremento o el decremento del valor de k
dependiendo de s.

• Se revisa si k llegó al valor de t, si no es así,


entonces vuelve a repetir las instrucciones dentro
de él.
Ejemplos estructura FOR
• ¿Cuántas iteraciones realizará el siguiente FOR y
qué valores tomará k?

k = 1:2:9

• ¿Cuántas iteraciones realizará el siguiente FOR y


qué valores tomará k?

k = 25:-5:10
Consideraciones ciclos FOR

• Si el valor de incremento se omite, el


incremento o decremento por defecto será de
1

k = 3:7

• Si f = t, el bucle se ejecuta una sola vez.


Estructura repetitiva condicional:
WHILE
• Permite implementar la repetición de un
mismo conjunto de instrucciones mientras
que se verifique una determinada condición.

• El número de veces que se repetirá el ciclo no


está definido a priori.
Funcionamiento while
• Al comienzo de cada iteración se evalúa la
expresión-lógica.

• Si el resultado es VERDADERO, se ejecuta el


conjunto de instrucciones y se vuelve a iterar.

• Si el resultado es FALSO, se detiene la


ejecución del ciclo y el programa se sigue
ejecutando.
Ejemplo: While
• Imprimir la suma de todos los números
iniciando por el valor que te de el usuario y
hasta 100.
Ruptura de ciclos de repetición: BREAK y CONTINUE

• Se utilizan para interrumpir la ejecución de un ciclo de


repetición en algún punto interno del bloque de
instrucciones que se repiten.

• La ruptura se tiene que dar verificándose o no alguna


condición.

• Dos formas para hacerlo:


1. Abandonando el ciclo de repetición definitivamente.
2. Abandonando la iteración en curso.
Diagramas de flujo
Estructura de elección entre varios casos:
SWITCH

• Este tipo de estructura permite decidir entre


varios caminos posibles, en función del valor que
tome una determinada instrucción.

• El número de casos depende del tipo de


problema que se esté enfrentando.

• También puede existir el caso OTHERWISE.


Sintaxis y diagrama de flujo
Consideraciones del switch

• El valor correspondiente puede ser o bien un


solo valor, o bien un conjunto de valores, en
cuyo caso se indican entre llaves.

• La cláusula OTHERWISE y su correspondiente


conjunto de instrucciones puede no estar
presente.
Funcionamiento SWITCH
• Inicialmente se evalúa la expresión.

• Si la expresión toma el valor o valores


especificados junto a la primera cláusula CASE, se
ejecuta el conjunto de instrucciones de este caso
y después se abandona la estructura SWITCH.

• Se repite el procedimiento anterior, de forma


ordenada, para cada una de las cláusulas CASE
que siguen.
Funcionamiento SWITCH
• Si la cláusula OTHERWISE está presente y la
expresión no ha tomado ninguno de los valores
antes especificados, se ejecuta el conjunto de
instrucciones correspondiente.

• NOTA: En esta estructura solo se evalúa uno de


los casos, si es que el valor de la expresión está
presente; si no entonces no se evalúa ninguno de
los casos a menos que existe el caso OTHERWISE.
EJEMPLO
• Dados dos números reales a y b, y el símbolo S
(carácter), de un operador aritmético (+, - , *,
/), imprimir el resultado de la operación a S b.

• ¿Cómo iniciamos?
• ¿Cuántos casos tienes?
• ¿Se puede hacer alguna validación?
Matrices y vectores en
Matlab
ARREGLOS
• Para crear un arreglo:

1. Se abren corchetes y se introducen los


valores deseados separados por espacios o
por comas.

variable = [lista de números separados por


espacios o comas]

2. Ejemplos:
Direccionamiento de arreglos
• Los elementos individuales de un arreglo se
acceden utilizando subíndices.

Ejemplo: x(1) Es el primer elemento en x


x(1:5) Nos da los elementos del 1° al 5°.
x(2:2:7) Obtenemos el 2°, 4° y 6° elemento
x([1 3 5]) ¿?
Uno de los elementos más importantes…

• Los dos puntos ( : ) es uno de los elementos más potentes de


Matlab.

• Permite generar una secuencia y en particular permite referenciar


varios elementos de una matriz.

• Ejemplo:

a) 1:0.1:10 Generará una secuencia comenzando en 1 hasta 10,


cada elemento de la secuencia estará separado del anterior en 0.1
b) 1:10 Si se obvia el valor central, la separación entre cada dos
elementos de la secuencia será de 1.
Construcción de arreglos (1)
• Existen algunas formas de crear vectores bajo
ciertas condiciones:

a) Mediante la notación de dos puntos:


(0:0.1:1)
Construcción de arreglos (2)
• Mediante la función
linspace:

t = linspace(n1,n2,n)

• Este comando genera


un vector desde n1 a
n2 de longitud n,
cuyos componentes
poseen valores
espaciados
linealmente.
Construcción de arreglos (3)
• Mediante la función
logspace:

w = logspace(n1,n2,n)

• Produce también un
vector de n elementos,
pero sus valores están
espaciados
logarítmicamente
desde 10n1 a 10n2.
Aplicaciones de un vector de forma
LOGARÍTMICA

• Fundamental la generación de escalas frecuenciales


para el análisis de sistemas mediante:

A. Diagramas de Bode: utilizado en el análisis de circuitos


en electrónica, siendo fundamental para el diseño y
análisis de filtros y amplificadores.
Diagramas de bode de magnitud y fase
Matrices
• Los elementos de una matriz se referencian
mediante A(i, j), donde i son las filas y j las
columnas.

• ¿Cómo se introduce una matriz en Matlab?

• A = [1 2 3 4; 5 6 7 8]
• A = [1, 2, 3, 4; 5, 6, 7, 8]
Matrices

• Para ingresar una matriz:

1. Se deben utilizar los corchetes.


2. Para separar cada fila se usa el punto y coma ( ; )
3. Para separar cada columna se usa el espacio ( )
o la coma ( , ).
4. Dentro de los corchetes se colocan los
elementos de la matriz.
Operaciones elementales con matrices

• Las operaciones matemáticas sencillas entre


escalares y arreglos siguen una interpretación
natural, es decir, se aplica la operación a todos los
elementos del arreglo.

• Cuando dos arreglos tienen el mismo tamaño, la


suma, resta, multiplicación y división se aplica
sobre la base de elemento – a – elemento.
Operador \ para el uso en matrices
• Este operador permite resolver, si es posible, un sistema Ax = b
mediante la orden A\B.

• Resuelve sistemas de ecuaciones lineales de n ecuaciones con


m incógnitas.

• Se introduce la matriz A del sistema y el vector columna B de


los términos independientes.

• Este operador obtiene los valores de las incógnitas X mediante


X = inv(A) * B
Ejemplo 1 del comando \ :
• Resuelve el siguiente sistema de ecuaciones
con ayuda de Matlab:

2A + B = 3
A + 2B = 1
Ejemplo 2 del comando \ :
• Resuelve el siguiente sistema de ecuaciones
con ayuda de Matlab:

¿Cómo puedo hacer para uno utilizar la transpuesta del vector b?


Gráficas en Matlab
Gráficos en Matlab

• Matlab es muy potente a la hora de generar gráficos.

• Gran variedad de comandos que ofrece y versatilidad


de dichos comandos.

• Permite realizar gráficos en 2D y en versiones más


actuales en 3D.

• Las representaciones de gráficos en Matlab se realizan


en ventanas gráficas.
Comandos genéricos para gráficos
• figure(n): Puede haber varias ventanas
gráficas abiertas, por lo que se usará el
comando figure, con el fin de abrir una nueva
ventana gráfica que será numerada de
acuerdo con el parámetro n.

• Si ya existe una ventana con ese número, se


convertirá en la ventana gráfica activa, donde
se realizará la próxima representación gráfica.
Comandos genéricos

• clf: Limpia la ventana gráfica activa.

• close(n): Para cerrar una ventana gráfica,


close all cierra todas las ventanas gráficas.
Comando plot()

• Es la función básica de representación gráfica de


datos en dos dimensiones.

• Se realiza la representación en la ventana gráfica


que esté activa.

• Si no hay ninguna activa, se crea una ventana


gráfica nueva.
Ejemplo 1:

Representa en el eje vertical los


valores contenidos en el vector
v, frente a los valores del índice
en el eje horizontal.
EJEMPLO 2:
Ejemplo 3:
Colores y formas

Por defecto, si no se escogen los marcadores, todas las gráficas


son con línea continua. Los colores dentro de una misma gráfica
se van rotando de una lista que comienza con azul, verde y rojo
en ese orden.
Hagamos un script para graficar

• Realizar un script que calcule las raíces de la


ecuación de segundo orden: ax2 + bx + c = 0 y
además que la represente de forma gráfica.

• Los valores de las raíces también las debe de


localizar en la gráfica, representándolas con un
asterisco (*).

• El script debe llamarse raices_graf.


SCRIPT
Prueba el script
¿Cuáles son las raíces de
este polinomio?
Otro script
• Realizar un script llamado graf_sencos.m que grafique en
una sola ventana las siguientes funciones:

y = cos(x)
y = sen(2x)

• Considera que el eje x debe ir de 0 a 2π , mientras que el


eje y de -1.5 a 1.5
• Debe colocar etiquetas a los ejes: “ejex” y “ejey”
• El título de la gráfica debe ser “Comparación seno y
coseno”.
• Debe tener cuadrícula la gráfica.
Script 2
Función plot3
• Realiza la representación gráfica de la siguiente
función:

• Para realizar la representación usando los ejes ‘x’, ‘y’ y


‘z’; se utiliza la función plot3.

• El intervalo para graficar la hélice circular deberá ser de


0 ≤ t ≤4π y deberá contener 1000 puntos.
Comandos
Aplicación de ingeniería: tiro parabólico

• Realizar una función que dado la velocidad y


el ángulo de salida del proyectil, se dibuje la
trayectoria del tiro parabólico.
Función tirop
Prueba tirop
SIMULINK
¿Qué es Simulink?
• Es la interface gráfica de simulación de Matlab.

• Permite el análisis y estudio de sistemas mediante la


simulación de los modelos construidos.

• La creación de los modelos es sencilla e intuitiva, ya


que se forman mediante la interconexión gráfica de
distintos bloques.

• En el editor: se insertan bloques, se conectan y se


parametrizan para su posterior simulación.
Simulink
• Se pueden crear y simular modelos mecánicos,
eléctricos, electrónicos, aeronáuticos, etc.

• Matlab tiene gran variedad de bloques


(blocksets) para ser utilizados en los modelos.

• Los bloques se encuentran agrupados en la


Simulink library browser, que se despliega al
ejecutar Simulink.
¿Cómo se abre la interfaz gráfica de
Simulink?
• En la barra de herramientas de Matlab puedes
encontrar el icono correspondiente a Simulink.

• Sobre la ventana de comandos también puedes


abrir la herramienta escribiendo Simulink.
Librería principal de Simulink
• Se encuentra bajo la carpeta llamada Simulink
y en ella aparecen los bloques agrupados en
las siguientes categorías:
Creación de un modelo
• Ejecutar Simulink.

• Desde el menú principal de Simulink se


selecciona:

File - New -Model

• Esto abrirá la ventana de edición donde se creará


el modelo para su posterior simulación.
Creación de un modelo (2)

• Los bloques del modelo a crear se han de


seleccionar primero en las librerías
correspondientes.

• Después se arrastran y se sueltan en la ventana


de edición.

• Finalmente se interconectan entre sí.


¿Qué significa parametrizar?
• Definir los valores o parámetros necesarios
para realizar la simulación del modelo creado.

• ¿Cómo lo hago? : Pulsando dos veces sobre


cada bloque para desplegar la ventana de
parámetros correspondiente a dicho bloque.

• Cada campo que aparece en ella se rellenará


con los datos requeridos para el modelo que
se va a simular.
Ahora la simulación….
• Una vez creado el modelo y parametrizados
todos sus bloques, se procede a la simulación.

• Para realizar la simulación, se debe seleccionar


del menú principal:

Simulation ---- Start

• Para detener la simulación seleccionar:

Simulation --- Stop


Tiempos de simulación…

• Los tiempos de simulación del modelo se


especifican en la ventana que se muestra a
continuación y se accede desde:

Simulation ----- Configuration Parameters


Primer ejemplo: Simulación de una ecuación diferencial

• Simular la siguiente ecuación diferencial y


encontrar su respuesta ante una entrada
escalón:
Solución

1. Seleccionar los bloques necesarios para


representar el modelo y llevarlos a la hoja
de trabajo. (busca, da clic sobre él objeto y
arrástralo a la ventana del modelo).

2. Arma el circuito: Una ED puede ser


representada como función del tiempo. Para
realizar el armado hay que tomar
consideraciones importantes al respecto.
¿Cómo armar el circuito?
1. Despejar la primera derivada de x (variable
dependiente) para expresarla en función de los
demás términos de la ecuación.

2. Establecer qué valores en la ED son constantes y


cuáles están en función del tiempo.

X(t) ------ en función del tiempo


¿Cómo armar el circuito?
• La parte derecha de la ecuación es lo primero
que se debe representar, utilizando los
siguientes elementos de Simulink:
¿Cómo armar el circuito?
• Se va armando el circuito de forma ordenada,
para obtener lo siguiente:
Parametrizamos cada bloque del
modelo
• Para “parametrizar” cada elemento del
modelo, hay que dar doble clic sobre él y
revisar cuál de los parámetros es necesario
cambiar o modificar según el ejercicio.
Cambiamos el tiempo de
simulación
• Para cambiar el tiempo de simulación es
necesario irse al menú de Simulink y seleccionar:

Simulation ------ Configuration Parameters

• Cambiamos en este caso el tiempo de parada por


8 seg, es decir, el tiempo de simulación será de 0
a 8 segundos.
• Se inicia la simulación con el botón de PLAY y se
espera que la máquina realice el cálculo.
¿Luego?
• Como usamos elementos que guardan los
valores en el Workspace de Matlab, es
necesario dirigirse a la ventana principal de
Matlab y revisar que se hayan generado los
datos deseados.
Graficamos
• Para graficar es importante saber:

1. ¿Qué datos van en el eje de las x?


2. ¿Qué datos van en el eje de las y?

• Graficamos con el comando: plot()

• ¿Existe algún elemento de Simulink que nos


permita graficar dentro de la misma ventana de
modelo?
Haciendo un cambio…
• Para observar la respuesta del sistema ante
una perturbación se coloca:
Se obtiene….
Ejemplos Simulink
Ejercicio a
• Muestra en un osciloscopio una señal seno.

• Osciloscopio: es un instrumento de medición


electrónico para la representación gráfica de señales
eléctricas que pueden variar en el tiempo.

• Utilizando Simulink de Matlab agregar los siguientes


objetos:

1. Sine Wave (Librería: Sources)


2. Scope (Librería: Sinks)
MODELO y PRUEBAS
Cambiando amplitud, frecuencia y fase
¿Cómo puedo mostrar dos señales
seno en un mismo osciloscopio?
• Utilizando los siguientes bloques:

1. Sine Wave (Librería: Sources)


2. MUX (Librería: Signal Routing)
3. Scope (Librería: Sinks)
¿Qué se cambió?
Modelo del seno y su integral
• Realiza el modelo para representar en una
gráfica al seno y la integral del seno: Los
bloques a utilizar son los siguientes:

1. Sine Wave (Librería: Sources)


2. Integrator (Librería: Continuos)
3. MUX (Librería: Signal Routing)
4. Scope (Librería: Sink)
Ejercicio en clase
Ejercicio final

• Prueba el sistema de lazo cerrado con un


controlador PID, cambiando la función de
transferencia y sin hacer cambios en el PID.

• Trata de interpretar la gráfica que obtienes en


el Scope.
Conclusiones
Conclusiones
• Como pueden apreciar ahora, Matlab es una
herramienta lo suficientemente potente para
realizar muchas de las cosas que irán
aprendiendo durante la carrera.

• Su uso en realidad no es tan complicado, lo


verdaderamente complicado es entender lo que
estás haciendo, analizarlo y obtener algunas
conclusiones con ayuda de la herramienta.
Conclusiones
• Matlab te puede ayudar desde resolver una
simple operación matemática hasta la simulación
de un sistema con un controlador, etc.

• Una de las partes más importantes de Matlab es


aprender a utilizar la ayuda (menú HELP), ya que
de aquí se puede obtener la información
necesaria para utilizar una función o un bloque.
No hay alguien en el planeta que sepa usar
TODAS las herramientas o funciones que tiene
Matlab.
Último ejercicio Simulink….
• Sumador completo con el uso de compuertas
lógicas:
Tabla de verdad del sumador
Prueba 1: A = 1, B = 1, CI = 1
Prueba 2: A = 0, B = 1, CI = 0
¿Qué es LabView?
• Es un lenguaje de programación de alto nivel, de
tipo gráfico y enfocado al uso en
instrumentación.

• Como lenguaje de programación:

1. Cuenta con todas las estructuras, lo que permite


ser usado para elaborar cualquier algoritmo.
2. Aplicación: análisis telemática, juegos, manejo
de textos, etc.
Programas en LabView
• A los programas en LabVIEW
se les llama Instrumentos
virtuales (Vis).

• Cada programa consiste de


dos ventanas:

1. Panel frontal: Contiene los


controles, los cuales nos
ayudarán para obtener las
entradas del sistema; y
además cuenta con Donde se ven los datos,
indicadores donde se
mostrarán las salidas del se manipulan y controlan.
sistema. Interfaz gráfica
Programas en LabView
2. Diagrama de bloque: En
esta ventana se aprecia la
estructura del programa, su
función y algoritmo, de una
forma gráfica. Es la parte
lógica del programa….

• Es el programa de
acompañamiento para el
panel frontal.

• Representa componentes
cableados entre sí.
¿Programa compilado?

• Cuando se hace un programa en LabView, el


algoritmo se encuentra en forma gráfica, por lo
que LabView lo analiza y elabora un código
asembler, con base en el código fuente de tipo
gráfico.

• Cuando se ejecuta el algoritmo, LabView puede


encontrar errores por lo que son mostrados en
una lista o directamente sobre el diagrama de
bloques.
Ejercicios Labview
Ejercicio 1: Lógica booleana
• Realizar un instrumento virtual en LabView de
tal forma que muestre el funcionamiento de
las siguientes compuertas lógicas:
¿Qué hacemos?
• Lo primero que se recomienda realizar es la interfaz
gráfica.

• Sobre el Panel Frontal, colocar los controles o


indicadores que necesitaremos para que el usuario
ingrese información y para que el programa muestre la
información correspondiente.

• Recuerda que esta parte es simplemente parte del


diseño que requerimos para que el usuario comprenda
el uso de nuestra aplicación.
Panel Frontal
• Los controles o indicadores que agregues dentro
del Panel Frontal, se irán agregando de forma
automática sobre el diagrama a bloques:

• Esto debido a que requieren ser controlados


usando la lógica del programa.

• Dependiendo del control o indicador, es el


número de entradas o salidas que requiere.
¿Qué necesitamos para crear esta
interfaz?
• Necesitamos agregar los siguientes elementos:

1. En la librería Express, categoría LEDs, seleccionamos 6


bloques Round LED.
2. Dentro de la librería Modern, categoría Boolean,
seleccionamos 2 bloques Stop Button.
3. Finalmente seleccionar de esa misma librería y
categoría dos bloques Push Button.

• ¿Se parametrizan estos bloques igual que los bloques


de Simulink en Matlab?
Después….

• Después de creada la interfaz gráfica es necesario crear


la parte del diseño en la ventana “Diagrama a bloques”.

• En esta ventana, para este ejercicio, únicamente es


necesario hacer la conexión de los componentes que
previamente se agregaron a la interfaz gráfica.

• ¿Es necesario un loop? ¿qué tipo de loop se utilizará?


Estructuras de ejecución en NI LabView

• Estas estructuras contienen secciones de código


gráfico.

• Controlan cómo y dónde el código que contienen


dentro se ejecuta.

• Las estructuras de ejecución más comunes son:


WHILE y FOR.
Ciclo While
• Este ciclo ejecuta el código que contiene hasta
que ocurre una condición.

• WHILE: ubicado en la paleta de Structures.

• El ciclo ejecuta el código que contiene hasta la


terminal condicional, una terminal de entrada
debe recibir un valor booleano específico.

• La terminal de iteración es una terminal de


salida que contiene el número de iteraciones
terminadas.
• La cantidad de iteraciones para el ciclo WHILE siempre
comienza en cero.
• Este ciclo siempre se ejecuta por lo menos una vez.
¿Ciclos infinitos?

• Este tipo de ciclos son un error común de


programación que involucra un ciclo que nunca
se detiene.

• Causa 1: Poner el valor de control fuera del ciclo.

• En caso de que se cicle nuestro VI, dar clic en el


botón Abort Execution de la barra de
herramientas.
Ejemplo ciclo while

• Realizar un Convertidor de Temperaturas.

• Este debe realizar la conversión de grados Fahrenheit a


grados Celsius.

• La interfaz gráfica debe contener un indicador llamado


“Thermometer” que podrás encontrar en: Express -
Numeric Indicators, y además un controlador llamado
“Vertical Fill Slide” que podrás encontrar en: Express -
 Numeric Controls.
Ejemplo Ciclo While
Ejemplo Ciclo While

• Para convertir de °F a °C tenemos la siguiente


fórmula:

• Esta lógica debemos pasarla al diagrama a


bloques, usando las funciones necesarias como
multiplicaciones, sumas, restas, etc….
¿Qué pasa si no uso un while?
• La simulación corre una sola vez con el valor
que tenga predeterminado en el controlador.
Ciclo FOR
• Este ciclo ejecuta el subdiagrama un número
de veces establecido.

• La diferencia con el WHILE, es que en el FOR


se debe especificar el número de veces que
queremos se repita el ciclo… y en el while?
Ciclo FOR
• También se diferencia del WHILE por la forma o
figura que muestra la estructura al agregarla al
diagrama de bloques.

• Se encuentra ubicado en la paleta Structures.

• La terminal de conteo es una terminal de entrada cuyos valores


indican las veces que se repetirá el subdiagrama.

• La terminal de iteración es una terminal de salida que contiene el


número de iteraciones terminadas.
*Funciones predefinidas

Existen varias funciones de Maple que se encuentran disponibles automáticamente


cada vez que iniciamos una sesión en este sistema, todas ellas se les reconocen como
función predefinida.

Ejemplos:

Funciones trigonométricas

Nombre Función Inversa F. Hiperbólica

Seno sin(x) arcsin(x) sinh(x)


Coseno cos(x) arccos(x) cosh(x)
Tangente tan(x) arctan(x) tanh(x)
Cotangente cot(x) arccot(x) coth(x)
Secante sec(x) arcsec(x) sech(x)
Cosecante csc(x) arccsc(x) csch(x)
DESCRIPCIÓN FUNCION
Raíz cuadrada sqrt(x)
Valor absoluto abs
Logaritmo natural ln(x)
Logaritmo en base b log[b](x)
Exponencial ex Exp(x)
Factorial fact(x) o x!
redondeo round(x)
Módulo a mod b
Conjugado de un complejo conjugate(c)
Argumento de un complejo argument(c)
Parte real e imaginaria de un complejo Re(c), Im(c)
Forma polar de un complejo polar(c)
Convierte ángulos de radian a grados convert(x, degrees);
Convierte ángulos de grados a radianes convert(x degrees, radians);
Limite limit(f,x)
Derivada diff(f,x)
Integral int(f,x)
Para encontrar mas funciones predefinidas se pondrá en la pantalla: ?index, function
Ejemplos de funciones predefinidas:
*Sintaxis de una función
nombre:=variable->regla de correspondencia
Ejemplo:

regla de correspondencia

Nombres que
Variable de la
se le asignara
cual
a la función
dependerá la
función
*Evaluación de funciones

g(3)=7x2+2x = 7(3)2+2(3)= 7(9)+6=63+6= 69

*Funciones de varias variables


Sintaxis
nombre:=(var1, var2, …varn) ->regla de correspondencia;

Ejemplo:

h(3,2,1)=7x2+2y-2= 7(3)+2(2)-1==21+5-1=24
*Operaciones de funciones
-Suma ,resta y multiplicación

-Composición de funciones
𝑓 𝑥 ∘ 𝑔 𝑥 = 𝑓(𝑔 𝑥 )

𝑔(𝑥) ∘ 𝑓 𝑥 = g(f(x))
*Graficas a partir de funciones
*Graficas a partir de funciones
*Función definidas a trozos

Para definir funciones a trozos se utiliza el comando piecewise

f:=x->piecewise(x<=0,x^2+2*x+1,x<4,1,x>=4,x-3);
*Transformación de expresiones en funciones operador

Maple proporciona un mecanismo a través del cual podemos transformar cualquier


expresión en una función, por medio de la instrucción.

unapply(F, x1, x2, x3,...xn);

Variables de las que depende la función

La expresión que se desea convertir

Ejemplo:
*Función inversa
Calculando función inversa de f(x)=2x+3

f-1(x)=g(x)=(-3+x)/2
*Forma inerte de una funciones
VARIABLES

Maple nos permite asignar a cualquier tipo de


dato, estructura o resultado, un nombre
formado por
una palabra sintácticamente válida.

Las variables son útiles ya que nos permiten


“almacenar" datos para su uso posterior.
Uso…

 Nombres que se pueden utilizar

 Forma de asignar datos y

 de ‘desasignar’ datos
*Definición de una variable
•Para poder utilizar una expresión como
variable y asignarle un dato o alguna otra
expresión, se utiliza el operador
“:=“
de la siguiente forma:

•expresión1 := dato o expresión2;


…definición de una variable
• Por ejemplo, asignemos a la expresión
•“a" el valor “34".
•> a := 34;
Al incluir el nombre de una variable dentro de una expresión
algebraica, Maple evalúa esta expresión tomando en cuenta
el valor que contiene la variable.

Si a ésta variable le asignamos otro dato, el valor


asignado previamente se pierde
*Asignación de valores a una
variable
•A una variable de Maple se le puede asignar
prácticamente cualquier dato válido.
..Asignación de valores a una
variable
•También se pueden definir variables a partir
de otras variables previamente definidas:
..Asignación de valores a una
variable
• Otro tipo de dato que puede ser
asignado a una variable son las gráficas.

• Al hacer este tipo de asignación Maple


muestra todos los datos creados,
necesarios para desplegar la gráfica
..Asignación de valores a una
variable
• Cuando se crean variables cuyo valor
asignado es una gráfica, al evaluarlas en
la línea de comandos obtenemos un
despliegue de la gráfica. Por ejemplo:
* Nombres de variables
Usualmente los caracteres que se usan para
formar nombres de variables son:
• Letras
• Números.
• Guiones de subrayado “_", así como el signo
“?", siempre que no aparezca como primer
caracter.
• Espacios en blanco, siempre y cuando el
* Nombres de variables
* Nombres no válidos
* Variables Simbólicas
* Desasignación de una variable
• Cada vez que se define una variable ésta
permanece hasta el fin de la sesión.

• Para “eliminar" o “desasignar" su valor.


Existen dos formas de hacerlo.

restart

O bien por “desasignación”

var:=’var’;
* Desasignación de una variable
NÚMEROS
• Maple trabaja con números enteros de cifras arbitrario.
• Cualquier dato formado por un valor numérico.
• Maple reconoce los siguientes tipos de números:
ENTEROS Y RACIONALES
Maple tiene una forma particular de trabajar con los números, intentando
siempre evitar las operaciones aritméticas que introduzcan errores.

Maple puede poner varios comandos en la misma línea separados por


comas, siempre que no sean sentencias de designación y que un
comando no necesite de los resultados anteriores.
Acerca de los racionales, cabe mencionar que Maple ejecuta,
de manera predeterminada, todas las operaciones usando
aritmética racional. Esto es, si se le pide calcular la siguiente
operación:

Nótese que en ningún momento se realizan las divisiones,


todo el calculo se hace en forma racional. Esta característica
de Maple evita los problemas que puedan surgir al hacer
redondeo de los operandos. Por ejemplo, considérese la
siguiente instrucción:
Este resultado se obtiene al operar usando racionales. Ahora introducimos la misma
operación pero realizando la operación 1/3 y calculando la diferencia entre los
resultados. Para ello usaremos la función evalf, la cual recibe una expresión
aritmética y devuelve su valor como número de punto flotante.

Nótese que la diferencia que existe entre la operación con aproximación


( 1/3 = .333333333... ) y la operación racional es considerablemente
grande. Esta es la razón por la cual Maple no maneja los números como
reales, a menos que se le obligue a hacerlo. Posteriormente se tratarán
con más detalle este tipo de operaciones.
IRRACIONALES
Maple tiene la capacidad de trabajar también con este tipo de
números, por ejemplo:

En este caso tenemos una operación que incluye a dos números


irracionales, 2 y e los cuales son manejados de manera simbólica en
las operaciones, a menos que se pida una aproximación de punto
flotante con evalf.
NUMEROS DE PUNTO
FLOTANTE

Para este tipo de números (y en general para cualquier operación numérica), usando
la función evalf es posible obtener una aproximación con una precisión arbitraria.
Por ejemplo, podemos solicitar el cálculo siguiente con 500 dígitos de precisión:
La función evalf también puede ser usada para obligar a Maple a devolver el resultado
de un cálculo en forma de punto flotante. Otra forma de hacer esto es incluyendo,
como parte de la expresión, al menos un número de punto flotante.

La precisión en los cálculos de punto flotante se controla con la variable Digits,


que por defecto vale 10. En el siguiente ejemplo se trabajara con 25 cifras
decimales exactas:
NUMEROS COMPLEJOS E
IMAGINARIOS
Para hacer uso de estos números, Maple utiliza la constante simbólica “I” que
representa −1. Esta constante se encuentra ya predefinida como parte del sistema.

En el caso de los números complejos, estos deben ser encerrados entre


paréntesis para poder operarlos correctamente, además la parte
imaginaria debe ser expresada como un producto explícitamente.
OPERADORES
Los cálculos se llevan a cabo utilizando los
llamados operadores aritméticos.
• Los operadores aritméticos soportados
por Maple son los siguientes:
 Suma: para sumar A y B utilizamos
el símbolo +.
>A + B;
Resta y números negativos: para
restar A y B utilizamos el símbolo -.
>A - B; -D
División: para dividir A en B
utilizamos /.
>A / B; o también: A*B^(-
1).
Potencia: A elevado a B utilizamos ^
o también admite la representación
**.
>A ^ B; (también: A**B).
Factorial: el factorial de A utilizamos
el símbolo !.
>A!.
Su orden de prioridad es justamente
inverso al que hemos usado para
enumerarlos. De esta forma una
exponenciación será siempre la primera
operación que se realice seguida de los
productos y las divisiones (ambas con la
misma prioridad) y finalmente las sumas
y restas indistintamente. La prioridad se
cambia por medio de paréntesis de igual
forma que
en los cálculos a mano.
Una característica importante de Maple es
que no solo realiza cálculos de tipo numérico,
también nos permite realizar operaciones de
tipo simbólico.
Por ejemplo,
ab
• > a + b; ( a + b)
• 3*a; 3a
• a/b;

• Nótese que estas operaciones se llevan a


cabo sin importar que uno o varios de los
Los paréntesis son muy necesarios para que sean claras
las instrucciones que se envían y así el programa las
pueda realizar de manera correcta.
Maple es un programa de computación
simbólica que permite, entre otras cosas,
calcular derivadas, límites, integrales de
funciones de una o varias variables; graficar
funciones en el plano o en el espacio, etc.
GRAFICAS CON MAPLE

• Maple proporciona muchas posibilidades para la


representación gráfica de datos y relaciones
matemáticas utilizando diferentes modificaciones
de las funciones básicas plots para
representaciones gráficas. En primer lugar, la
diferencia fundamental existente entre las
funciones plot, como las funciones plot estándar,
y las funciones gráficas adicionales. La segunda
cuestión importante es comprender la manera en
que los distintos parámetros actúan sobre una
Función Plot
Maple proporciona muchas
posibilidades para la representación
gráfica de datos y relaciones
matemáticas utilizando diferentes
modificaciones de las funciones
básicas plots para representaciones
gráficas. Una de las funciones más
usadas es la función plot para la
representación gráfica de
funciones de una variable,
Funciones Estándar
Las funciones plot estándar de Maple se
usan para la construcción de
representaciones detalladas y
complejas de datos o expresiones
matemáticas.
La función plot(f, h, v) representa la
gráfica de una función de una
variable definida en un cierto
intervalo. Contiene los siguientes
parámetros obligatorios:
Tipo de gráficas
El comando para graficar funciones en Maple, es plot.
Por ejemplo:

plot(x^2)

La gráfica que
se obtiene por
defecto
corresponde a
un rango de
variación
de x de −10 a 10.
Sí queremos cambiar el intervalo donde pretendemos
que varíe x para visualizar la gráfica, debemos
explicitarlo en el comando:
plot(x^2, x = −3..5)
Maple admite la posibilidad de que ‘x’ varíe en todos
los reales, colocando en el comando plot el
rango x = −∞..∞. Esto puede darnos una idea del
comportamiento de la función completa:
plot(1/x, x = −infinity..infinity)

El comando display, se encuentra dentro del paquete


plots.


Cargar paquete:

with(plots).
EJEMPLO
Gráficos 2D
El comando básico para la representación de
funciones en el plano es plot.
Sintaxis:
• Primer argumento
Función

• Segundo argumento
Variable independiente
y su rango de variación
Curvas dadas en forma paramétrica
• Primer argumento
Expresión paramétrica
Parámetro y rango de
variación.
• Segundo argumento
scaling=CONSTRAINED
• Tercer argumento
color=BLUE
Representación de mas de una función
• Primer argumento
Funciones
• Segundo argumento
Variable independiente
y rango
• Tercer argumento
Color
• Cuarto argumento
Title
Gráficos 3D

La versión tridimensional del comando plot es la


instrucción plot3d con una sintaxis muy similar a la
de aquél.

El empleo de plot3d sirve en la representación de


funciones dadas en forma explicita y superficies
expresadas en forma paramétrica
• Primer argumento
Función

• Segundo y tercer argumento


Variables independientes y
sus rango de variación

• Cuarto argumento
scaling=CONSTRAINED
• Primer argumento
Expresión paramétrica

• Segundo y tercer
argumento
Parámetros y sus rangos
de variación.
• Los atributos específicos pueden ser citados directamente
en la sintaxis de la función plot o plot3d o bien pueden ser
introducidos interactivamente por medio de la paleta que se
obtiene con un click del del botón derecho del ratón. Las
siguientes opciones están en el menú correspondiente: •
• Copy – para copiar la gráfica en el portapapeles
• Style – proporciona el estilo de la gráfica (cuadriculado,
contorno, líneas ocultas, etc) tamaño y tipo de los símbolos
utilizados, grosor de la línea y estilo (continuas, de puntos,
etc) y el estilo del enrejado (triangular o rectangular).
• Color – color de la paleta de dibujo e iluminación.
• Axes – estilos disponibles: normal, en caja, referencia o no
dibujo de los ejes.
• Projection – tipo de perspectiva y escalas de los ejes.
• Export – exporta la gráfica en alguno de los formatos
gráficos: DXF, EPS, GIF, JPG, POV, BMP, WMF.

You might also like