Anda di halaman 1dari 44

Práctica 1

ANÁLISIS DE DATOS UTILIZANDO


MATLAB

PRÁCTICA 1. ANÁLISIS DE DATOS UTILIZANDO MATLAB


Justificación
En el modelado y control de sistemas, una de las principales tareas a realizar consiste en el
análisis y validación de los datos que se toman del sistema, ya que si no se lleva a cabo esta
labor, todas las pruebas que se realizan para construir el modelo y controlar el sistema pueden no
servir cuando se realicen los ensayos en las instalaciones reales.
Como es la primera fase en el diseño del modelo y de los sistemas de control, se ha considerado
conveniente tratarlo en la primera práctica. Además, como no es necesario haber impartido
ninguno de los contenidos de teoría para poder llevarla a cabo, se plantea comenzar a la vez que
el primer tema de teoría, lo que ayuda a coordinar los programas de práctica y teoría de la
asignatura.
Por otra parte, como la herramienta que se va a utilizar a lo largo de las prácticas es Matlab, en
esta primera se hará una introducción a la misma y al manejo de sus funciones fundamentales.
Además, como en la mayoría de las prácticas es necesario diseñar e implementar programas bajo
este entorno, se han incluido en esta práctica unos ejercicios donde se desarrollan distintos
algoritmos útiles para la asignatura y que deberán ser implementados en el lenguaje que
incorpora Matlab.
Objetivos
• Mostrar la necesidad del análisis de datos y la validación de los mismos en el proceso de
diseño y construcción del modelado de sistemas dinámicos, así como en el desarrollo de
sistemas de control.
• Exponer las ventajas de la utilización de herramientas informáticas para la realización de
análisis de datos, utilizando Matlab como entorno de computación y desarrollo de
aplicaciones totalmente integrado y orientado para llevar a cabo proyectos en donde se
encuentren implicados cálculos matemáticos y la visualización gráfica de los mismos.
• Realizar distintos análisis de datos y representaciones gráficas de los mismos tomando como
referente un sistema agrícola real, para poder tomar decisiones a partir de estos estudios.

43
Práctica 1. Análisis de datos utilizando Matlab

• Mostrar las características de la implementación de programas utilizando lenguajes de


programación de alto nivel, concretamente el lenguaje que incorpora Matlab. Se trata de
alumnos de informática de segundo curso, que poseen los conocimientos básicos en
metodología de programación, por lo que sólo se pretende en esta práctica que aprendan la
sintaxis y las funciones que incorpora el lenguaje de Matlab.
• Al finalizar la práctica, el alumno deberá estar familiarizado con la herramienta y ser capaz de
trabajar sin problemas con Matlab para realizar análisis básicos de datos, así como
representaciones gráficas de los mismos. Además deberá saber implementar un programa y
funciones en Matlab que resuelvan problemas relacionados con la ingeniería de control.
Material necesario
Para realizar esta práctica es necesario disponer del siguiente material:
• Computador personal.
• Sistema operativo Windows 2000.
• Programa Matlab 6.5.
• Archivos de datos.
Contenidos y temporización
La duración de esta práctica será de 6 horas (3 sesiones de 2 horas cada una) en las que se va a
exponer la utilidad de Matlab a la hora de analizar y tratar datos procedentes de sensores.
Concretamente se van a analizar datos de sensores instalados en invernaderos automatizados.
Aparte de realizar una serie de cálculos estadísticos y representaciones gráficas de los datos, se
plantean una serie de problemas, para que se diseñe e implemente su solución, sobre aspectos
que pueden ser de interés como filtros software de señal. Por otra parte, y aunque aún no se
poseen los conocimientos apropiados, se muestra el diseño de un controlador con el que se
empiezan a presentar conceptos de forma intuitiva y se sugieren los primeros problemas en su
desarrollo. En base a este planteamiento, los pasos que se deben realizar en la presente práctica
para asimilar la forma de trabajo de Matlab con matrices, utilizar las distintas funciones
estadísticas, representar gráficamente los datos, así como el diseño e implementación de
programas y funciones, son los siguientes:
1.1. Breve introducción del manejo, las funciones básicas de Matlab, así como su programación.
1.2. Utilización de la ayuda de Matlab.
1.3. Gestión de archivos de datos con Matlab.
1.4. Análisis, obtención de estadísticos y representación gráfica de los datos correspondientes a la velocidad
y dirección de viento en el exterior.
1.5. Análisis, obtención de estadísticos y representación gráfica de los datos correspondientes a la radiación y
temperatura de cada uno de los invernaderos y del exterior para comparar comportamientos.
1.6. Diseño e implementación de un programa que detecta la hora a la que amanece y anochece, de forma que
se analicen las variables climáticas de radiación en periodos diurnos y la temperatura y humedad relativa
durante el día y la noche, obteniendo estadísticos típicos como medias, máximo, mínimos, desviación
estándar, etc.
1.7. Análisis de correlación de todas las variables medidas en un invernadero y las exteriores, interpretando
físicamente los resultados que se obtienen.
1.8. Representación gráfica de todos las variables medidas en un invernadero individualmente en una misma
figura.
1.9. Diseño e implementación de una función que realice el filtro de la media para eliminar ruidos de alta
frecuencia. Además, se compararán los resultados con distinta longitud del filtro para observar el efecto
sobre la señal real.
1.10. Diseño e implementación de un programa que controle la temperatura de un invernadero mediante la
apertura y cierre de la ventilación utilizando un computador.
Tabla 1.1. Contenidos, ejercicios y temporización de la práctica 1

44
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

1.1. Herramienta Matlab


En esta práctica se pretende realizar una introducción muy básica a
Matlab. En líneas generales, Matlab es un entorno de computación y
desarrollo de aplicaciones totalmente integrado orientado para llevar a
cabo proyectos en donde se encuentren implicados complejos cálculos
matemáticos y la visualización gráfica de los mismos. Matlab integra
análisis numérico, cálculo matricial, procesamiento de señal y
visualización gráfica en un entorno completo donde los problemas y
sus soluciones son expresados del mismo modo en que se escribirían
tradicionalmente, sin necesidad de hacer uso de la programación tradicional. Matlab constituye
un entorno abierto, para el cual numerosos paquetes específicos adicionales (toolboxes) han sido
desarrollados. Estos paquetes específicos adicionales están constituidos por un conjunto de
funciones que pueden ser llamadas desde el programa y mediante las cuales se pueden realizar
multitud de análisis. Entre otras librerías de herramientas existen unas específicas de adquisición
de datos, sistemas de control, procesamiento de imágenes, robótica, estadísticos, financieros, de
interpolación, identificación de sistemas, redes neuronales, lógica borrosa, optimización, control
robusto, control predictivo, etc.
En el campo de la Ingeniería, Matlab es una herramienta de gran utilidad para el análisis y
representación de datos, realización de cálculos, simulación, etc. Matlab cuenta con dos tipos
básicos de funciones que se tratarán con posterioridad:

• Las llamadas built-in functions. Son funciones que Matlab tiene incorporadas internamente y
por tanto sus códigos no son accesibles al usuario.
• Funciones m functions. Son funciones cuyo código es accesible y que están escritas a base de
órdenes de Matlab con objeto de realizar una función determinada.
En el caso de las versiones para Windows, la ejecución del programa se realiza pulsando con el
ratón sobre el icono correspondiente disponible en el escritorio, o bien, accediendo desde

Menú Inicio → Programas → Matlab 6.5 → Matlab 6.5.

1.2. Primeros pasos en Matlab


Una vez ejecutado Matlab, aparece la ventana principal que se muestra en la figura 1.1 y que está
constituida por las siguientes partes:

• Una línea de menús desplegables con el fondo gris que contiene funciones típicas de
cualquier editor de textos (File, Edit, View, Window, Help, etc.). Aunque se hará referencia a
esta línea de menús desplegables con posterioridad, se comentarán brevemente sus
funcionalidades:
o File. Al desplegar la ventana aparecen opciones que permiten editar un nuevo archivo
(.m, de texto, figura, etc.), cargar uno existente, grabar uno sobre el que se esté
trabajando, imprimir, salir de Matlab, etc. Otras opciones particulares de Matlab
disponibles desde este menú son Save Workspace, que permite grabar en archivo todas
las variables almacenadas en la memoria particular de Matlab denominada espacio de
trabajo, Set Path que permite añadir, eliminar y/o modificar las rutas de trabajo de
Matlab, y Preferences donde es posible cambiar el aspecto del entorno, seleccionar el
editor de texto que se desea utilizar, etc.

45
Práctica 1. Análisis de datos utilizando Matlab

Barra de Herramientas

Zona de
Accesibilidad

Ventana de
Historial de Órdenes
Órdenes

Menú Inicio
Figura 1.1. Pantalla principal de Matlab

o Edit. Presenta las funciones típicas de cualquier editor de texto Cut, Copy y Paste, que
permiten “cortar” un trozo de texto, copiarlo y “pegarlo” en otro lado.
o View. Contiene una serie de opciones que permiten ocultar o mostrar las distintas zonas
de trabajo que componen el entorno de Matlab (ventana de órdenes, espacio de trabajo,
directorio actual, historial, etc.)
o Windows. Permite seleccionar entre distintas ventanas que se tengan abiertas en una
misma sesión (por ejemplo, trabajando con cinco archivos distintos, se puede cambiar de
uno a otro). Además muestra la opción de cerrar todas las ventanas.
o Help. Proporciona acceso a una ventana que presenta una ayuda completa de la
herramienta, como se muestra en la figura 1.2. Desde dicha ventana es posible realizar
búsquedas, cargar varias demostraciones de la herramienta, obtener descripción detallada
de las bibliotecas de funciones (toolboxes), etc.

Figura 1.2. Ayuda gráfica de Matlab

46
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

• Una barra de herramientas (ver figura 1.3) desde la que se encuentran disponibles distintos
accesos directos sobre opciones típicas: abrir archivo, nuevo archivo, guardar archivo, etc. y
otras opciones mas específicas como ejecutar Simulink (software de simulación que será
utilizado en prácticas posteriores), cambiar el directorio actual de trabajo, ayuda, etc.

Figura 1.3. Barra de herramientas

• La zona restante del entorno Matlab y que se encuentra bajo la barra de herramientas es el
área de trabajo. Dicha área se encuentra divida en distintas partes, cada una de ellas con una
función determinada:
o Zona de accesibilidad. Se trata de la ventana que se encuentra en la parte superior
izquierda de la zona de trabajo. En ella se puede observar el contenido del directorio
actual de trabajo (Current directory, figura 1.4(a)), conocer el contenido del espacio de
trabajo (Workspace, figura 1.4(b)) y acceder a los distintos toolboxes de Matlab
acompañados de ejemplos y documentos de apoyo (Launch Pad, figura 1.4(c)). La
visualización de cada una de las opciones comentadas anteriormente se realiza utilizando
las etiquetas que se encuentran en la parte inferior de la ventana.

(a) Directorio actual (b) Espacio de trabajo (c) Acceso a bibliotecas de funciones
Figura 1.4. Zona de accesibilidad

o Ventana de órdenes. Corresponde a la parte derecha de la pantalla (ver figura 1.1).


Sobre esta ventana aparece un prompt o línea de órdenes (>>) donde se irán
introduciendo secuencialmente las ordenes que se vayan a ejecutar. La forma de
ejecución de una orden es semejante a la de un sistema operativo de línea de ordenes
como MS-DOS o Linux, es decir, se escribe la orden a llevar a cabo y posteriormente se
pulsa la tecla Intro para obtener el resultado de la operación.
o Historial de órdenes. Se trata de un registro de las operaciones que han sido realizadas
desde la ventana de órdenes. Sobre esta ventana se puede visualizar el trabajo realizado
durantes varios días. Si se desea volver a realizar una operación que se llevó a cabo días
atrás, basta con buscar tal operación en el historial y pulsar dos veces con el ratón sobre
la misma. Esta ventana se muestra en la parte inferior izquierda de la figura 1.1.

• Menú inicio. Se trata de una opción semejante al menú de inicio del sistema operativo MS-
Windows. Una vez se pulsa en el botón Inicio (Start) que se encuentra en la parte inferior
izquierda de la ventana de Matlab, se despliega el menú como se muestra en la figura 1.5,
desde el que es posible acceder a todas las opciones disponibles en la barra de menús, en la
barra de herramientas, en la ayuda, etc.

47
Práctica 1. Análisis de datos utilizando Matlab

Figura 1.5. Menú inicio

Como se ha podido observar en la descripción de las distintas partes de la herramienta, las


versiones 6.x de Matlab presentan un avance considerable con respecto a la facilidad de acceso a
opciones y operaciones a través de ventanas y entornos gráficos. En sus versiones anteriores, la
gran mayoría de estas opciones: ayuda, consulta del espacio de trabajo, directorio actual, etc., era
necesario consultarlas desde la ventana de órdenes en modo texto. Actualmente se dispone de
ambas posibilidades, consulta en modo texto o en modo gráfico.

Para comenzar a utilizar Matlab, el primer orden que se debe ejecutar es la orden de ayuda. El
acceso a la ayuda de Matlab se puede realizar de dos modos distintos, en modo texto o en modo
gráfico. Para el acceso en modo texto se hace uso de la orden help y para el modo gráfico se
utiliza la orden doc. Ambas órdenes tienen dos formas de ejecución, escribiendo en la línea de
órdenes cualquiera de ellos de manera individual y pulsar Intro, o escribirlos seguidos de la
orden sobre el cual se desea obtener ayuda y pulsar igualmente Intro:

>> help >> help nombre_orden


>> doc >> doc nombre_orden

En el caso de utilizar help de forma individual aparecerán todas las citadas built-in functions que
incorpora Matlab agrupadas en bibliotecas de funciones o toolboxes. Una breve descripción de
los toolboxes más importantes de Matlab se muestra en la tabla 1.2.

(a) Ejemplo de help (b) Ejemplo de doc


Figura 1.6. Modos de ayuda en Matlab

En caso de utilizar la función help seguida de una orden se mostrará la ayuda de dicha orden en
formato de texto, como se puede observar en al figura 1.6(a). Si por el contrario se utiliza la
orden doc, si se usa de manera individual se obtiene una ventana donde se describe cómo

48
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

comenzar a utilizar Matlab, y si se ejecuta con el nombre de una orden aparece una ventana
donde se muestra una descripción de dicha orden, como se observa en la figura 1.6(b).

NOTA IMPORTANTE

Una cuestión importante a tener en cuenta es que Matlab distingue entre mayúsculas y
minúsculas y por tanto, los nombres de función se introducirán en minúsculas.

Funciones Descripción
c:\Matlab Establece los parámetros de la sesión Matlab
Matlab\general Órdenes de propósito general
Matlab\ops Operadores y caracteres especiales
Matlab\lang Construcción del lenguaje y chequeo de errores
Matlab\elmat Matrices elementales y manipulación de matrices
Matlab\specmat Matrices especiales
Matlab\elfun Funciones matemáticas elementales
Matlab\specfun Funciones matemáticas especiales
Matlab\matfun Funciones matriciales y álgebra lineal numérica
Matlab\datafun Análisis de datos y funciones de transformada de Fourier
Matlab\polyfun Funciones polinomiales y de interpolación
Matlab\funfun Funciones de funciones de métodos numéricos no lineales
Matlab\sparfun Funciones para matrices dispersas
Matlab\plotxy Gráficos en dos dimensiones
Matlab\plotxyz Gráficos en tres dimensiones
Matlab\graphics Funciones gráficas de propósito general
Matlab\color Funciones para control de color, brillo y contraste
Matlab\sounds Funciones para procesamiento de sonido
Matlab\strfun Funciones de cadenas de caracteres
Matlab\iofun Funciones de entrada y salida de bajo nivel
Matlab\demos La Expo de Matlab y otras demostraciones
simulink\simulink Análisis de modelos en Simulink y funciones de construcción
simulink\blocks Librería de Bloques de Simulink
simulink\simdemos Demostraciones y ejemplos de Simulink
toolbox\control Control System Toolbox
toolbox\local Librería de funciones locales
Tabla 1.2. Breve descripción de las principales bibliotecas de funciones

1.3. Funciones especiales y símbolos relacionados con el entorno


• Si se desea guardar toda la sesión en un archivo (órdenes introducidas y resultados), basta
usar la orden diary <nombre archivo> y se guardará la sesión en un archivo llamado
<nombre archivo> (si no se introduce el nombre del archivo, se guarda en uno denominado
diary). Cuando no se quiera seguir almacenando la información se introducirá diary off. Esta
operación puede ser llevada a cabo sobre la ventana de Historial de órdenes. Para ello se
selecciona el conjunto de órdenes que se desea guardar, se hace clic con el botón derecho del
ratón y se elige la opción Create M-file.
• El símbolo % sirve para poner comentarios en los programas (todo lo escrito desde ese
símbolo hasta el final de la línea no se ejecutará).
• Si lo que se desea es almacenar todas las variables de memoria (y sus valores actuales) en un
archivo, se usa la orden save <nombre archivo>. Esto crea un archivo con el nombre
introducido y con extensión .MAT. Si no se pone nombre del archivo crea uno llamado
\MATLAB.MAT. En caso que se desee guardar en un archivo con formato ASCII, se

49
Práctica 1. Análisis de datos utilizando Matlab

introducirá en la orden un modificador <nombre archivo> -ascii. Si sólo se quieren guardar


una serie de variables se introducirá save <nombre archivo> <nombre variables> separadas
por espacios (y opcionalmente -ascii).
• Para recuperar los archivos generados con la orden save se utilizará load <nombre archivo>.
• La orden what muestra los archivos .m que se encuentran en el disco duro en el subdirectorio
desde el cual se haya invocado a Matlab.
• dir o ls muestra todos los archivos contenidos en el subdirectorio actual.
• Con la orden delete se puede borrar cualquier archivo del disco duro.
• chdir o cd permite cambiar de directorio.
• La orden type permite ver el contenido de cualquier archivo en formato ASCII.
• Para borrar alguna variable de memoria se utiliza clear <nombrevariables> separadas por
espacios.
• El símbolo ! permite acceder al sistema operativo y ejecutar cualquier programa (siempre que
exista memoria suficiente). Es una de las formas de llamar al editor en la versión DOS.
• Para parar la ejecución de una orden se usa Ctrl C.
• La salida del sistema se efectúa al introducir quit o exit.

El conjunto de órdenes más genéricos de Matlab pueden ser consultados desde:

>> help (o doc) general

1.4. Estructuras de datos

1.4.1. La matriz como estructura de datos básica

El elemento básico en Matlab es una matriz compleja de doble precisión, de forma que abarca
realmente todo tipo de datos (desde números reales hasta complejos) y de estructuras de datos
(escalares, vectores y matrices). Implícitamente se usa la notación matricial para introducir
polinomios. Así por ejemplo, el polinomio P = x3 + 5 x2 + 2 x + 7 se representará de la forma:
P=[1 5 2 7] y la matriz:
1 2
A= 
3 4
se representa por A=[1 2; 3 4]. A partir de esta representación se pueden comentar varias cosas:

• Si al final de la introducción de la orden no se pone punto y coma “;”, aparece el resultado


explícitamente en pantalla. En caso contrario se ejecuta pero no muestra el resultado,
almacenándolo en la variable a la que se asigna o, si no se asigna, se guarda en una variable
de entorno llamada ans.
• Los elementos de cada fila se pueden introducir separados por espacios o por comas.
• Para separar filas se usa “;” (punto y coma) o bien al introducirlas se pulsa Intro.
• Para trasponer matrices se usa el apóstrofe ′.
• Los elementos de vectores y matrices pueden ser reales, complejos e incluso expresiones.
• Si se está introduciendo una orden o conjunto de ellas cuya sintaxis es muy larga, se puede
continuar en la siguiente línea introduciendo al final de la actual tres puntos seguidos “...”.
• Las variables a las que se asignan resultados, así como las variables de entorno, se almacenan
en el "espacio de trabajo" (workspace).
• Otras formas de introducir matrices:

o Lista explícita de elementos.

50
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

o Generándola mediante funciones y declaraciones.


o Creándola en un archivo .m (matrices .m).
o Cargándola de un archivo de datos externo (archivos de datos ASCII y archivos con
formato .mat).

1.4.2. Elementos de las matrices

Los elementos de una matriz se referencian de la forma A(i,j), donde i y j son los índices del
elemento correspondiente. En este punto es importante comentar uno de los operadores más
potentes de Matlab, que es el símbolo : (dos puntos), que permite referenciar varios elementos de
una matriz, así por ejemplo: A(1,2:3) se refiere a los elementos de las columnas 2 y 3
pertenecientes a la primera fila. De igual forma, A(:,2) se refiere a todos los elementos
pertenecientes a la segunda columna.

1.4.3. Operaciones con matrices y otras

Las operaciones comunes con matrices son las que se muestran en la tabla 1.3.

Operación Descripción Símbolo


Suma Suma +
Resta Resta -
Multiplicación Multiplicación *
División derecha x=b/A es la solución de x*A=b /
División izquierda x=A\b es la solución de A*x=b \
Potenciación Potenciación ^
Conjugada traspuesta Conjugada traspuesta ′
Tabla 1.3. Operaciones básicas con matrices

Las mismas operaciones se pueden realizar elemento por elemento anteponiendo un “.” (punto) a
cualquiera de los operandos anteriores (p.e., en vez del producto matricial normal, al anteponer
un punto al símbolo de producto (.*) el elemento (i,j) de la matriz resultante se obtendría como
resultado de multiplicar los elementos (i,j) de los operandos). El listado de las posibles
operaciones a realizar con matrices se puede obtener desde: >> help (o doc) elmat. Además de
las operaciones anteriores existen entre otras:

• Funciones normales de manipulación matricial: tabla 1.4.

Operación Función
Determinante det
Inversa inv
Autovalores eig
Rango rank
Norma norm
Parte real real
Parte imaginaria imag
Valor absoluto abs
Conjugada conj
Tabla 1.4. Funciones de manipulación matricial

• Funciones trigonométricas estándar e hiperbólicas: tabla 1.5.

51
Práctica 1. Análisis de datos utilizando Matlab

Operación Función
Seno sin
Coseno cos
Tangente tan
Arcoseno asin
Arcocoseno acos
Arcotangente atan
Arcotangente de x/y atan2
Seno hiperbólico sinh
Coseno hiperbólico cosh
Tangente hiperbólica tanh
Arcoseno hiperbólico asinh
Arcocoseno hiperbólico acosh
Arcotangente hiperbólica atahn
Tabla 1.5. Funciones trigonométricas e hiperbólicas

• Funciones trascendentales: tabla 1.6.

Operación Función
Módulo complejo abs
Argumento complejo angle
Raíz cuadrada sqrt
Parte real real
Parte imaginaria imag
Conjugado complejo conj
Redondeo al entero más cercano round
Redondeo hacia cero fix
Función signo sign
Resto rem
Exponencial base e exp
Logaritmo natural log
Logaritmo en base 10 log10
Tabla 1.6. Funciones transcendentales

1.4.4. Operaciones comunes de análisis de datos


Existen funciones que operan con vectores. Si se aplican a matrices operan columna a columna.
Para consultar sobre este tipo de órdenes: >> help (o doc) datafun. Un breve listado con las
funciones más comunes se muestran en la tabla 1.7.

Operación Función
Valor máximo max
Valor mínimo min
Valor medio mean
Mediana median
Desviación típica std
Suma de elementos sum
Producto de elementos prod
Suma acumulativa de elementos cumsum
Producto acumulativo de elementos cumprod
Matriz de covarianza cov
Coeficientes de correlación corrcoef
Tabla 1.7. Operaciones comunes de análisis de datos

52
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

1.5. Variables de entorno y variables especiales

Matlab posee internamente un conjunto de variables predefinidas asociadas a valores constantes


(el número pi, valor infinito, número no definido, variable compleja, etc.), relacionadas con la
máquina (fecha y hora de la máquina, precisión de la máquina, etc.) y otras como es el caso de la
variable ans, que almacena el valor de la última operación realizada. Un listado de algunas de
estas variables se muestran en la tabla 1.8.

Variables Descripción
ans respuesta cuando no se asigna expresión
eps precisión mínima de la máquina
pi π
“ i”, “ j” −1 (variable compleja)
inf ∞
NaN Not a number
clock Reloj
date Fecha
flops Número de operaciones
Tabla 1.8. Variables de entorno y variable especiales

• La orden who muestra las variables existentes en el entorno generadas por el usuario (pero no
las variables especiales). La orden whos muestra igualmente las variables generadas por el
usuario junto con información adicional sobre el tamaño de las variables y el tipo de datos de
las mismas. Toda esta información puede ser consultada en todo momento desde la ventana
Workspace como se comentó en el apartado 2 (ver figura 1.4(b)).
• La orden size devuelve el número de filas y columnas de una matriz y length la mayor
dimensión.
• El formato de salida puede modificarse usando format (short, long, etc.).

1.6. Polinomios
Los polinomios se representan por vectores, conteniendo los coeficientes del polinomio en orden
descendente. Por ejemplo, el polinomio s3 +2 s2 +3 s +4 se escribe como p=[1 2 3 4].

Un polinomio puede ser evaluado en un punto determinado usando polyval. Por ejemplo,
ps=polyval(p,s), donde p es el polinomio y s es el punto donde va a ser evaluado. En el ejemplo:
p2=[1 3 2]; a=[1 2; 3 4]; polyval(p2,a) se ha introducido en lugar de un valor, un vector o una
matriz, de modo que la evaluación se hace elemento a elemento.
Los polinomios se pueden multiplicar y dividir usando las funciones conv y deconv
respectivamente.

Mediante la función roots se pueden encontrar las raíces de esa ecuación, p.e. roots(p). Del
mismo modo, se puede calcular un polinomio a partir de sus raíces usando la función poly, p.e.
p2=poly([1 2]);. Si el argumento de entrada a poly es una matriz, devuelve el polinomio
característico de la matriz (det|λI- A|) como un vector fila.
1.7. Gráficos
Matlab es muy potente a la hora de generar gráficos (sobre todo en sus últimas versiones). En las
demostraciones aparecen varios tipos de gráficos. A continuación, se exponen las órdenes
relacionadas con el dibujo de gráficos, estando contenidos los ejemplos en los listados de las

53
Práctica 1. Análisis de datos utilizando Matlab

demostraciones que se mostrarán en los siguientes apartados. Las órdenes fundamentales son las
que se muestran en la tabla 1.9.
Operación Función
Gráfico lineal en el plano XY plot
Gráfico logarítmico en el plano XY loglog
Gráfico semilogarítmico semilogx
Gráfico semilogarítmico semilogy
Gráfico polar polar
Superficie de malla tridimensional mesh
Plano de contornos contour
Título title
Anotación en eje x xlabel
Anotación en eje y ylabel
Dibuja cuadriculado grid
Posiciona un texto arbitrariamente text
Posiciona un texto con el ratón gtext
Escalado manual de ejes axis
Mantiene gráfico en pantalla hold
Permite representar distintas figuras simultáneamente figure
Divide la pantalla gráfica subplot
Tabla 1.9. Funciones gráficas

Gracias a este conjunto de órdenes, es posible obtener los resultados de los trabajos realizados de
forma gráfica, tanto en 2D (>> help (o doc) graph2d) como en 3D (>> help (o doc) graph3d).

1.8. Programación en Matlab

Matlab, además de ser un entorno que permite ejecutar órdenes de manera individual sobre la
ventana de órdenes, es en sí un lenguaje de programación formado por un conjunto de
instrucciones típicas de control de flujo. La sintaxis es muy parecida a la de cualquier lenguaje
de programación y todas las palabras reservadas pueden ser usadas directamente sobre la línea de
órdenes, en forma de script o en forma de funciones (la forma de crear un fichero script o una
función en Matlab será comentada posteriormente). En los siguientes apartados se tratará la
sintaxis de los elementos típicos de programación que posee Matlab.

1.8.1. Operadores lógicos y relacionales

Permiten la comparación de escalares (o de matrices elemento a elemento). Si el resultado de la


comparación es verdadero, devuelven un 1, en caso contrario devuelven un 0. Los operadores
elementales son:
< Menor que <= Menor o igual == Igual
> Mayor que >= Mayor o igual ∼= No igual

Una consideración que hay que tener en cuenta es que es importante no dejar espacios entre los
operadores formados por dos símbolos. Para datos complejos se compara (== y ~=) tanto la parte
real como la imaginaria.

1.8.2. Bucles y estructuras condicionales


En esta sección se explican las estructuras de control típicas de cualquier lenguaje de
programación estructurado: secuenciales, condicionales y repetitivas.

54
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

• Bucle for. Permite bucles de n iteraciones conocidas. A diferencia de otros lenguajes de


programación, la expresión a iterar puede ser un entero o un vector. En caso de ser un vector,
el iterador tomará el valor de las distintas posiciones del mismo en cada paso del bucle. Su
sintaxis es:
for variable=expresión
hacer algo;
end;

Ejemplo con iterador entero, donde la variable i pasa por los valores 10, 9, ..., 1:
for i=10:-1:1
kk(i)=i;
end
Ejemplo con iterador vector, donde la variable i tomas los valores desde un vector:
t=0:2:10;
for i=t
aux=i+3;
end

• Bucle while. Permite bucles condicionales. Su sintaxis es:

while expresión,
hacer algo
end;

La expresión es de la forma X operador Y, donde X e Y son escalares o expresiones que


devuelven escalares y los operadores suelen ser operadores relacionales. El siguiente ejemplo
busca una matriz aleatoria estable (parte real de autovalores negativa):
rand('normal');
a=rand(2);
while max(real(eig(a))) >= 0, a=rand(2);
end;
eig(a);

• Estructura condicional if, else, elseif. La sintaxis es la siguiente:


if expresión 1, hace algo,..., hace otras cosas,...
elseif expresión 2, hace algo,...,hace otras cosas,...
else hace algo,...,
end

else y elseif son opcionales, no así end que es obligatorio para acabar la instrucción.
• Estructura de selección de casos switch. Permite realizar distintas operaciones en función de
los diferentes valores que pueda tomar una posible variable. Sus sintaxis es la siguiente:
switch variable
case valor1
operaciones;
case valor2
operaciones;
...
case valorn
operaciones;
end

55
Práctica 1. Análisis de datos utilizando Matlab

• Interrupción de estructuras de control break. Las distintas órdenes de control flujo pueden ser
interrumpidas en cualquier momento haciendo uso de la orden break. Ejemplo:
t=0:2:10;
for i=t
if i==6
break;
end
aux=i+3;
end
En el ejemplo anterior, el bucle for será interrumpido cuando el valor de la variable i sea
igual a 6.
1.8.3. Archivos .m
Matlab puede ejecutar programas almacenados en archivos ASCII que se encuentren en alguno
de los subdirectorios indicados en el PATH o bien en el subdirectorio de trabajo actual y tengan
además extensión .m. Hay dos tipos de archivos:

• Scripts o módulos. Son archivos .m en los que se ponen secuencialmente órdenes de Matlab
que se ejecutan en ese orden al introducir el nombre del archivo .m (sin extensión). Operan
globalmente con los datos que se encuentran en el espacio de trabajo. Las demostraciones que
acompañan a estas notas son en sí scriptfiles, pues llevan un conjunto de órdenes Matlab y
comentarios.
• Funciones. Son también archivos .m, pero a diferencia de los anteriores, se le pueden pasar
argumentos y pueden devolver resultados. Por tanto, utilizan variables que se pasan por valor.
La mayoría de los archivos contenidos en los toolboxes son funciones. La sintaxis de todas las
funciones almacenadas en archivos .m es la siguiente:
function [out1,out2,...]=nombre_archivo(in1,in2,...)
% Comentarios adicionales para el help
Matlab posee un editor de texto propio sobre el cual es posible desarrollar los script o las
funciones en código Matlab. Es un editor de textos típico pero que resalta las palabras reservadas
escritas en código Matlab. Dicho editor es accesible desde el menú File y eligiendo la opción M-
file. El aspecto del editor se puede observar en la figura 1.7.

Figura 1.7. Editor de programación de Matlab

56
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

Para finalizar, cabe comentar que existen una serie de utilidades a la hora de programar en
Matlab. Las más comunes son:

• pause: Para la ejecución hasta que se pulsa una tecla.


• echo on, echo off: Permite la salida de órdenes y comentarios por pantalla, o la anula.
• input: Muestra una cadena por pantalla y espera a que el usuario introduzca la cadena, que
generalmente se asigna a una variable.

1.8.4. Ejemplo de implementación de un sistema de medida de temperatura y cálculos


estadísticos
En este apartado se describe en su totalidad la implementación de un sistema de medida por
computador de temperatura y el cálculo de los siguientes estadísticos: medias, máximo y
mínimo. Se va a simular la salida eléctrica de un sensor de temperatura a partir de un valor que
se introduzca por teclado. Para no realizar el programa completo de una sola vez, se empezará
diseñando un programa con pequeñas prestaciones al que se le irán añadiendo nuevas funciones.
1.8.4.1. Programa que realiza la conversión de unidades eléctricas en unidades de temperatura

Se utiliza un sensor de temperatura basado en un resistencia metálica (Pt-100), con un


amplificador de señal, cuya salida varía entre 0 y 10 voltios. La relación entre la salida eléctrica
(voltios) y la temperatura (ºC) es lineal y determinada por los valores que se indican en la tabla
1.10.
Señal eléctrica (Voltios) Temperatura (ºC)
0 -10
10 60
Tabla 1.10. Relación entre unidades eléctricas y de temperatura dadas por el fabricante

Por tanto, la fórmula que relaciona las dos variables es:


Temperatura (ºC) = 7× Señal eléctrica (Voltios)-10
El algoritmo sería:
Datos de entrada: voltios=real %Limpiar ventana de órdenes
Datos de salida: temperatura=real clc;
%Cabecera del programa
Algoritmo: disp('Programa Temperatura');
Inicio disp('--------------------');
Leer(voltios) %Lectura del sensor
temperatura←7*voltios-10 voltios=input('Medida del sensor: ');
Escribir(temperatura) %Conversión voltios a temperatura
Fin temp=voltios*7-10;
disp('La temperatura es (ºC) : ')
disp(temp);

1.8.4.2. Programa que realiza la conversión de unidades eléctricas en unidades de temperatura


de manera continuada
En un sistema de medida y control por computador no se adquieren medidas aisladas, sino que se
toman periódicamente (cada cierto intervalo de tiempo). El siguiente paso será simular el bucle
de medida: el programa anterior se introduce en un bucle, de tal forma que se sigue ejecutando
hasta que la señal eléctrica sea menor de 0 voltios o mayor de 10 voltios, lo que indicaría que el
sensor presenta un mal funcionamiento. Habrá que modificar el programa anterior, incluyendo
las instrucciones que sean necesarias. El algoritmo y el programa correspondiente son:

57
Práctica 1. Análisis de datos utilizando Matlab

Datos de entrada: voltios=real %Limpiar pantalla


Datos de salida: temperatura=real clc;
%Cabecera del programa
Algoritmo disp('Programa Temperatura');
Inicio disp('--------------------');
Leer(voltios) %Lectura del sensor la primera vez
Mientras(voltios>=0)y(voltios<=10) voltios=input('Medida del sensor: ');
temperatura←7*voltios-10 %bucle
Escribir(temperatura) while ((voltios>=0)&(voltios<=10))
Leer(voltios) %Conversión voltios a temperatura
Fin_mientras temp=voltios*7-10;
Escribir(‘Error: sensor averiado’) disp('La temperatura es (ºC) : ');
Fin disp(temp);
%Lectura del sensor
voltios=input('Medida del sensor: ');
end; %While
disp(' ');
disp(' ¡¡ERROR EN EL SENSOR!!');

1.8.4.3. Programa que convierte unidades eléctricas en unidades de temperatura de manera


continuada y tenga en cuenta alarmas
En un sistema de medida y control por computador es necesario realizar tareas de supervisión,
por ejemplo activar alarmas en el caso de que controle un proceso cuya temperatura debe estar
siempre en un margen definido. En este ejemplo, se indica que si la temperatura es menor de un
mínimo o mayor que un máximo definidos por el usuario se debe activar una alarma,
presentando en la pantalla del computador un mensaje de alarma.
El algoritmo y su implementación correspondiente se muestran a continuación:
Datos de entrada: voltios=real %Limpiar pantalla
Alarma_min=real clc;
Alarma_max=real %Cabecera del programa
Datos de salida: temperatura=real disp('Programa Temperatura');
disp('--------------------');
Algoritmo: %Lectura de alarmas
alarma_min=input('Introduzca alarma mínima de
Inicio temperatura (ºC)= ');
Leer(alarma_min) alarma_max=input('Introduzca alarma máxima de
Leer(alarma_max) temperatura (ºC)= ');
Leer(voltios) %Lectura del sensor la primera vez
Mientras (voltios>=0)y (voltios<=10) voltios=input('Medida del sensor: ');
temperatura←7*voltios-10 %Bucle
Escribir(temperatura) while ((voltios>=0)&(voltios<=10))
Si (temperatura<alarma_min) %Conversión voltios a temperatura
Entonces escribir(‘¡Alarma: Temp. temp=voltios*7-10;
Mínima!’) disp('La temperatura es (ºC) : ');
sino si (temperatura>alarma_max) disp(temp);
Entonces escribir(‘¡Alarma: Temp. %Comprobación de alarmas
Máxima!’) if (temp>alarma_max)
Leer(voltios) disp('!!!!Alarma: La temperatura es mayor que la
Fin_mientras temperatura máxima permitida!!!!');
Escribir (‘Error: sensor averiado’) elseif (temp<alarma_min)
Fin disp('!!!!Alarma: La temperatura es menor que la
temperatura mínima permitida!!!!');
end; %If
%Lectura del sensor
voltios=input('Medida del sensor: ');
end; %While
disp('¡¡¡¡ERROR DEL SENSOR!!!!');

58
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

1.8.4.4. Programa que convierte unidades eléctricas en unidades de temperatura de manera


continuada, almacenando esta variable y mostrándola cada vez que se ejecuta un bucle

En un sistema de medida y control por computador es necesario realizar tareas de supervisión,


por ejemplo, mostrar una gráfica de la variable a medir o controlar. Para hacerlo, se utiliza un
vector o matriz de una fila y se representa en cada iteración del bucle. Evidentemente, cada
gráfica tendrá un valor más en cada pasada. Hace falta un contador para saber cuántos valores de
temperatura se calculan.

El programa que implementa este algoritmo es:

Datos de entrada: voltios=real %Limpiar pantalla


Datos de salida: temperatura=vector de reales clc;
Datos auxiliares: Contador=entero %Cabecera del programa
disp('Programa Temperatura');
Algoritmo disp('--------------------');
Inicio %Inicializar contador
contador←1 contador=1;
Leer(voltios) %Lectura del sensor la primera vez
Mientras (voltios>=0) y (voltios<=10) voltios=input('Medida del sensor: ');
temperatura←7*voltios-10 %bucle
Escribir(temperatura) while ((voltios>=0)&(voltios<=10))
Dibujar(temperatura) %Conversión voltios a temperatura
Leer(voltios) temp(contador)=voltios*7-10;
contador←contador+1 disp('La temperatura es (ºC) : ');
Fin_mientras disp(temp(contador));
Escribir (‘Error: sensor averiado’) %gráfico de temperatura
Fin plot(temp);
%Actualizar contador
contador=contador+1;
%Lectura del sensor
voltios=input('Medida del sensor: ');
end; %While
disp(' ');
disp('¡¡¡¡ERROR DEL SENSOR!!!!');

1.9. Resumen de los órdenes de Matlab más útiles en la asignatura

Caracteres especiales Valores especiales


= Instrucción de asignación ans Respuesta cuando no se asigna expresión
[ Usado para formar vectores y matrices eps Precisión
] Ver [ pi π
( Precedencia aritmética i,j −1
) Ver ( inf ∞
. Punto decimal NaN No es numérico
, Separa índices y argumentos de función cloc Reloj
k
; Acaba filas; suprime la impresión date Fecha
% Comentarios flops Número de operaciones
: Indexación; generación de vectores
! Ejecuta instrucción del sistema operativo

59
Práctica 1. Análisis de datos utilizando Matlab

Archivos de disco Análisis de datos por columnas


chdir Cambiar de directorio max Valor máximo
delete Borrar archivo min Valor mínimo
diary Diario de sesión mean Valor medio
dir Directorio de archivos en disco median Mediana
load Cargar variables de un archivo std Desviación típica
save Guardar variables en un archivo sum Suma de elementos
type Mostrar función o archivo prod Producto de elementos
what Mostrar archivos .m en disco cumsum Suma acumulativa de elementos
fprintf Escribir en un archivo con formato cumprod Producto acumulativo de elementos
fopen Abrir un archivo con formato cov Matriz de covarianza
fclose Cerrar un archivo con formato corrcoef Coeficientes de correlación
Funciones elementales Funciones trigonométricas
abs Módulo complejo sin Seno
angle Argumento complejo cos Coseno
sqrt Raíz cuadrada tan Tangente
real Parte real asin Arcoseno
imag Parte imaginaria acos Arcocoseno
conj Conjugado complejo atan Arcotangente
round Redondeo al entero más cercano atan2 Arcotangente de x/y
fix Redondeo hacia cero sinh Seno hiperbólico
sign Función signo cosh Coseno hiperbólico
rem Resto tanh Tangente hiperbólica
exp Exponencial base e asinh Arcoseno hiperbólico
log Logaritmo natural acosh Arcocoseno hiperbólico
log10 Logaritmo en base 10 atahn Arcotangente hiperbólica
Polinomios Solución de ecuaciones
poly Polinomio característico ode23 Solución de ecuaciones
diferenciales. Método Runge-Kutta
de orden 2/3
roots Raíces de polinomios ode45 Idem. Runge-Kutta 4/5
polyval Evaluación de polinomios fmin Mínimo de una función de una
variable
polyvalm Evaluación de polinomio matricial fsolve Solución sistema de ecuaciones no
lineales
conv Multiplicación de polinomios fzero Cero de una función de una variable
deconv División de polinomios quad Función de integración numérica
polyfit Ajuste por un polinomio
Control de flujo y programación archivos .m Gráficos
if Ejecuta órdenes condicionalmente plot Gráfico lineal en el plano XY
elseif Usado con if loglog Gráfico logarítmico en el plano XY
else Usado con if semilogx Gráfico semilogarítmico
end Termina if, for, while semilogy Gráfico semilogarítmico
for Repite instrucciones un número de polar Gráfico polar
veces
while Repite instrucciones mientras que mesh Superficie de malla tridimensional
una secuencia lógica sea verdadera
break Sale de los bucles for y while contour Plano de contornos
return Salida desde funciones title Título
pause Pausa hasta que se pulsa una tecla xlabel Anotación en eje x
input Obtiene datos desde teclado ylabel Anotación en eje y
function Define función grid Dibuja cuadriculado
eval Evalúa texto en variables text Posiciona un texto arbitrariamente
echo Para mostrar órdenes por pantalla gtext Posiciona un texto con el ratón
clc Limpia pantalla axis Escalado manual de ejes
disp Muestra matriz o texto hold Mantiene gráfico en pantalla
figure Permite representar figuras
subplot Divide la pantalla gráfica

60
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

1.10. Ejemplos de aplicación. Análisis de datos para el modelado y control


climático de invernaderos
Se va a exponer a continuación un ejemplo completo de la utilidad de Matlab para análisis y
tratamiento de datos procedentes de sensores instalados en invernaderos automatizados. Se
cuenta con un archivo de datos (m070498.txt)2 medidos en dos invernadero automatizados el día
7 de abril de 1998. El invernadero 1 corresponde a uno de tipo Inamed con cultivo de pepino,
mientras que el invernadero 2 corresponde a uno tipo Araba con cultivo de tomate.
Para medir las variables climáticas de interés, se han utilizado sensores típicos (Pt-100 para
temperatura, higrómetros para humedad, potenciómetros para posición de ventilaciones y mallas
de sombreo, etc.). Una vez introducidos en el computador, se han hecho los cambios de escala
adecuados de modo que los valores del archivo de datos corresponden a unidades físicas.

(a) Invernadero INAMED (b) Invernadero ARABA


Figura 1.8. Tipos de invernaderos
En el archivo los datos aparecen ordenados por columnas, donde cada columna corresponde a
una variable de interés (nótese que los datos han sido muestreados cada minuto):
COLUMNA DESCRIPCIÓN
1 Hora solar en decimal
2 Salida invernadero 1: temperatura interior del invernadero 1 (ºC)
3 Salida invernadero 1: humedad relativa interior en invernadero 1 (%)
4 Salida invernadero 2: temperatura interior del invernadero 2 (ºC)
5 Salida invernadero 2: humedad relativa interior en invernadero 2 (%)
6 Entrada invernadero 1: % apertura ventilación invernadero 1 (%)
7 Entrada invernadero 2: % apertura ventilación invernadero 2 (%)
8 Entrada invernadero 1: temperatura de los tubos de calefacción (ºC)
9 Entrada invernadero 1: indica si la bomba de calefacción está activada (0/100)
10 Entrada invernadero 2: temperatura de los tubos de calefacción (ºC)
11 Entrada invernadero 2: indica si la bomba de calefacción está activada (0/100)
12 Perturbación: temperatura exterior (ºC)
13 Perturbación: dirección del viento exterior (0-360º)
14 Perturbación: velocidad del viento exterior (m/s)
15 Perturbación: radiación global exterior (W/m2 )
16 Perturbación: indicador de presencia de lluvia
17 Salida invernadero 1: radiación PAR3 invernadero 1 (W/m2 )
18 Salida invernadero 2: radiación PAR invernadero 2 (W/m2 )
19 Perturbación: radiación PAR exterior (W/m2 )
20 Entrada invernadero 1: malla de sombreo invernadero 1 (0/400 cm)
21 Entrada invernadero 2: malla de sombreo invernadero 2 (0/400 cm)
Tabla 1.11. Correspondencia entre variables y columnas del archivo donde se almacenan

2
Este archivo se puede descargar desde http://aer.ual.es, en la sección de Docencia.
3
Photosynthetically Active Radiation: es la radiación cuya longitud de onda está comprendida entre los 0.4 y los 0.7
µm que es la que utiliza el cultivo para realizar la fotosíntesis.

61
Práctica 1. Análisis de datos utilizando Matlab

Como se puede observar, aparecen tres grupos generales de datos en este archivo:

• Los correspondientes a variables ambientales exteriores, que van indicados como


perturbaciones y que se refieren a la temperatura exterior, dirección y velocidad del viento,
radiación global exterior, radiación PAR exterior, lluvia, etc.
• Los correspondientes a entradas y salidas del invernadero 1. Como variables de entrada
(variables manipulables que permiten actuar sobre el clima interior del invernadero) se tienen
las correspondientes a la apertura de la ventilación, activación/desactivación de bomba de
calefacción y temperatura de los tubos de calefacción y apertura de la malla de sombreo.
Como salidas (variables cuya evolución en el tiempo se desea controlar) se tienen la
temperatura interior y humedad relativa interior (que se controlan haciendo uso de
ventilaciones y calefacción) y la radiación PAR interior (utilizando la malla de sombreo).
• Similar para el invernadero 2. Como variables de entrada (variables manipulables que
permiten actuar sobre el clima interior del invernadero) se tienen las correspondientes a la
apertura de la ventilación, activación/desactivación de bomba de calefacción y temperatura
de los tubos de calefacción y apertura de la malla de sombreo. Como salidas (variables cuya
evolución en el tiempo se desea controlar) se tienen la temperatura interior y humedad
relativa interior (que se controlan haciendo uso de ventilaciones y calefacción) y la radiación
PAR interior (utilizando la malla de sombreo).

Una etapa muy importante a la hora de llevar a cabo el control climático de invernaderos es
realizar un análisis de los datos que se van obteniendo de los sensores. El programa Matlab
permite realizar de una forma cómoda este análisis. A continuación, se muestra un script o
módulo denominado datos.m en el que se realiza un estudio de la correlación de los datos
contenidos en el archivo, se representan gráficamente las variables de interés, etc. Los resultados
comentarán a lo largo de la clase de prácticas.
echo off
% Ejemplo de tratamiento de datos del día 07/04/98
load m070498.txt % se carga el archivo de datos muestra el tamaño de la variable v que debe ser
size(m070498) % 1440 21, correspondiendo a 21 columnas (variables) y 1440 filas (1440 muestras)
% Se almacena cada variable de interés en una variable de memoria
t=m070498(:,1); % tiempo
t1=m070498(:,2); % temperatura interior 1
h1=m070498(:,3); % humedad 1
t2=m070498(:,4); % temperatura interior 2
h2=m070498(:,5); % humedad 2
v1=m070498(:,6); % ventila 1
v2=m070498(:,7); % ventila 2
c1=m070498(:,8).*m070498(:,9)/100; % calefacción 1
c2=m070498(:,10).*m070498(:,11)/100; % calefacción 2
te=m070498(:,12); % temperatura exterior
dv=m070498(:,13); % dirección viento
vv=m070498(:,14); % velocidad viento
rad=m070498(:,15); % radiación global exterior
m1=m070498(:,20); % malla de sombreo 1
m2=m070498(:,21); % malla de sombreo 2
ll=m070498(:,16); % lluvia
% Se visualizan los valores de las variables de interés de cada invernadero
% INVERNADERO ARABA
% representamos por ejemplo la evolución de la temperatura durante un día

62
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

plot(t,t2)
ylabel('temperatura (ºC)')
xlabel('hora solar (h)')
echo on
pause % pulsa una tecla para continuar
echo off
% para hacerlo más cómodo, podemos utilizar la función
% subplot y ver las variables de interés simultáneamente
figure;
h=subplot(5,2,1);

plot(t,rad,'b') % radiación
title('variables externas') % título
axis([t(1) t(length(t)) min(rad) max(rad)]) % escalado de ejes
ylabel('rad. ext. (W/m2)') % eje y
h=subplot(5,2,3);
plot(t,te,'b')
axis([t(1) t(length(t)) min(te) max(te)])
ylabel('temp')
h=subplot(5,2,5);
plot(t,vv,'b')
axis([t(1) t(length(t)) min(vv) max(vv)])
ylabel('v-vien')
h=subplot(5,2,7);
plot(t,dv,'b')
axis([t(1) t(length(t)) min(dv) max(dv)])
ylabel('d-vien')
h=subplot(5,2,9);
plot(t,ll,'b')
axis([t(1) t(length(t)) min(ll)-.1 max(ll)+.1])
ylabel('lluv')
xlabel('hora solar (h)')
h=subplot(5,2,2);
plot(t,t2,'b')
title('Invernadero ARABA')
axis([t(1) t(length(t)) min(t2) max(t2)])
ylabel('temp')
h=subplot(5,2,4);
plot(t,h2,'b')
axis([t(1) t(length(t)) min(h2) max(h2)])
ylabel('hum')
h=subplot(5,2,6);
plot(t,v2,'b')
axis([t(1) t(length(t)) min(v2) max(v2)])
ylabel('vent')
h=subplot(5,2,8);
plot(t,c2,'b')
axis([t(1) t(length(t)) min(c2) max(c2)])
ylabel('calef')
h=subplot(5,2,10);
plot(t,m2,'b')
axis([t(1) t(length(t)) min(m2)-.1 max(m2)+.1])
ylabel('malla')
xlabel('hora solar (h)')
% si se quieren guardar las variables en un archivo .mat
save m070498
% en el caso de los datos correspondientes al invernadero INAMED se procedería de forma similar

63
Práctica 1. Análisis de datos utilizando Matlab

1.11. Bibliografía

• Moreno, A.; Trabajando con Matlab y la Control System Toolbox; Ed, Ra-ma; Madrid;
España; 1999; 216 pp.
Este libro proporciona una introducción clara y concisa a Matlab y explora su utilización en la
resolución de problemas científicos y de ingeniería. Está orientado a alumnos que tomen su primer
contacto con esta herramienta para resolver problemas de control con el Control System Toolbox. En
esta asignatura no se va a utilizar esta aplicación, pero los capítulos del 1 al 7 de este libro están
dedicados al manejo de Matlab, por lo que pueden servir de referencia a los alumnos. En el capítulo 5
de este libro, se exponen muy brevemente los conceptos básicos de programación de Matlab,
proporcionando una guía de referencia muy visual para que los alumnos la consulten. Si alguno desea
continuar en la línea de control, puede profundizar estudiando los siguientes capítulos.

• García, J.; Rodríguez, J.I.; Brazales, A.; 2001; Aprenda Matlab 6.1 como si estuviera en
primero; E.T.S.I. Industriales; Universidad Politécnica de Madrid; Madrid; España; 113 pp.
Se trata de un manual introductorio de una aplicación como Matlab que, para muchos alumnos, va a
constituir su primer contacto profesional con los computadores y/o con su programación, por lo que
está orientado desde este punto de vista. Comienza con una introducción al entorno de trabajo,
continuando con las operaciones con matrices y vectores, y la descripción del concepto de funciones
de librería y ejemplos de las más utilizadas. El capítulo 6 de este libro se dedica completamente a la
programación en Matlab, describiendo de forma muy profunda las sintaxis de las órdenes básicas de
este lenguaje de programación, así como las estructuras de control resolviendo numerosos ejemplos y
ejercicios. Por otra parte, incluye la entrada y salida de datos, la gestión de archivos, así como las
llamadas a funciones externas y órdenes del sistema operativo. Posteriormente dedica un apartado a la
implementación y utilización de funciones. Finaliza con unas recomendaciones básicas generales de
programación que pueden ayudar a los alumnos. La última sección del libro se dedica a la
representación con gráficos bidimensionale s. Constituye una completa referencia para trabajar con
Matlab, y además como es de carácter gratuito, se recomienda a los alumnos que la descarguen desde
la página web correspondiente y la consulten cuando tengan alguna duda. Existen otras publicaciones
similares como Aprenda Matlab 5.2 como si estuviera en primero, dedicada a la versión previa de la
aplicación y Aprenda Matlab 6.1 como si estuviera en segundo de carácter más avanzado.

• Pérez, C.; Matlab y sus aplicaciones en las ciencias y la ingeniería; Ed. Prentice Hall;
Madrid; España; 2002; 609 pp.
Este libro presenta una profunda revisión acerca de Matlab y sus posibles aplicaciones en el campo
científico y de la ingeniería. Comienza tratando el núcleo fundamental de Matlab y sus aplicaciones
en materias como el análisis numérico, el análisis matemático y el álgebra. A continuación se
analizan algunos de los toolboxes más utilizados en matemáticas (como los dedicados a la
optimización, estadística, etc.) y en ingeniería, haciendo hincapié en los de control. En el capítulo 8
de este libro se encuentra la descripción de Matlab como un lenguaje de programación de alto nivel
que incluye estructuras de datos, instrucciones de control de flujo, gestión de entradas/salidas e
incluso programación orientada a objetos. Describe el editor de texto que incluye Matlab y resuelve
una amplia serie de problemas para introducir la sintaxis de las principales órdenes del lenguaje de
programación. Al final de cada capítulo se presentan ejemplos prácticos totalmente resueltos que
aclaran los conceptos y amplían el campo de aplicación de Matlab. Se trata de un libro muy completo
de consulta.

• The MathWorks Inc.; 2002; Using Matlab. The Language of Technical Computing; USA; 1188
pp

Este libro es el manual de la herramienta Matlab que suministra la propia empresa que la ha creado
MathWorks. Es un manual de referencia donde se describe profundamente cómo hay que trabajar con
Matlab, así como el funcionamiento y la sintaxis de cada una de las funciones elementales que incorpora

64
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

la herramienta. Es una guía muy completa en la que se incluyen todos los aspectos relacionados, incluso
consejos para optimizar el código generado. Toda esta información se incluye en un archivo formato pdf
que el alumno puede descargarse en la página web dedicada a esta asignatura.

65
Práctica 2
DISEÑO E IMPLEMENTACIÓN DE
MODELOS DE SISTEMAS
DINÁMICOS Y SIMULACIÓN DE
PROCESOS UTILIZANDO SIMULINK

PRÁCTICA 2. DISEÑO E IMPLEMENTACIÓN DE MODELOS DE


SISTEMAS DINÁMICOS Y SIMULACIÓN DE PROCESOS UTILIZANDO
SIMULINK
Justificación
A la hora de diseñar un sistema de control para un determinado proceso es necesario conocer el
comportamiento dinámico del mismo. Para ello hay que obtener un modelo del mismo que
relacione las dinámicas existentes entre las variables a controlar y las variables de entrada (tanto
perturbaciones como variables de control).
Con los términos modelado y simulación se designa al conjunto de actividades asociadas con la
construcción de modelos de sistemas del mundo real y su ejecución en un computador. La
simulación digital relaciona modelos y computadores, refiriéndose al proceso de imitación de
aspectos importantes del comportamiento del sistema mediante el diseño, construcción y
experimentación con el modelo del sistema. Este proceso es similar al de experimentación que
llevan a cabo los científicos en un laboratorio con el que pretenden aumentar la comprensión de
alguna teoría para su validación y empleo posterior, y esto es precisamente lo que van a realizar
los alumnos en esta práctica (cuando comienza ya se ha impartido parte del tema 2 dedicado al
modelado y análisis de sistemas dinámicos, por lo que el alumno ya ha adquirido los conceptos
básicos y necesarios).
El objetivo principal de la misma es que el alumno sea capaz de diseñar e implementar modelos
de determinados procesos o sistemas, realizando distintas experiencias con ellos para analizarlos
y obtener sus propias conclusiones.
Objetivos
• Mostrar las ventajas de utilizar herramientas informáticas para la simulación de sistemas
dinámicos, concretamente Simulink basada en la representación en el dominio de Laplace que

73
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

es una herramienta que se utiliza para modelar, analizar y simular sistemas dinámicos bajo el
entorno Matlab.
• Mostrar las dos fases fundamentales del proceso de simulación: la definición y construcción
del modelo y, una segunda, correspondiente a su análisis y a la simulación del modelo.
• Estudiar las repuestas ante entradas en escalón de sistemas físicos que se pueden representar
por modelos de primer y segundo orden, así como observar el efecto de cada uno de los
parámetros que caracterizan a estos tipos de sistemas.
• Obtener los parámetros característicos de sistemas de primer y segundo orden a partir de su
respuesta ante una entrada en escalón.
• Modelar sistemas dinámicos reales mediante ecuaciones diferenciales de primer y segundo
orden basándose en principios físicos, obteniendo las ecuaciones diferenciales en el dominio
del tiempo y su representación en el dominio de Laplace. Además se deben implementar en
Simulink y realizar distintas simulaciones para analizar su respuesta en distintas situaciones.
• Obtener modelos empíricos de sistemas dinámicos con respuesta similar a la de uno de primer
orden con retardo a partir de datos de entrada/salida obtenidos con el método de la curva de
reacción.
• Analizar la estabilidad absoluta y relativa de sistemas dinámicos.
• Analizar los efectos sobre la respuesta transitoria de la adición de polos y ceros a la función
de transferencia del sistema dinámico que se estudia.
• Analizar el efecto de incluir no linealidades como la saturación y la zona muerta al sistema a
estudiar.
• Al finalizar la práctica, el alumno deberá ser capaz de diseñar e implementar en Simulink un
modelo (basándose en principios físicos o en métodos empíricos) de un sistema dinámico y
realizar simulaciones para analizar e interpretar su respuesta ante diversas situaciones como
distintas señales de prueba o modificación de la función de transferencia.

Material necesario
Para realizar esta práctica es necesario disponer del siguiente material:

• Computador personal.
• Sistema operativo Windows 2000.
• Programa Matlab 6.5.
• Herramienta de simulación de sistemas dinámicos Simulink.

Contenidos y temporización

La duración de esta práctica será de 4 horas (2 sesiones de 2 horas cada una).


Esta práctica se ha planteado para que los alumnos aprendan a diseñar e implementar modelos de
sistemas dinámicos, obteniendo los parámetros característicos de cada uno de ellos y
sometiéndolos a distintas situaciones. Para cumplir este objetivo se proponen una serie de
ejercicios independientes unos de otros de forma que se analice la respuesta de diferentes
sistemas de primer y segundo orden a partir de funciones de transferencia teóricas dadas y, a
continuación, se propone un ejemplo real de sistema agrícola a modelar de forma que se
obtengan funciones de transferencia similares, tanto para modelos diseñados basándose en
principios físicos como en métodos empíricos. Evidentemente, la práctica hay que comenzarla
describiendo las principales características de la herramienta Simulink tanto para la
implementación de modelos como la realización de simulaciones con ellos, mostrando la
versatilidad y utilidad que presenta para el modelado, simulación y análisis de sistemas

74
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

dinámicos, así como su facilidad para implementar modelos mediante su entorno gráfico ya que
sólo hay que seleccionar iconos con el ratón e interconectarlos convenientemente. De esta forma,
los contenidos de la práctica 2 y los ejercicios que deben resolver los alumnos serán los
siguientes:

2.1. Tutorial sobre Simulink .


2.2. Utilización de la ayuda de Simulink .
2.3. Análisis de la respuesta de sistemas de primer orden ante una entrada en escalón.
2.3.1. Análisis del parámetro característico ganancia estática.
2.3.2. Análisis del parámetro característico constante de tiempo.
2.3.3. Normalización de la representación de la función de transferencia del sistema.
2.3.4. Modelado y simulación de la altura de un tanque de riego en función del estado de la válvula de salida.
2.4. Análisis de la respuesta de sistemas de sistemas de segundo orden ante una entrada en escalón.
2.4.1. Análisis de la respuesta ante una entrada en escalón y obtención de los tres parámetros característicos.
2.4.2. Análisis de la estabilidad absoluta y relativa de forma gráfica y utilizando criterios analíticos.
2.4.3. Obtención de las especificaciones de la respuesta transitoria de un sistema de segundo orden
subamortiguado gráfica y analíticamente.
2.4.4. Modelado y simulación del caudal de salida de una asociación en serie de dos tanques en función del
estado del caudal de entrada.
2.5. Análisis de la adición de ceros y polos en la función de transferencia de un sistema dinámico.
2.6. Análisis de los efectos de no linealidades sobre la respuesta temporal de un sistema.
2.7. Obtención de un modelo empírico que relacione la temperatura interior de un invernadero con el cambio en la
apertura de la ventilación natural a partir de datos obtenidos en un ensayo de curva de reacción.
Tabla 2.1. Contenidos, ejercicios y temporización de la práctica 2

2.1. Sistema, modelo y simulación

El diseño de un sistema de control para un determinado proceso requiere conocer el


comportamiento dinámico del mismo. Para ello hay que diseñar e implementar un modelo del
sistema que consiste en la descripción matemática de las relaciones dinámicas existentes entre
las variables a controlar y las variables de entrada, tanto perturbaciones como variables de
control. La principal ventaja de la utilización de un modelo radica en que permite la evaluación
del resultado de una decisión del mundo real sin llegar a tomar efectivamente la misma.
Disponiendo de un modelo dinámico se pueden analizar y evaluar varias cuestiones claves en el
diseño de un sistema de control: emparejamiento de variables para formar lazos de control,
límites de la acción de control y evaluación de la dificultad de control (signo y sensibilidad de la
respuesta, velocidad de respuesta, forma de la respuesta y sensibilidad a cambio en el proceso).

Con los términos modelización y simulación se designa al conjunto de actividades asociadas con
la construcción de modelos de sistemas del mundo real y su simulación en un computador:

• Un sistema es la parte del mundo real por la que se muestra interés, compuesta por partes
interrelacionadas.
• Un modelo es una representación matemática de un sistema que contiene un conjunto de
instrucciones para generar datos del comportamiento del sistema a estudiar.
• La simulación relaciona modelos y computadores. Se refiere al proceso de imitación de
aspectos importantes del comportamiento del sistema mediante el diseño, construcción y
experimentación con el modelo del sistema. Este proceso es similar al de experimentación
que llevan a cabo los científicos en un laboratorio con el que pretenden aumentar la
comprensión de alguna teoría para su validación y empleo posterior.

75
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

Las relaciones entre los tres elementos se resumen en la figura 2.1.

MODELO
MODELIZACIÓN SIMULACIÓN
• Relaciona • Construir modelo
• Valida • Experimenta

SISTEMA COMPUTADOR

Figura 2.1. Sistemas, modelos y simulación

2.2. Función de transferencia de un sistema dinámico

Si las condiciones iniciales de un sistema representado por una ecuación diferencial son nulas,
cuando se le aplica la transformada de Laplace existe una relación entre la entrada y la salida del
sistema que se conoce como función de transferencia. La función de transferencia de un sistema
es la relación que existe entre la transformada de Laplace de la salida con respecto a la
transformada de Laplace de la entrada. Generalmente se denota por G(s) .

U(s) Y(s)
Y (s)
G(s) Y ( s ) =U ( s ) ⋅ G ( s ) ⇒ G ( s ) = (2.1)
U (s)

Por ejemplo, sea un sistema modelado por la siguiente ecuación diferencial:

d 2 y( t ) dy (t )
+6 + 8 y( t ) = u (t ) con condiciones iniciales nulas (2.2)
dt 2 dt

Utilizando la transformada de Laplace, resulta que:

(2.3)
s 2Y ( s ) − s y (0) − y ' (0) + 6 s Y ( s) − 6 y (0) + 8 Y ( s ) =U ( s)

Como las condiciones iniciales son nulas:

( s 2 + 6 s + 8) Y ( s) = U ( s ) (2.4)

Y (s) 1
G( s ) = = 2
U (s) s + 6 s + 8

Al denominador de la función de transferencia de un sistema de le denomina polinomio


característico, siendo el orden del sistema el grado de este polinomio. A las raíces del polinomio
característico se les conoce como polos, y a las del numerador de la función de transferencia
como ceros.

76
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

2.3. Comportamiento de sistemas dinámicos


2.3.1. Señales de prueba
Para determinar la respuesta de un sistema, se utilizan una serie de señales de prueba y en
función de la respuesta a estas señales de prueba, se pueden deducir las principales propiedades
del sistema. Las señales de prueba más comunes son las que se muestran en la tabla 2.2.

Impulso Escalón Rampa


∞ ,t = 0  0 ,t < 0 0 ,t < 0
δ( t )=  = lim P( t ) u o ( t )=  ro ( t ) = 
 0 ,t ≠ 0 h→∞ U , t ≥ 0 t ,t ≥0
P(t) u o(t) ro(t)

1/h U

t x t

Tabla 2.2. Principales señales de prueba

La más típica de las entradas es el escalón, que se puede implementar por ejemplo, mediante la
apertura instantánea de válvulas de un sistema de calefacción que se mantiene durante un
periodo de tiempo, por lo que es muy habitual estudiar la respuesta de sistemas a un escalón de
amplitud, siendo su transformada de Laplace la siguiente:

 0 ,t < 0 U
u (t ) =  ⇒ Laplace ⇒ U ( s ) = (2.5)
U , t ≥ 0 s

2.3.2. Sistemas de primer orden

En función de la ecuación diferencial que modela el sistema o del orden del polinomio
característico de la función de transferencia se pueden clasificar a los sistemas. Si la ecuación
diferencial es de primer orden (tiene una sola derivada primera) o el orden del polinomio
característico es 1, se dice que el sistema es de primer orden cuya forma general es:

u(t) y(t)
Sistema
de orden 1

dy (t ) Y ( s) k
τ + y (t ) = k u (t ) ⇒ Laplace ⇒ τ s Y ( s) + Y ( s ) = k U ( s ) ⇒ G ( s) = = (2.6)
dt U ( s ) 1 +τ s

Como se puede observar, el orden del polinomio característico es uno.

Utilizando la función de transferencia de un sistema de primer orden, se puede observar que la


respuesta es una función exponencial, tal y como se demuestra a continuación:

77
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

 
k k U A B kU kUτ 1 1 
Yrp ( s ) = U (s) = = + = − = kU  − 
1 +τ s 1+ τ s s s 1 + τ s s 1+ τ s s 1 
 +s  (2.7)
 τ 
 −
t 
 
⇒ Laplace inversa ⇒ y rp (t ) = kU 1 − e τ 
 
 
Gráficamente:
entrada u(t)
1

0.9

0.8
salida y(t)
yrp0.7
0.6

0.5 U
0.63yrp
0.4
Y rp=kU
0.3

0.2

0.1

0
0 τ 5 10 15
tiempo (s)
Figura 2.2. Respuesta de un sistema de primer orden a un escalón

Como se puede observar en la figura 2.2, esta respuesta viene determinada por dos parámetros, k
y τ, que poseen un significado físico:

• k se denomina ganancia estática del sistema, que proporciona una medida de la amplitud de
la respuesta del sistema en función de la amplitud de la entrada al mismo. Es el cociente
entre el cambio experimentado por la salida una vez alcanzado el régimen permanente final
(kU) y el cambio efectuado en la variable de entrada (magnitud del escalón, U).
• τ se denomina constante de tiempo, que es el tiempo que tarda el sistema en alcanzar el 63%
del valor final de la señal de salida desde que comienza a variar el sistema frente a la entrada
en escalón. Es una medida de la rapidez de respuesta del sistema a una señal escalón.

Por otra parte, la respuesta de un sistema a una determinada señal puede considerarse como la
suma de dos componentes:

• Régimen permanente. Respuesta del sistema cuando alcanza un comportamiento constante o


periódico.
• Régimen transitorio. Respuesta inicial del sistema hasta que alcanza el régimen permanente.

En la figura 2.3 se muestran distintas respuestas temporales típicas de un sistema de primer


orden a un escalón de amplitud unidad con distintas ganancias y constantes de tiempo.

78
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

Figura 2.3. Respuesta de distintos sistemas de primer orden a un escalón

2.3.3. Sistemas de segundo orden


Cuando la ecuación diferencial que describe al sistema tiene una derivada doble o el polinomio
característico de la función de transferencia es de orden 2, se dice que el sistema es de segundo
orden. Existen dos tipos de sistemas de segundo orden:

• Sistemas de segundo orden constituidos por dos sistemas de primer orden en serie, como por
ejemplo dos depósitos de acumulación de líquido en serie.
• Sistemas de segundo orden intrínsecos, que son aquellos en los que su dinámica inherente es
de segundo orden, como por ejemplo una válvula neumática.
La función de transferencia general de un sistema de este tipo viene dada por:

d 2 y (t ) dy (t )
2
+ a1 + a 2 y (t ) = b u (t ) ⇒ Laplace ⇒ s 2 Y ( s) + a1 s Y (s ) + a 2 Y ( s) = b U ( s)
dt dt (2.8)
Y ( s) b
G (s ) = = 2
U ( s) s + a1 s + a 2

Como se puede observar, el orden del polinomio característico es dos.


La respuesta de un sistema de segundo orden a un escalón puede ser de dos tipos:

• No acotada. Cuando el sistema no alcanza un punto de equilibrio después de aplicarle una


señal de entrada. Los sistemas que exhiben este tipo de comportamiento aún cuando la
entrada aplicada no es divergente se llaman inestables. En la figura 2.4(a) se puede observar
la respuesta de un sistema inestable cuando se le aplica un escalón unidad como señal de
entrada.
• Acotada. El sistema llega a un equilibrio cuando se le aplica una señal de entrada. En función
de las características del transitorio del sistema existen tres tipos:
o Sobreamortiguado. Respuesta sin oscilaciones (figura 2.4(c)).
o Críticamente amortiguado. Máxima velocidad sin oscilaciones (figura 2.4(d)).
o Subamortiguado. Respuesta con oscilaciones (figura 2.4(b)).

79
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

10 1.5

0 1

-5

-10 0.5

-15

0
-20 0 10 20 30 40 50 60 70
0 5 10 15

(a) Inestable (b) Subamortiguado


1 1

0.9 0.9

0.8 0.8

0.7 0.7

0.6 0.6

0.5 0.5

0.4 0.4

0.3 0.3

0.2 0.2

0.1 0.1

0 0
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70

(c) Sobreamortiguado (d) Críticamente amortiguado

Figura 2.4. Tipos de respuestas a un escalón de un sistema de segundo orden

Al igual que ocurre con los modelos de primer orden, existen unos parámetros que definen los
modelos de segundo orden:

• Ganancia estática, k. El significado es similar que en un sistema de primer orden.


• Frecuencia natural no amortiguada, ωn . Corresponde a la frecuencia con la que oscilaría el
sistema si no existiera amortiguamiento.
• Coeficiente de amortiguamiento, δ. En función de su valor se puede deducir si el sistema es
inestable, críticamente amortiguado, sobreamortiguado o subamortiguado (en este caso
además su valor determina la amplitud de las sobreoscilaciones).
o Si δ≤0 entonces el sistema es inestable.
o Si 0<δ<1 entonces el sistema es subamortiguado y presenta sobreoscilaciones.
o Si δ=1 entonces el sistema es críticamente amortiguado.
o Si δ>1 entonces el sistema es sobreamortiguado.
Para identificar estos parámetros en base a la función de transferencia o la ecuación diferencial
que describe al sistema hay que utilizar las siguientes ecuaciones:

d 2 y (t ) dy( t )
+ a1 + a 2 y (t ) = b u (t )
dt 2 dt
 b = kω n2 (2.9)
Y (s) b kω n2 
G( s ) = = 2 = 2 ⇒  a1 = 2δωn
U ( s ) s + a1 s + a 2 s + 2δωn s + ω n2 a = ω 2
 2 n

80
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

2.3.4. Análisis dinámico de respuestas subamortiguadas


El régimen transitorio de un sistema de control práctico presenta con frecuencia una respuesta
subamortiguada con oscilaciones previas a alcanzar el estado estacionario. El análisis de este tipo
de respuestas es común realizarlo en base a un conjunto de características (ver figura 2.5):
• Tiempo de subida: es el tiempo requerido para que la respuesta del sistema pase del 10% al
90% de su valor final en régimen permanente (o bien desde el 0 al 100%).
• Sobreoscilación máxima (sobreoscilación primera): máximo valor de pico de la respuesta
del sistema. Su cálculo se realiza en % como:
ymax − y∞ (2.10)
SO(%) = y∞
× 100 %

donde y∞= yrp representa el valor alcanzado en régimen permanente e ymax la máxima
amplitud de la respuesta.
• Tiempo de pico: tiempo que transcurre hasta alcanzar la máxima sobreoscilación.
• Tiempo de establecimiento: tiempo necesario para que la salida del sistema se encuentre en
un rango ([-x,x]) típicamente del 3% ó 5% alrededor del valor final.
Las características presentadas anteriormente poseen una relación directa con los parámetros que
caracterizan a un sistema de segundo orden de la siguiente forma:

2
SO(%) = 100 e − δπ / 1− δ te = 3
δω n
t p = ωπ
d

π −ϕ
(2.11)
ts = ωd
δ = cos ϕ ω d = ω n (1 − δ 2 )

Evaluación dinámica
1.6
sobreoscilación primera SO (S1)

1.4
respuesta a escalón

1.2 sobreoscilación segunda S2


y rp+x
1
yrp -x
0.8

0.6

0.4

0.2

0
0 5 10 15
ts tiempo de subida tiempo (s)
tp tiempo de pico
te tiempo de establecimiento

Figura 2.5. Parámetros temporales característicos de respuesta subamortiguada

81
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

2.3.5. Estabilidad absoluta y relativa

Haciendo uso de lo estudiado en los apartados anteriores, es posible conocer a priori una serie de
características que definen el comportamiento dinámico de un determinado sistema. Sin
embargo, al trabajar con sistemas dinámicos la principal característica que se debe conocer es, si
el sistema es estable o inestable.

Se entiende como estabilidad absoluta a la medida que permite conocer si un sistema es estable
o inestable, y estabilidad relativa, a aquélla que da una indicación sobre cómo de estable o
inestable es el sistema. A partir de la función de transferencia de un sistema, la estabilidad
absoluta del mismo se conoce calculando las raíces del polinomio característico. Si todas las
raíces poseen parte real negativa el sistema es estable, y si alguna de ellas tiene parte real
positiva el sistema es inestable. Dentro de la estabilidad, un sistema será menos estable
(relativamente hablando) cuanto más se acerquen sus raíces al eje imaginario (0±xj). La figura
2.6 muestra un conjunto de ejemplos donde se puede ver mediante la observación de la respuesta
a un escalón la variación de la estabilidad del sistema en función de la localización de los polos
del mismo.

Figura 2.6. Análisis de estabilidad en función de la localización de los polos

2.4. Obtención de modelos a partir de datos experimentales. Método de la


curva de reacción
Existen varias razones para obtener un modelo de un sistema dinámico a partir de datos
experimentales obtenidos con experiencias realizadas en el propio sistema:

82
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

• El mejor de los modelos teóricos es sólo una aproximación de la realidad. Generalmente, no


se pueden tener en cuenta todos los parámetros que afectan a los sistemas y se realizan una
serie de aproximaciones.
• En algunas ocasiones el modelo teórico es muy complicado; en otras puede que no se conozca
muy bien la naturaleza del sistema y en otras, el sistema puede trabajar de distintas formas por
lo que habría que disponer de un modelo teórico para cada una de ellas y es preferible trabajar
con datos medidos.

Para obtener un modelo empírico que caracterice adecuadamente el comportamiento dinámico de


un proceso, es necesario seguir un procedimiento sistemático que consta básicamente de los
siguientes pasos:

1. Diseñar las experiencias a realizar con el sistema.


2. Ejecutar las experiencias programadas en las condiciones adecuadas.
3. Determinar el tipo de modelo adecuado a la vista de lo observado en las experiencias.
4. Estimar los parámetros característicos del sistema.
5. Evaluar el modelo.
6. Verificar el modelo.

Por lo que se ha expuesto, el diseño experimental requiere un conocimiento previo, aunque sea
aproximado, de la respuesta dinámica del sistema. Existen varias metodologías para obtener
modelos empíricos. En este apartado se va a estudiar la generación de modelos a partir de datos
transitorios resultantes de introducir al sistema señales de prueba tipo impulso o escalón, ya que
estos datos son rápidos y fáciles de obtener. Además, son representativos de las señales naturales
a las cuales está expuesto un sistema, por lo que son fiables para su posterior utilización, por
ejemplo, en sistemas de control.
Para sistemas en los que se observa una respuesta de tipo sigmoidal (en “s” tendida) a una
entrada escalón, es decir, se observa un comportamiento sobreamortiguado, se puede utilizar el
método denominado curva de reacción. Consiste en introducir un escalón de amplitud U en
bucle abierto al sistema que se desea modelizar y asimilar la salida a la de un sistema de primer
orden con retardo.

Sistema con retardo


Un sistema con retardo es aquél cuya respuesta a una entrada no es inmediata, es decir, empieza a
modificar la salida un determinado tiempo (tiempo de retardo) después de que se haya producido la
entrada al mismo.

Según las propiedades de la transformada de Laplace, un desplazamiento en el tiempo (tiempo


de retardo, t r) equivale a una exponencial en Laplace:

L[ f (t − t r ) u o (t − tr )]= e − st r F (s) (2.12)

La de un sistema de un sistema de primer orden con un tiempo de retardo t r sería:

Y (s) k e−st r
G (s ) = = (2.13)
U (s) 1 +τ s

83
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

La respuesta de este sistema a un escalón u(t) de amplitud U se muestra en la siguiente figura


2.7.

entrada u(t)
1

0.9

0.8
salida y(t)
yrp 0.7
0.6

0.5
U
0.63yrp
0.4
Yrp=kU
0.3

0.2

0.1

0
0 tr τ 5 10 15
tiempo (s)
Figura 2.7. Respuesta a un escalón de un sistema de primer orden con retardo

La aplicación de este método requiere llevar a cabo las siguientes acciones:

1. Llevar al proceso a las condiciones nominales de operación en régimen permanente.


2. Ejecutar un cambio en escalón de la señal que activa el elemento que influye en el sistema.
3. Medir la evolución de la variable de salida de interés hasta que alcance un nuevo
permanente.
4. Realizar los cálculos apropiados para obtener los parámetros del modelo, es decir, determinar
el valor de los siguientes parámetros:
• Ganancia estática, k. Es el cociente entre la variación que se ha producido en la salida del
sistema desde que se ejecuta el cambio en la entrada hasta que alcanza el régimen
permanente y el incremento en la señal de entrada.

∆ y rp
k= (2.14)
U

• Tiempo de retardo, t r. Es el tiempo transcurrido desde que se introduce el cambio en la


entrada y el momento que la salida del sistema empieza a evolucionar (modificar su valor).
• Constante de tiempo, τ. Es el tiempo transcurrido desde que la salida comienza a
evolucionar (no se incluye el retardo) hasta que alcanza el 63.2 % del valor final, es decir,
del régimen permanente.

2.5. Implementación de modelos utilizando Simulink

2.5.1. ¿Qué es Simulink?

Simulink es un programa orientado a la simulación de sistemas dinámicos. Como extensión del


paquete Matlab, Simulink posee toda la funcionalidad de propósito general de Matlab,
incorporando además muchas utilidades específicas para los sistemas dinámicos. La elaboración
de modelos de sistemas es muy cómoda y fácil mediante la selección de iconos con el ratón y su

84
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

conveniente conexionado. Estos iconos se encuentran en ventanas desplegables. En su uso se


pueden distinguir dos fases fundamentales:
• Definición del modelo y construcción del modelo.
• Análisis del modelo y simulación del modelo.
En esta documentación sólo se hará referencia a los aspectos básicos de interés para la asignatura
control por computador.
2.5.2. Comenzando a utilizar Simulink. Crear un nuevo modelo
Para ejecutar Simulink, existen dos posibilidades: una vez ejecutado Matlab escribir la orden
simulink en la línea de órdenes y pulsar Intro, o pulsar desde la barra de herramientas de Matlab
el siguiente icono . Haciendo uso de cualquiera de las dos opciones se abrirá una ventana
donde se muestran las distintas bibliotecas de bloques de Simulink, tal y como se muestra la
figura 2.8. Como se puede observar en la figura la ventana consta de cinco partes:
• Navegador de bibliotecas: corresponde a la parte izquierda de la imagen y muestra las
distintas biblicotecas que posee Simulink: Simulink (biblioteca estándar), Aerospace
BlockSet, Control System toolbox, Simulink extras, etc.
• Selector de bloques: zona derecha de la ventana donde se muestran los distintos bloques que
posee la biblioteca que ha sido seleccionada desde el navegador de bibliotecas.
• Zona de ayuda: es la parte de la ventana que se encuentra en la parte superior de las dos
zonas comentadas anteriormente. Tiene como fin mostrar un conjunto de mensajes de
descripción sobre los distintos bloques y bibliotecas.
• Barra de herramientas: se encuentra justamente encima de la zona de ayuda y desde ella es
posible crear un nuevo archivo de trabajo, abrir uno existente o buscar un determinado
bloque o biblioteca (Find).
• Menú de opciones: muestra las opciones típicas de File, Edit, View y Help. De todas ellas, las
más importantes son File que permite crear/abrir/cerrar un archivo de trabajo o una biblioteca
y Edit desde donde se puede añadir el bloque seleccionado al archivo de trabajo activo o
buscar un determinado bloque.

Figura 2.8. Bibliotecas de bloques de Simulink

85
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

Para crear un nuevo archivo de trabajo se puede realizar de dos formas distintas, seleccionando
la opción del menú File→ New→ Model o bien pulsando el icono desde la barra de
herramientas. Al realizar cualquiera de las dos acciones se abrirá una ventana vacía en la cual se
procederá a la construcción del modelo de un sistema. La nueva ventana se denomina Untitled
(sin título). Se puede asignar un nombre cuando se almacene el archivo.

2.5.3. Definición del modelo

Una vez creado el nuevo archivo y conocido el modelo que se desea diseñar, el siguiente paso a
realizar es implementar dicho modelo haciendo uso de los bloques de Simulink. El modo de
trabajar con los bloques es seleccionar la biblioteca deseada desde el navegador de bibliotecas, y
arrastrar con el ratón el bloque deseado desde el seleccionador de bloques hasta el nuevo archivo
de trabajo. Los bloques se copian desde la ventana del subsistema correspondiente a la ventana
del archivo de trabajo pulsando el botón izquierdo del ratón y manteniéndolo pulsado hasta la
posición final donde se desee colocar el bloque. Las bibliotecas de bloques son objeto de una
descripción más detallada en próximas secciones. Los bloques se pueden mover una vez situados
en la ventana de trabajo con el mismo procedimiento arriba descrito con la diferencia de que
ahora los bloques se trasladan y no se copian.
Una vez que los bloques han sido colocados, hay que trazar líneas para interconectarlos,
moviendo el icono del ratón sobre el puerto de un bloque y presionando el botón izquierdo.
Cada bloque tiene una ventana asociada para modificar los distintos parámetros. Si se pulsa dos
veces sobre los bloques se podrá acceder a estas ventanas. Se pueden realizar las pertinentes
modificaciones en sus parámetros internos para acomodarlos al sistema objeto de estudio.

Se pueden borrar los distintos componentes que aparecen en la ventana de trabajo con el menú
Edit de la ventana Simulink (la ventana correspondiente al modelo) o pulsando la tecla Supr,
habiendo seleccionado previamente dicho componente con el ratón.
Para guardar el sistema que se ha modelizado, seleccione la opción Save en el menú File.
2.5.4. Simulación del modelo
Una vez implementado el modelo deseado, antes de comenzar la simulación hay que ajustar unos
determinados parámetros de simulación que se encuentran en el menú Simulation→ Simulation
Parameters (desde la ventana del modelo) y que se muestran en la figura 2.9.

Figura 2.9. Ventana de parámetros de simulación

86
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

De todas las etiquetas que se observan en la ventana, la de mayor interés para los objetivos de
este texto es la primera de ellas, Solver. De todas las opciones interesan sobre todo las dos
primeras, que permiten modificar el tiempo de inicio de simulación (Start time) y el tiempo final
de simulación (Stop time). El resto de opciones que se encuentran en la parte inferior permiten
modificar el algoritmo de integración numérica, la tolerancia de error y tamaños de paso máximo
y mínimo de integración numérica.

Tras configurar las opciones adecuadamente, para arrancar la simulación se selecciona la opción
Start del menú Simulation o bien se pulsa el icono de la barra de herramientas. La simulación
finaliza cuando el tiempo de parada (Stop time) fijado anteriormente ha sido alcanzado.
Alternativamente, se puede detener la simulación en curso cuando se desee eligiendo Stop en el
menú Simulation o pulsando el icono de la barra de herramientas. Para observar el
comportamiento del sistema se puede utilizar un bloque Scope (Sinks), que muestra gráficamente
la evolución de la salida de un modo básico. También cabe la alternativa de utilizar el bloque To
Workspace de la misma biblioteca para enviar datos al espacio de trabajo de Matlab y
representar el resultado empleando funciones gráficas de Matlab, que permiten realizar estas
mismas operaciones.

2.5.5. Corrección del modelo

Posiblemente el sistema no responderá como se pretendía en un primer intento. Si es así, se


podrán modificar conexiones, añadir o suprimir bloques o alterar parámetros internos de bloques.
Se grabará al versión corregida y se podrá simular nuevamente. Se pueden repetir iterativamente
los pasos de Definición y de Simulación del modelo tantas veces como sea necesario hasta lograr
un comportamiento de la salida que se adecue a lo esperado.

2.6. Bibliotecas de bloques de Simulink


Simulink contiene una serie de bibliotecas con bloques predefinidos para diversas aplicaciones.
Se incluyen a continuación tanto la visualización de los iconos correspondientes a algunas
bibliotecas como unas tablas que resumen las funciones de cada bloque. Se muestran en negrita y
se comentan con detenimiento los bloques que son de interés para la asignatura (no
describiéndose los que no lo son) y que pertenecen a la biblioteca estándar denominada Simulink.
La biblioteca Discrete correspondiente a elementos para simulación de sistemas en tiempo
discreto se analizará en la práctica 6.

2.6.1. Señales de entrada (Sources)

Constant. Introduce un valor constante como entrada (independiente


del tiempo), que se introduce como parámetro.

Signal Generator. Genera varias formas de onda: senoidal, cuadrada,


en sierra y ruido. Parámetros: amplitud máxima de onda y la
frecuencia (en rad/s).

Ramp. Genera una señal en forma de rampa (aumenta a velocidad


constante).

Sine Wave. Genera una señal senoidal. Parámetros: amplitud,


frecuencia y fase de la señal generada.

87
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

Step. Genera una función escalón entre dos valores definidos en un


momento determinado. Parámetros: el tiempo en el que comienza el
escalón, y los valores inicial y final de la amplitud.

Pulse Generator. Generador de pulsos de amplitud y frecuencia


variable (parámetros a introducir).

Clock. Muestra la hora del sistema en una ventana. Puede servir


también como bloque de entrada para otro bloque.

From File. Lee datos de entrada desde un archivo (.mat) que contiene
una matriz de al menos dos filas. La primera fila es el vector de
tiempos y cada fila siguiente hace referencia a una variable distinta.
Parámetro: nombre del archivo fuente.

From Workspace. Lee datos de entrada desde una matriz. Formato y


requerimientos similares a los del bloque anterior, pero cambiando
filas por columnas, es decir, en este caso el vector temporal
corresponde con la primera columna. Parámetro: nombre de la matriz.

Random Number. Genera números aleatorios.

2.6.2. Señales de salida (Sinks)

Scope. Muestra las señales durante la simulación (señales de salida


del bloque al que esté conectado). Con este tipo de ventanas se
puede ver la señal correspondiente al punto que se marque con el
ratón. Permite varias señales de entrada, que se dibujarán
simultáneamente. Parámetros: rangos o escalas horizontal y vertical.
El rango horizontal se especifica en segundos. Se puede limitar el
máximo número de puntos que se muestran.

XY Graph. Gráfico XY donde la primera entrada se toma como eje


X y las siguientes como eje Y.

Display. Muestra datos de salida de un bloque en forma numérica.

To File. Escribe los datos de simulación en un archivo (.mat) que


almacena los datos en una matriz con el nombre que se especifique.
La primera fila de la matriz corresponde a un vector con valores del
tiempo de simulación. El resto de filas contienen los datos que se
han puesto como entrada al bloque. Como se observa, el formato es
similar al del bloque From File, lo que garantiza la portabilidad.
Parámetros: el nombre del archivo (.mat) y el nombre de la matriz
donde se desea que se guarden los datos. Una vez introducido, el
nombre del archivo aparecerá sobre el bloque en pantalla.

88
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

To Workspace. Escribe los datos de simulación en una matriz.


Cuando se selecione esta opción en el bloque la matriz, cuyo
nombre aparecerá en la caja, tendrá el mismo número de columnas
que el vector de datos de entrada al bloque (cada canal de datos se
escribirá en una columna). Por tanto, cada paso de simulación
escribe una fila en la matriz conteniendo el estado del vector de
entradas al bloque. Parámetros: el nombre de la variable (matriz)
donde se va a guardar el resultado de la simulación y el máximo
número de filas (periodos de muestreo) permitidos.

Stop Simulation. Para la simulación cuando recibe una entrada


distinta de cero.

2.6.3. Sistemas lineales continuos (Continuous)

Integrator. Integra una señal. Parámetros: valor inicial del


integrador (constante o variable).

Transfer Fcn. Función de transferencia. Hay que especificar los


vectores del numerador y denominador, que se tratan en potencias
descendentes de s (como en MATLAB). Por ejemplo, si se
introduce [1 2 3] equivale a s2 +2s+3. El orden del polinomio del
denominador debe ser superior o igual al del numerador.

Derivative. Bloque que tiene como salida la derivada respecto al


tiempo de la señal de entrada. La precisión de los resultados
depende del tamaño de los intervalos de tiempo tomados en la
simulación. Por ello es importante fijar en los parámetros de
simulación el maximum step size a un valor pequeño.
Transport Delay. Retarda la señal de entrada un tiempo
determinado. Parámetros: el retardo puro (Time delay) y la entrada
inicial (Initial input), que será la salida del bloque hasta que la
simulación supere el retardo puro.
Variable Transport Delay. Su función es la misma que la del
bloque anterior. Sin embargo, en lugar de tener una única entrada
(señal a la que se desea a aplicar el retardo) posee otra para el valor
de retardo. De esta forma es posible establecer el valor del retardo
de manera variable y de forma externa al bloque.

2.6.4. No linealidades (Discontinuos)


Saturation. Saturación de la señal de entrada. Parámetros: Lower
output limit , límite más bajo de la salida; Upper output limit, límite
más alto de la salida. Entre dichos valores la señal de entrada no se
altera. Cuando se sobrepasa el límite superior, la salida del bloque
se fija a ese valor (lo mismo pasa con el límite inferior).
Dead zone. Región de salida nula (zona muerta). Parámetros:
comienzo y fin de la zona muerta. Si la entrada es mayor que el
valor mínimo y menor que el valor máximo, la salida es nula.

89
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

Cualquier valor de la señal de entrada superior al máximo de la zona


muerta produce una salida igual al valor de entrada menos el citado
máximo de la zona muerta. Idem en caso inferior.

Relay. Satura la señal de salida entre dos valores. Si el bloque está


activado, se mantiene activado, al valor definido en Output when
on, hasta que la entrada cae por debajo de un valor preespecificado
(Input for off). Cuando el bloque no está activado, se mantiene
desactivado, al valor definido en Output when off, hasta que la
entrada supera el valor fijado por el parámetro (Input for on).
2.6.5. Operacione s matemáticas (Math Operations)
Abs. Bloque que tiene como salida el valor absoluto de la entrada.

Sign. Función signo. Si la entrada es positiva, la salida es igual a 1;


si la entrada es 0, la salida es 0 y si la entrada es negativa, la salida
es –1.

Gain. Multiplica la entrada por una constante, que se introduce


como parámetro en forma de escalar o de variable. En caso que se
introduzca una variable, si se quiere ver su contenido hay que
introducirla entre paréntesis.

Sum. Suma o resta varias salidas de otros bloques. Parámetro: lista


de signos que se aplican a las entradas. Esta lista contiene un
conjunto de signos + y – seguidos (sin dejar espacio en blanco). El
número de signos introducidos determina la cantidad de puertos de
entrada que mostrará el bloque.

Relational Operator. Bloque que permite comparar dos señales de


entrada. Se puede hacer uso de los distintos operadores de
comparación (<,<=,>,>=,==,~=), los cuales se seleccionan en la lista
de selección Relational Operator.

Logical Operator. Genera como salida el resultado de aplicar una


operación lógica AND, OR, NAND, NOR, NOT o XOR sobre las
dos entradas al bloque. La operación a realizar se selecciona en la
lista de selección Operator.

Trigonometric Function. Aplica una determinada función


trigonométrica a la señal de entrada. La función trigonométrica a
aplicar se selecciona dentro del bloque sobre el parámetro Function.
2.6.6. Tratamiento de señales (Signal Routing)
Mux. Permite combinar una serie de señales de entrada,
obteniéndose como resultado un único vector de salida. Los
parámetros que posee son Number of inputs para especificar el
número de entradas a combinar y Display option para modificar la
forma de visualización del bloque.

90
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

Demux. Es el bloque opuesto al anterior. Su función es separar un


conjunto de señales que han sido combinadas previamente con un
bloque Mux. Sus parámetros son Number of outputs para indicar el
número de salidas y Display option para modificar la forma de
visualización del bloque.
Manual Switch. Selecciona la entrada que se encuentra activa y la
devuelve como salida. El cambio de una entrada a otra se realiza
haciendo doble clic con el ratón sobre el bloque.
Switch. Permite conmutar entre dos señales de entrada en función
del valor de una tercera señal. Si la tercera señal cumple una
determinada condición, el bloque devuelve como salida la primera
entrada, en caso contrario se devuelve la segunda entrada. Los
parámetros de este bloque son Criteria for passing first input que
permite indicar la condición a satisfacer y Threshold que contiene el
valor del límite de la condición seleccionada.

2.7. Ejemplos
A continuación se presentan una serie de ejemplos para sistemas de primer y segundo orden.
2.7.1. Sistema de primer orden
La figura 2.10 muestra bloques del modelo y la respuesta de un sistema de primer orden con
ganancia estática 10 y constante de tiempo 2 segundos, cuando se introduce un escalón en t=1
segundo y amplitud 1.
2.7.2. Sistema de primer orden con retardo
La figura 2.11 muestra la implementación en Simulink del mismo modelo anterior de primer
orden pero ahora con un retardo 5 segundos.

(a) Diagrama de bloques (b) Respuesta del sistema

(c) Valores para el bloque Transfer Fcn (d) Valores para el bloque Step
Figura 2.10. Ejemplo de simulación para un sistema de primer orden

91
Práctica 2. Diseño e implementación de sistemas dinámicos y simulación de procesos utilizando Simulink

(a) Diagrama de bloques (b) Respuesta del sistema

(c) Valores para el bloque Transport Delay


Figura 2.11. Ejemplo de simulación para un sistema de primer orden con retardo

2.7.3. Sistema de segundo orden


Por último en la figura 2.12 se presenta un ejemplo donde se muestra un sistema de segundo
orden con un factor de amortiguamiento de 0.4, una frecuencia natural no amortiguada de 1 rad/s
y una ganancia de 2. La entrada que se le aplica al sistema es un escalón de amplitud 1 en el
instante de tiempo 1.

(a) Diagrama de bloques (b) Respuesta del sistema

(c) Valores para el bloque Transfer Fcn


Figura 2.12. Ejemplo de simulación para un sistema de segundo orden

92
Prácticas de Control por Computador – F. Rodríguez, M. Berenguel, J.L. Guzmán y M.R. Arahal

2.8. Bibliografía
• The MathWorks Inc.; 1998; La edición de estudiante de Simulink; Ed. Prentice Hall; España;
225 pp.
Este libro proporciona a los estudiantes un medio asequible para utilizar este poderoso entorno de
modelado y simulación de sistemas dinámicos en sus estudios y puede que en su vida profesional. Se
abordan todos los aspectos de la herramienta, desde la creación de un modelo hasta la simulación y
análisis de resultados, así como una descripción muy completa de cada uno de los bloques de
Simulink.

• The MathWorks Inc.; 2002; Using Simulink. Dynamic system simulation for Matlab; EEUU; 476
pp.

Esta referencia es el manual de la herramienta Simulink que suministra la propia empresa que la ha creado,
MathWorks. Es un manual de referencia donde se describe profundamente cómo hay que trabajar con
Simulink, desde la creación de un modelo hasta el análisis de resultados, pasando por los distintos modos
de ejecución de los modelos. Además, se describen detalladamente cada uno de los bloques que se pueden
utilizar. Toda esta información se incluye en un archivo formato pdf que el alumno puede descargarse en
la página web dedicada a esta asignatura.

93

Anda mungkin juga menyukai