0% encontró este documento útil (1 voto)
898 vistas40 páginas

Uso Octave-MatLAB Control

Este documento presenta un manual de introducción a Octave/MATLAB con aplicaciones en control continuo. Explica la instalación de Octave, su interfaz de usuario, comandos básicos de variables, matrices, gráficos y programación. También introduce el paquete de control de Octave y presenta ejemplos de modelado de sistemas y control de procesos.

Cargado por

Augusto Gamba
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
898 vistas40 páginas

Uso Octave-MatLAB Control

Este documento presenta un manual de introducción a Octave/MATLAB con aplicaciones en control continuo. Explica la instalación de Octave, su interfaz de usuario, comandos básicos de variables, matrices, gráficos y programación. También introduce el paquete de control de Octave y presenta ejemplos de modelado de sistemas y control de procesos.

Cargado por

Augusto Gamba
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Manual de inicio rpido en Octave/MatLAB, con aplicaciones

en control continuo

Ing. Julin Alfonso Tristancho Ortiz Msc., PhD.

Manual de inicio rpido en Octave/MatLAB orientado al curso de


Automatizacin (171) del proyecto curricular de Ingeniera Industrial

Universidad Distrital Francisco Jos de Caldas.


Facultad de Ingeniera
Plan curricular Ingeniera Industrial
Bogot
2014

Tabla de Contenido
Tabla de Contenido ........................................................................................................................ 3
Lista de Figuras .............................................................................................................................. 4
Lista de Tablas ............................................................................................................................... 4
INTRODUCCIN MATLAB / OCTAVE ........................................................................................... 6
INSTALACIN OCTAVE ................................................................................................................ 7
INTERFAZ DE USUARIO OCTAVE ............................................................................................... 9
Ayuda del sistema .................................................................................................................... 10
MANEJO DE VARIABLES Y MATRICES ..................................................................................... 11
Clculos y funciones matemticas bsicas .............................................................................. 13
Generacin de matrices ........................................................................................................... 13
Manipulacin de matrices ......................................................................................................... 14
Ejemplo 1. Uso de comandos bsicos ................................................................................. 17
Ejemplo 2. Solucin de un sistema lineal de ecuaciones ..................................................... 18
Manipulacin de polinomios ..................................................................................................... 18
PROCESOS BSICOS PARA GRFICOS .................................................................................. 20
Ejemplo 3. Ajuste de datos a una lnea recta (Regresin lineal) .......................................... 24
Ejemplo 4. Uso de grficas mltiples (Funciones paramtricas) .......................................... 25
PROGRAMACIN EN OCTAVE .................................................................................................. 27
Ejemplo 5. Dibujo de funciones con parmetros variables ................................................... 30
PACKAGE DE CONTROL ............................................................................................................ 32
Ejemplo 6. Modelamiento matemtico de un sistema masa resorte .................................... 34
Ejemplo 7. Uso package de control en Octave .................................................................... 37

Lista de Figuras
Figura 1 Ventanas de instalacin Octave. Izq. Ventana inicial y Der. Seleccin de packages
adicionales (toolbox) ................................................................................................................... 7
Figura 2 Ventana de comandos Octave. Izq. Inicio normal y Der. Inicio anormal en Win8 .................. 7
Figura 3 Configuracin de la ventana de propiedades de acceso de directo en escritorio para Octave
.................................................................................................................................................... 8
Figura 4 Ventana de comandos en Octave .......................................................................................... 9
Figura 5 Funciones de edicin en la ventana de comandos. ............................................................. 10
Figura 6 Ejecucin comando help plot (arriba) y despliegue de ayuda resultante (abajo). .............. 11
Figura 7 Diferentes resultados del mismo comando ante el mismo comando. .................................. 12
Figura 8 Creacin de variables del tipo matriz. .................................................................................. 13
Figura 9 Ejemplo de edicin matriz .................................................................................................... 14
Figura 10 Ejemplo por vectores de una matriz................................................................................... 15
Figura 11 Ejemplos de algunos tipos de grficas que se pueden obtener con Octave ...................... 21
Figura 12 Resultado de dibujar funcin seno, con fltk (izq) y gnuplot (der)........................................ 22
Figura 13 Grfica de salida Ejemplo 3 ............................................................................................... 25
Figura 14 Grfica de salida Ejemplo 4 ............................................................................................... 26
Figura 15 Resultado uso comando path ............................................................................................ 27
Figura 16 Llamado a ejecucin de scripts almacenados en un directorio de trabajo ......................... 28
Figura 17 Edicin de scripts en Notepad++ ....................................................................................... 29
Figura 18 Grfica de salida Ejemplo 5 ............................................................................................... 31
Figura 19 Sistema masa amortiguador resorte .................................................................................. 34
Figura 20 Grfica resultado Ejemplo 6 ............................................................................................... 36
Figura 21 Marts rover. a) vista exterior, b) compensador en lazo abierto y c) control en lazo cerrador
.................................................................................................................................................. 37
Figura 22 Figuras de resultado control Marts Rover .......................................................................... 40
Figura 23 Linea de comandos cdigo Ejemplo7.m ............................................................................ 41

Lista de Tablas
Tabla 1 Comandos para manejo de memoria .................................................................................... 11
Tabla 2 Comandos de funciones matemticas bsicas ..................................................................... 13
Tabla 3 Comandos de creacin de matrices ...................................................................................... 14
Tabla 4 Comandos y funciones asociadas con matrices ................................................................... 16

Tabla 5 Comandos y funciones asociadas con matrices ................................................................... 19


Tabla 6 Comandos y funciones asociadas el dibujo de funciones en 2D .......................................... 23
Tabla 7 Comandos y funciones asociadas a la escritura de scripts ................................................... 29
Tabla 8 Comandos y funciones asociadas el dibujo de funciones en 2D .......................................... 33

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

INTRODUCCIN MATLAB / OCTAVE


MatLAB es una herramienta desarrollada por la empresa MathWorks y es el nombre abreviado de
MATrix LABoratory. MatLAB es un programa para realizar clculos numricos con vectores y
matrices. Como caso particular puede tambin trabajar con nmeros escalares tanto reales como
complejos, con cadenas de caracteres y con otras estructuras de informacin ms complejas. Una
de las capacidades ms atractivas es la de realizar una amplia variedad de grficos en dos y tres
dimensiones. MatLAB tiene tambin un lenguaje de programacin propio basado en la generacin
scripts (archivo de rdenes, archivo de procesamiento por lotes o guion es un programa
usualmente simple, que por lo regular se almacena en un archivo de texto plano).
MatLAB es un gran programa de clculo tcnico y cientfico. MatLAB dispone de un cdigo bsico y
de varias libreras especializadas (toolboxes), orientadas a diferentes ramas de la ingeniera,
economa, computacin y matemtica entre otras.
Octave o GNU Octave es un programa libre para realizar clculos numricos. Es considerado el
equivalente libre de MatLAB. Entre varias caractersticas que comparten se puede destacar que
ambos ofrecen un intrprete permitiendo ejecutar rdenes en modo interactivo. Al igual que
MatLAB posee libreras especializadas que se conocen como Packages.
A continuacin se hace una muy breve introduccin al proceso de instalacin de Octave, los
principales comandos y funciones de clculo y comandos del toolbox de control. Todo el contenido
est orientado a Octave pero es fcilmente extensible a MatLAB.

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

INSTALACIN OCTAVE
Octave es un programa de uso libre, bajo licencia GNU y se encuentra disponible para su
instalacin en la direccin de internet: http://octave.sourceforge.net/. Es recomendable descargar
la versin compatible con Microsoft Studio, la cual est disponible en:
http://sourceforge.net/projects/octave/files/Octave%20Windows%20binaries/
La versin es actualizada continuamente, este documento usa la versin 3.6.4. Una vez descargada
la ltima versin se debe proceder con la instalacin. El instalador de manera predeterminada no
instala todos los Forges disponibles (lo que corresponde a los toolbox en MatLAB), por ello se debe
asegurar que este activa el checkbox activado como aparece en Figura 1 derecha.

Figura 1 Ventanas de instalacin Octave. Izq. Ventana inicial y Der. Seleccin de packages adicionales (toolbox)

Si la instalacin se realiza sobre un sistema operativo Windows 8 al iniciar la aplicacin se va a


presentar un problema el cual consiste en la desaparicin de la lnea de informacin de comandos,
como se puede ver la Figura 2. Esto origina que cada vez que se ingresa un comando o parmetro
y se oprime Enter, no se va a mostrar si el proceso ya trmino, ni el resultado del proceso.

Figura 2 Ventana de comandos Octave. Izq. Inicio normal y Der. Inicio anormal en Win8

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Para corregir el problema mostrado Figura 2 en la se debe incluir un parmetro adicional a la lnea
de comandos. Este parmetro consiste en agregar el texto -i, con lo cual se fuerza un
comportamiento interactivo. La forma ms fcil de incluir este parmetro es ir al escritorio de
Windows, seleccionar el icono de Octave ( ), hacer click con el botn derecho del mouse y
seleccionar la opcin Propiedades, con lo cual se despliega la ventana mostrada en la Figura 3. En
el campo Destino se debe incluir el parmetro -i como se muestra en la misma figura, para
finalmente hacer click sobre Aceptar o Aplicar. Cada vez que se desee usar Octave se debe iniciar
Octave desde este acceso directo.

Figura 3 Configuracin de la ventana de propiedades de acceso de directo en escritorio para Octave

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

INTERFAZ DE USUARIO OCTAVE


Octave no cuenta con una interfaz de usuario como tal, en cambio usa una lnea de comandos al
estilo DOS. Una vez se inicia la aplicacin se muestra una ventana como la mostrada en la Figura 4.
Al iniciarse la aplicacin Octave muestra algunos datos sobre la versin, configuracin y motor de
grficas instalado.
Las funciones y comandos que Octave dispone para realizar los procesos de clculo deben ser
escritos a continuacin del carcter >. Cada vez que se ingresa un comando o se llama una
funcin se incrementa un contador el cual aparece al lado del nombre y versin del ejecutable de
Octave antes del carcter >.
Informacin de
versin y origen

Informacin de
sistema instalado y
graficador

Lnea de
comandos
Resultado de la
operacin
Identificador
de lnea

Figura 4 Ventana de comandos en Octave

Una vez se escribe y se ejecuta un comando es posible repetir un comando anterior si se usan las
flechas de navegacin del teclado ( Comando Anterior, Comando Siguiente), una vez se llama
el comando anterior es posible ejecutarlo si se hace oprime Enter.
La interfaz del tipo lnea de comandos presenta algunas dificultades para usar las herramientas
bsicas de edicin como copiar y pegar, pues los comandos Crtl+V (Pegar), Crtl+X (Cortar) y Crtl+C
(Copiar), estn deshabilitados. El proceso de seleccin tambin no se usa de manera directa con el
mouse como en las aplicaciones Windows normales. Para usar todos los procesos de seleccin y
copiar/pegar, se debe seleccionar la herramienta desde el men de la ventana de comandos,
como se ve en la Figura 5. Para activar el men de ventana se debe hacer click con el botn
derecho del mouse sobre el icono de Octave ( ).

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 5 Funciones de edicin en la ventana de comandos.

Para finalizar la aplicacin se puede hacer click sobre el icono de Cerrar, pero esto generalmente
produce un error. La mejor forma de finalizar la aplicacin es usando el comando exit.

Ayuda del sistema


Cada funcin o comando de Octave posee una ayuda que muestra la definicin de parmetros o
resultados obtenidos. Para obtener en pantalla este texto asociado para cada funcin se debe usar
el comando help y luego escribir el nombre del comando y dar Enter (como se puede ver en la
Figura 6), con lo cual se despliega toda la informacin asociada. Generalmente la informacin es
extensa y se muestra en pantallazos en la lnea de comandos, esto se ve reflejado en que el cursor
del sistema queda antecedido por :, con lo cual para ver la siguiente lnea de informacin
aparece cada vez oprime Enter. Cuando se finaliza por completo la presentacin de la ayuda se
muestra el mensaje END, resaltado con sombreado. Si se desea salir del texto de ayuda en
cualquier momento (incluyendo el final de la ayuda) se debe oprimir la letra q, con lo cual se
retorna a la lnea de comandos.

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 6 Ejecucin comando help plot (arriba) y despliegue de ayuda resultante (abajo).

MANEJO DE VARIABLES Y MATRICES


Octave almacena en memoria del sistema valores calculados o escritos, mediante el uso del
operador =, es as como si se quiere almacenar en disco el valor de 1 en la variable a, se debe
escribir a = 1 y dar Enter.
Si se desea usar una variable del tipo string o cadena de texto se debe iniciar con el carcter
comillas dobles y finalizar con el carcter comillas dobles. Por ejemplo a = 1, almacena el nmero
1.0 en a, mientras que a = 1 almacena el carcter 1. Octave maneja de manera indiferente los
nmeros entreros y decimales, por los cual no es necesario hacer conversin entre ellos.
Entre las condiciones que deben cumplir el nombre de las variables estn:

Debe iniciar siempre por un carcter alfabtico, despus de un carcter alfabtico se


pueden usar caracteres numricos.
No debe contener caracteres especiales como *, +, , -, /, ?, etc o espacios.
Octave es sensible a las maysculas y minsculas en el nombre de las variables, es as
como el programa Fuerza = 1, es diferente a fuerza = 1, con este ejemplo se generan dos
variables Fuerza y fuerza
No pude tener un nombre igual a una funcin o comando interno del sistema. Por ejemplo
no puede llamarse: who, ans, clear, sin, cos, etc.
Tabla 1 Comandos para manejo de memoria

Comando

Descripcin

Ejemplo de uso

clc

Borra la lnea de comandos sin


eliminar o cambiar ninguna variable
del sistema

clc

clear

Borrar variable name de la memoria.


Se puede usar all en lugar de name
para indicar que se debe borrar
completamente las variables

clear name
clear all

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

whos

Muestra en pantalla una lista con las


variables del sistema

save

Guarda las variables del sistema en un


archivo binario o de texto. Si se omite
el parmetro variable, se almacena
toda la memoria

save -asciinombre_archivo variable

load

Carga en memoria un archivo en disco


en la memoria del sistema

variable = load(-asciinombre_archivo)

Whos

Los comandos save y load son fundamentales para realizar procesos de importacin y exportacin
de otros programas. Es comn por ejemplo usar el poder clculo de Octave para realizar tareas de
number-crunching (calculo numrico de alta complejidad), mientras que el proceso de grficacin
usar programas especializados del mbito cientfico como: Voxler, Grapher, Surfer, etc.. u hojas de
clculo como Microsoft Excel.
Cada vez que se introduzca un comando o funcin que arroje como resultado un nmero o matriz
se reproduce el resultado en pantalla mediante al variable del sistema ans o una visualizacin del
resultado obtenido, fenmeno que se conoce como eco. Si el usuario desea anular el eco de las
operaciones se debe terminar todo funcin con el carcter ;, como se ve en el siguiente ejemplo:

Figura 7 Diferentes resultados del mismo comando ante el mismo comando.

Octave maneja todos los valores numricos en formato de matrices. Entonces para Octave los
valores escalares son matrices de 1 x 1. Para definir las matrices de orden superior se debe usar los
caracteres de corchete cuadrado ([ ]), separando cada componente de una misma fila por medio
de espacio ( ) o coma (,), para generar una nueva fila se debe usar el carcter punto y coma
(;). En el siguiente ejemplo se muestra como se introducen matrices en Octave:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 8 Creacin de variables del tipo matriz.

El eco es importante anularlo cuando se realizan operaciones con matrices de gran tamao, pues
Octave consume mucho tiempo y recursos cada vez que necesita imprimir los resultados en
pantalla, lo que hace que la operacin de la aplicacin se vuelva muy complicada.

Clculos y funciones matemticas bsicas


Octave tiene implementadas la mayora de las funciones matemticas bsicas, las cuales se
muestran en la Tabla 2
Tabla 2 Comandos de funciones matemticas bsicas

Operador

Funcin matemtica

Ejemplo de uso

pi

Constante geomtrica pi

pi

3.1416

Multiplicacin

5*3

ans = 15

Divisin

15/3

ans = 3

Suma

5+3

ans = 8

Resta

5-3

ans = 2

Potenciacin

5**3
5^3

ans = 125

**, ^
sin

Seno

sin(0.1)

ans = 0.099

cos

Coseno

cos(0.1)

ans = 0.995

tan

Tangente

tan(0.1)

ans = 0.100

exp

Exponente en base neperiana

exp(1)

ans = 2.718

log

Logaritmo en base neperiana

log(10)

ans = 2.302

Generacin de matrices
Octave posee varias funciones para la generacin de matrices de manera automtica. En la tabla
siguiente se muestra los principales y su uso:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 3 Comandos de creacin de matrices

Comando

Descripcin

Ejemplo de uso

zeros(n,m)

Matriz de ceros con n filas y m


columnas

ones(n,m)

Matriz de unos con n filas y m


columnas

eye(n)

Matriz de identidad de n x n filas

rand(n,m)

Matriz de nmeros aleatorios con n


filas y m columnas

[i:p:f]

Vector fila con valor inicial i, paso de


incrementos p y valor final f

Manipulacin de matrices
Las matrices en Octave pueden ser manipuladas valor por valor, al igual que cualquier lenguaje de
programacin de alto nivel. Para llamar o cambiar un valor se debe usar los parntesis redondos
de la forma variable(i,j), donde i es el nmero de la fila y j el nmero de la columna del elemento
que se desea leer o editar. Es importante anotar que la numeracin de las filas y columnas inicia
desde 1. En la Figura 9 se muestra un ejemplo de la edicin de matrices.

Figura 9 Ejemplo de edicin matriz

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Si se desea retomar o alterar toda una fila o columna de una matriz se puede usar el carcter :.
Un ejemplo de su uso se muestra en la figura siguiente:

Figura 10 Ejemplo por vectores de una matriz

En la tabla siguiente se muestran algunas de las funciones bsicas usadas para el clculo en
matrices.

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 4 Comandos y funciones asociadas con matrices

Comando

Descripcin

size(matriz)

Devuelve un vector que contiene el


tamao de filas, columnas de la matriz

Ejemplo de uso

Busca en la matriz los valores que


cumplan la condicin dada por el
operador.

find(matriz,
oper, val)

La funcin devuelve un arreglo con los


ndices que cumplen la condicin,
numerados de arriba abajo y de
izquierda a derecha iniciando en 1.
Los operadores pueden ser:
> Mayor, < Menor, == Igual y ~=
diferente

sum(matriz)

Calcula la suma de cada vector


columna de una matriz

Inv(matriz)

Calcula la inversa de la matriz pasada


como parmetro

matriz

Genera la transpuesta de la matriz

Operadores matemticos para clculo


.* (Multiplicar)
celda a celda de una matriz.
./ (Dividir)
Son los mismo operadores bsicos
.** (Exponencial)
precedidos por el carcter .

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Ejemplo 1. Uso de comandos bsicos


La serie de Leibniz es una serie infinita la cual converge hacia el valor de /4 y por ello se puede
considerar como una forma de aproximar el valor (3.1415926535897932384626433832795). La
serie de Leibniz se puede escribir como:

Mediante el uso de Octave calcular el valor de si se aproxima con 20 trminos. Determine el


error con el valor de usado por Octave.
SOLUCIN:
% Arreglo con los valores necesarios del indice n
n = [0:1:20];
% Matriz de unos negativos con el mismo tamao de n
unos = -ones(1,21);
% Calcular el numerador de la ecuacion
num = unos.^n;
% Calcular el denominador de la ecuacion
den = (2.*n + 1);
% Calcular cada uno de los terminos de la serie
aproxpi = num./den;
% Calcular la sumatoria de la serie y multiplicador por 4
% dejar en pantalla el valor resultante
aproxpi = 4*sum(aproxpi)
% Calcular el error respecto del valor aproximado y el valor
% de pi almacenado en Octave
% dejar en pantalla el valor resultante
error = 100*(pi - aproxpi)/pi

RESULTADO:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Ejemplo 2. Solucin de un sistema lineal de ecuaciones


Encontrar la solucin para el siguiente sistema lineal de ecuaciones.
x + 4y 8z = -8
4x + 8y z = 76
8x y 4z = 110
SOLUCIN:
%Crear la matriz A con los coeficientes de la ecuacin
A = [[1 4 -8];[4 8 -1];[8 -1 -4]];
%Crear vector con los valores de trminos independientes
b = [-8 76 110];
%Convertir el vector fila de b, en vector columna
b = b';
% Calcular el vector resultado x = A^-1*b
% dejar en pantalla los valore resultantes
x = inv(A)*b

RESULTADO

Manipulacin de polinomios
Octave utiliza la representacin mediante vectores filas para manipular polinomios. Cada trmino
del vector representa el coeficiente que multiplica a la variable independiente y su posicin de
derecha a izquierda su exponente creciente de uno en uno iniciando en cero. Es as que un vector
[3 0 1 2] equivale a un polinomio: 3x3+x+2, o el polinomio 2x3-x2+5x+2 se representara en Octave
con el vector fila [2 -1 5 2]. Algunas de las funciones disponibles en Octave para la creacin o
manipulacin de polinomios se encuentran descritas en la siguiente tabla

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 5 Comandos y funciones asociadas con matrices

Comando

Descripcin

roots(vector)

Calcula las races de un


polinomio

conv(vector1,
vector2)

Multiplica dos vectores,


vector1 y vector2

Ejemplo de uso

Evala el polinomio con todos


polyval(vector,
los valores pasados como
valores)
parmetros
Ajusta una serie de puntos
(vectorx, vectory) al polinomio
polyfit(vectorx, de orden indicado por el
vectory, orden) mtodo de los mnimos
cuadrados. Retorna el
polinomio de mejor ajuste

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

PROCESOS BSICOS PARA GRFICOS


Una de las funcionalidades ms importantes que posee Octave es la capacidad de dibujar datos o
funciones en 2D y 3D, como las que se pueden ver en la Figura 11. En esta seccin solo se trataran
los temas relacionados con dibujo de funciones 2D, dado que son las ms usadas en el mbito de
ingeniera de control.

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 11 Ejemplos de algunos tipos de grficas que se pueden obtener con Octave

Octave maneja dos diferentes Graphics backend o libreras de dibujo (gnuplot y fltk), las cuales
cuando es instalada la aplicacin, se permite seleccionar cual desea usar por defecto. Es posible
cambiar la librera si se usa la funcin graphics_toolkit(nombre_libreria). En esencia la
diferencia radica en el consumo de memoria, mientras fltk tiene unos requerimientos de memoria

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

muy bajos, gnuplot al poseer una interfaz de usuario ms completa requiere menos recursos del
sistema (ver Figura 12).

Figura 12 Resultado de dibujar funcin seno, con fltk (izq) y gnuplot (der)

En la siguiente tabla se hace un breve resumen de los comandos bsicos de dibujo y sus
parmetros de configuracin

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 6 Comandos y funciones asociadas el dibujo de funciones en 2D

Comando

h = plot(vectorx,
vectory, param)

title(nombre)

Descripcin
Funcin que crea una nueva grfica en 2D, usando como datos en x vectorx y datos en
y vectory. Si vectory tiene varias columnas se dibujara una curva por cada una. Se
dibuja segn los parmetros param. La funcin plot devuelve un identificador nico
que puede ser usado para configurar individualmente sin tener que ser la figura actual
(h).
El termino param es un texto que configura la forma como Octave dibuja la grfica.
Entre los parmetros de dibujo estn:
Color lnea: y (amarillo), m (magenta), c(cian), r(rojo), g(verde), w(blanco) y k (negro)
Carcter de punto: . Puntos, o crculos, x cruces, + cruces, * asteriscos, s
cuadrados, d diamantes.
Tipo de lnea: -continua, : puntos, -. punto, -- trazos.
Ancho de lnea: se debe introducir la palabra clave linewidth y luego el ancho
deseado.
Tamao de marcas: se debe introducir la palabra clave markersize y luego el tamao
deseado.
Ubica el texto nombre como ttulo de la figura que se esta dibujando

xlabel(nombre)

Ubica el texto nombre bajo el eje de las x en la grfica actual

ylabel(nombre)

Ubica el texto nombre al lado izquierda del eje de las y de la grfica actual

legend(nombre1, Crea un cuadro en el cual se define la leyenda de lectura para la grfica actual, usando
nombre2, )
nombre1 en la curva1, nombre 2 en la curva 2, etc..
grid param

Controla la visualizacin de la grilla de la grfica. Si param es on la enciende, si param


es off la apaga.

axis[xmin, xmax,
ymin, ymax]

Configura el rea de dibujo que se desea obtener, al limitar los valores de mnimos y
mximos de cada eje de la grfica

figure

Abre una nueva ventana para grficar, con lo cual una grfica anterior queda
independiente de la actual

hold param

Mantiene como activa la grfica actual (param = on), con lo cual no se borra el
dibujo anterior, cuando se procesa a dibujar una nueva grfica.

close param

Cierra la figura actual o todas si param = all

Crea una figura de filas x columnas que est conformada por varias grficas normales
independientes. Para su uso se debe iniciar siempre con la funcin subplot, indicar la
subplot(filas,
grfica (ndice) que se va a cambiar y luego usar de manera normal cada una de las
columnas, ndice)
funciones de grficacin escritas a continuacin de la funcin subplot (sin hacer Enter,
solo separado por un espacio)
print(h, archivo)

Guarda en disco la figura actual (si no se suministra h) o la figura identificada con h, en


el directorio y nombre, pasado en archivo

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Existen de igual manera funciones de dibujo que usan la misma estructura de generacin que la
funcin plot, pero que generan diferentes resultados, como lo son:

semilogx: Dibujo con el eje en x logartmico


semilogy: Dibujo con el eje en y logartmico
loglog: Dibujo con el eje en x e y logartmico
polar: Dibujo polar
bar: Dibujo de barras

Ejemplo 3. Ajuste de datos a una lnea recta (Regresin lineal)


Se desea construir un centro comercial, cerca de un centro urbano. Para ello se hizo un estudio de
los centros ya existentes y se encontr que en promedio la asistencia de clientes diarios con
respecto a la distancia de la ciudad es:
N de clientes

800

700

600

400

200

100

Distancia (Km)

15

19

25

23

34

40

Determine un modelo lineal que pueda predecir el comportamiento de los nmeros de clientes
con respecto a la distancia.
SOLUCIN:
%Almacenar los datos de numero de clientes
C = [800 700 600 400 200 100];
%Crear vector con los valores Distancias
D = [15 19 25 23 34 40];
%Cerrar todas las Grficas
close all;
%Calcular la regresin lineal que se ajustan al modelo
ajus=polyfit(D,C,1);
%Crear vectores de dibujo del modelo calculado
x = 0:10:40;
y = polyval(ajus,x);
%Dibujar la distribucion de puntos, distancia vs clientes
plot(D,C,'ob');
%Mantener la Grfica activa
hold on;
%Dibujar los puntos del modelo distancia clientes
plot(x,y,'r','linewidth',4);
%Configurar etiquetas
title('Modelo de clientes en funcion de la distancia');
xlabel('Distancia en Km');
ylabel('Clientes promedio');
legend('Datos', 'Modelo lineal');
grid on;
ajus

RESULTADO:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 13 Grfica de salida Ejemplo 3

Ejemplo 4. Uso de grficas mltiples (Funciones paramtricas)


Si se toma el conjunto de funciones paramtricas definida de la siguiente manera:

Estas figuras tienen un gran conjunto de curvas diferentes dependientes de los parmetros a y b.
Dibuje en una misma ventana 4 Grficas independientes donde se muestre el resultado de cuatro
pares de valores a y b.
SOLUCIN:
%Borrar la linea de comandos y cerrar las Grficas
clc;
close all;
%Iniciar la variable parametrica t
t = 0:0.05:10*pi;
%Calcular cada una de las funciones que se van a dibujar
a = 1;
b = 3;
x1 = (a-b)*cos(t)+b*cos(t*((a/b)-1));
y1 = (a-b)*sin(t)-b*sin(t*((a/b)-1));
a = 20;
b = 1;
x2 = (a-b)*cos(t)+b*cos(t*((a/b)-1));
y2 = (a-b)*sin(t)-b*sin(t*((a/b)-1));
a = 1;
b = 20;
x3 = (a-b)*cos(t)+b*cos(t*((a/b)-1));
y3 = (a-b)*sin(t)-b*sin(t*((a/b)-1));
a = 11;
b = 30;
x4 = (a-b)*cos(t)+b*cos(t*((a/b)-1));

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

y4 = (a-b)*sin(t)-b*sin(t*((a/b)-1));
%Crear la ventana con 4 figuras
subplot(2,2,1);
hold on;
%Dibujar cada una de las figuras
subplot(2,2,1); plot(x1,y1);
subplot(2,2,1); title('a = 1 y b = 10');
subplot(2,2,2); plot(x2,y2);
subplot(2,2,2); title('a = 20 y b = 1');
subplot(2,2,3); plot(x3,y3);
subplot(2,2,3); title('a = 1 y b = 20');
subplot(2,2,4); plot(x4,y4);
subplot(2,2,4); title('a = 11 y b = 30');

RESULTADO:

Figura 14 Grfica de salida Ejemplo 4

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

PROGRAMACIN EN OCTAVE
Octave tiene un lenguaje de programacin el cual est basado en el concepto de Script (ejecucin
sucesiva de comandos y funciones almacenadas en un archivo de texto). Estos script deben ser
almacenados en archivos de texto plano con extensin *.m.
Para llamar un script se debe escribir el nombre del archivo con path incluido, teniendo en cuenta
que los paths de archivos en Octave se debe usar /, en lugar de \.
Por ejemplo el archivo C:\windows\System32\xwizard.m, debera ser llamado escribiendo:
C:/Windows/System32/xwizard.m. El comando que se debe usar para Octave ejecute un script
es run(path/archivo.m), entonces para el ejemplo anterior se debera escribir
run(C:/Windows/System32/xwizard.m). Para evitar conflictos por el nombre del path o archivos
se recomienda nunca utilizar nombres con acentuacin, o espacios.
Octave tambin maneja el concepto de directorios de trabajo, con lo cual cada vez que se llame un
script sin path de bsqueda, se proceder a buscar en cada uno de estos directorios de trabajo, si
no se encuentra, se generara un error. El comando path despliega la lista de directorios de trabajo
como se muestra a continuacin:

Figura 15 Resultado uso comando path

Es posible agregar un nuevo path de trabajo con el comando addpath(directorio). Es necesario


agregar cada vez que se inicie una nueva sesin de Octave, pues cuando se finaliza la aplicacin la
informacin de directorios de trabajo se reinicia. Para los scripts se presenta el mismo fenmeno
de sensibilidad a las letras minsculas y maysculas, por lo tanto se recomienda nombrar los
archivos con todas las letras en minsculas o maysculas.
Para ejecutar un script cuando se ha usado el comando addpath, solo es necesario escribir el
nombre del archivo *.m en la lnea de comandos, sin la extensin, ni comillas y respetando las
minsculas y maysculas que se hayan usado en el nombre del archivo. A continuacin se muestra
un ejemplo de cmo ejecutar un script de los ejemplos descritos en este documento, todo los
archivos *.m estn almacenados en la carpeta C:\EjmOct.

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 16 Llamado a ejecucin de scripts almacenados en un directorio de trabajo

Alguno de los comandos ms utilizados en programacin con Octave se encuentran descritos a


continuacin:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 7 Comandos y funciones asociadas a la escritura de scripts

Comando
%
disp(texto)

Descripcin
Comentario. Si una lnea del script inicia con ese carcter la lnea se omitir
Muestra un texto en la lnea de comandos, es til para mostrar avances o posiciones
de clculo dentro de un script

a = input(texto) Detiene la ejecucin de un script y espera que el usuario ingrese un valor

if (condicin)
cdigo_si
else
cdigo_sino
end

Ejecuta una parte de cdigo (cdigo_si) cuando la condicin es verdadera. Si la


condicin no es verdadera se ejecuta el cdigo puesto entre el else y end
(cdigo_sino).
Las condiciones de verificacin son:
(x < y)
Verdadero si x es menor que y
(x <= y)
Verdadero si x es menor o igual que y
(x == y)
Verdadero si x es igual a y
(x >= y)
Verdadero si x es mayor o igual que y
(x != y) o (x ~= y)
Verdadero si x no es igual a y
!x
Niega x (el valor de verdad)
x|y
x o y (Funcin lgica or)
x&y
x e y (Funcin lgica and)

while (condicin)
Ciclo de repeticin para el cdigo escrito entre las sentencias while y end. El ciclo se
cdigo
repite hasta que la condicin sea falsa.
end

Para generar los scripts se puede usar cualquier editor de texto plano como el Bloc de Notas de
Windows ( ), pero se recomienda el editor Notepad++, que es un editor de uso libre disponible en
http://notepad-plus-plus.org/. Esta aplicacin tiene como principal ventaja la tabulacin
automtica, numeracin de lneas y reconocimiento de funciones bsicas de Octave. En la figura
siguiente se puede observar como es la visualizacin y edicin de un script en Notepad++.

Figura 17 Edicin de scripts en Notepad++

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Ejemplo 5. Dibujo de funciones con parmetros variables


De la funcin y(t) = Sin(2ft) + Cos(Af t) se desea obtener una grfica en la cual se dibujen 5
curvas basadas en un rango de A determinado por el usuario y una frecuencia angular tambin
dada por el usuario, pero constante. Genere un script en Octave que realice esta tarea.
SOLUCIN:
%Borrar la linea de comandos y cerrar las Grficas
clc;
close all;
%Pedir datos del problema al usuario
Amin = input('Valor minimo de A: ');
Amax = input('Valor maximo de A: ');
NumGraf = 3;
%Verificar integridad de los datos
if(Amax > Amin)
%Pedir datos del problema al usuario
f = input('Frecuencia de la funcion (Hz): ');
%Calcular el paso de incremento
paso = (Amax - Amin)/NumGraf;
%Iniciar la variable
A = Amin;
%Iniciar el vector de tiempo
t = [0:0.01:5];
%Iniciar contador de Grfica
i = 1;
%Iniciar matriz de datos
y = zeros(NumGraf,501);
%Crear las diferenes Grficas
disp('Calculando Grficas');
while(A < Amax)
%llenar los valores de la matriz de dibujo
y(i,:) = sin(2*pi*f*t) + sin(A*pi*f*t);
A = A + paso;
i = i + 1;
end
%Dibujar las Grficas resultantes
plot(t,y,'linewidth',2);
%Configurar la Grfica
legend('C1', 'C2', 'C3', 'C4');
legend('boxon');
grid on;
disp('Dibujo de Grficas terminado');
else %Error en los parametros de etrada
disp('Los valores ingresados no son validos!!')
end

RESULTADO:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 18 Grfica de salida Ejemplo 5

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

PACKAGE DE CONTROL
Los toolbox o package de Octave, son colecciones de funciones especializadas agrupadas por tema
y que pueden ser llamadas desde la ventana de comandos de igual forma que las funciones
bsicas. Los package deben ser seleccionados e instalados como se explica en la seccin
INSTALACIN OCTAVE.
Para poder utilizar las funciones implementadas dentro del package, se debe cargar la librera
antes de llamar las funciones instaladas. Para ello se debe llamar la funcin pkg load nombre,
por lo tanto para cargar las funcionalidades de la librera de control se debe escribir en la lnea de
comandos pkg load control. Si al ejecutar el comando no se recibe ningn mensaje en la lnea de
comandos, esto indica que el proceso se realiz de manera satisfactoria.
Los sistemas de control continuo son representados mediante el uso de ecuaciones diferenciales,
las cuales usando la transformada Laplace, se convierten en sistemas del tipo polinomial y es as
como Octave maneja estos sistemas. El manejo de polinomios se explic en la seccin
Manipulacin de polinomios. Las funciones principales del package de control se encuentran
descritas en la tabla siguiente:

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Tabla 8 Comandos y funciones asociadas el dibujo de funciones en 2D

Comando

Descripcin

tf(num, den)

Genera una funcin de transferencia a partir de


los parmetros num (numerador) y den
(denominador). Tanto num y den deben estar
escritos en formato de polinomios y representan
las ecuaciones diferenciales en transformada de
Laplace

+
/
*

pole(tf)
zero(tf)
pzmap(tf)

feedback(G,H,1)

Ejemplo de uso

Operaciones bsicas entre funciones de


transferencia

Devuelve un vector con los polos (funcin pole)


o ceros (funcin zero) de la funcin de
transferencia tf. En una funcin de transferencia
los polos son las races del denominador y los
ceros son las races del numerador.
La funcin pzmap, dibuja los polos y ceros en
una nueva grfica.
Calcula la funcin de transferencia total para un
sistema realimentado con la siguiente
estructura. El termino
1 asigna el signo de realimentacin.

minreal(tf)

Realiza la simplificacin de ceros y polos de una


funcin de transferencia.

step(tf)
[y t] = step(tf)

Aplica una seal de entrada tipo paso a la


funcin de transferencia tf. Si no se almacenan
el vector tiempo t ni el vector de respuesta en el
tiempo y, se genera una grfica donde se
muestra la respuesta

lsim(tf,u,T)
[y t] = lsim(tf,u,T)

Aplica una seal de entrada definida por el


usuario a la funcin de transferencia tf, vector
de entrada u y vector tiempo T. Si no se
almacenan el vector tiempo t ni el vector de
respuesta en el tiempo y, se genera una grfica
donde se muestra la respuesta

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Ejemplo 6. Modelamiento matemtico de un sistema masa resorte


Realizar el modelamiento matemtico (funcin de transferencia) del sistema mostrado en la Figura
19. Simular el sistema ante diferentes entradas sinusoidal con frecuencia variable para encontrar
la frecuencia de resonancia del sistema. k = 100 KN/m, c = 500 Ns/m, m = 10 Kg y f(t) =
1000*cos(120*t) N

Figura 19 Sistema masa amortiguador resorte

SOLUCIN:
1. Se hace el anlisis dinmico de fuerzas del sistema

()

( )

( )

( )

()

( )

()

()

2. Se aplica la transformada de Laplace asumiendo condiciones iguales a cero y se calcula la


funcin de transferencia.
( )

( )

( )(
( )

( )
)

( )
( )
( )

( )
( )
3. Se procede implementar el siguiente script
%Asegurar la carga del toolbox de control,
%OJO ELIMINAR SI ESTA USANDO MATLAB
pkg load control;
%Borrar la linea de comandos y cerrar las Grficas
clc;
close all;
%Parametros del modelo

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

k = 100000; %Resorte
c = 500; %Amortiguador
m = 10; % Masa
%Crear la funcin de transferencia
num = 1;
den = [m c k];
disp('Funcion de transferencia:')
fun = tf(num,den)
%Simular la respuesta de la planta a paso
[y t] = step(fun);
subplot(2,2,1); plot(t,y);
subplot(2,2,1); title('Respuesta entrada paso');
subplot(2,2,1); xlabel('tiempo (s)');
subplot(2,2,1); ylabel('Desplazamiento (m)');
%Simular la respuesta ante entrada f(t)
t = 0:0.001:1;
f = 1000*cos(120*t);
[y t] = lsim(fun,f,t);
%Grficar los resultados
subplot(2,2,2); plotyy(t,y,t,f);
subplot(2,2,2); title('Entrada/Salida planta');
subplot(2,2,2); xlabel('Tiempo(s)');
%Generar variacin de frecuencia en la seal de entrada
disp('Calculando la respuesta a frecuencia variable')
%Variable que cambia la frecuencia de la entrada
frec = 2*pi;
i = 1;
A = zeros(5000);
x = A;
%Calcular las amplitudes de la seales de salida
while (frec <= 400)
f = 1000*cos(frec*t);
[y t] = lsim(fun,f,t);
Amp = (max(y)-min(y))/2;
A(i) = Amp;
x(i) = frec/(2*pi);
i = i + 1;
frec = frec + 0.5;
end
%Dimensionar el arreglo de datos
A = A(1:i-1);
x = x(1:i-1);
%Dibujar las diferentes Grficas de analisis
subplot(2,2,3); semilogx(x,A);
subplot(2,2,3); title('Respuesta a la frecuencia');
subplot(2,2,3); xlabel('Frecuencia(Hz)');
subplot(2,2,3); ylabel('Amplitud(m)');
subplot(2,2,3); grid on;
disp('Proceso terminado..')

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

RESULTADO:

Figura 20 Grfica resultado Ejemplo 6

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Ejemplo 7. Uso package de control en Octave


Los exploradores de energa solar enviados a Marte son vehculos autnomos semi-guiados de
manera remota. Equipados con equipos de telecomunicacin, cmaras y computadores. Para el
control del Rover se han planteado dos soluciones, una con un compensador en lazo abierto y otro
con un sistema en lazo cerrado. En la siguiente figura se muestra las dos estrategias de control y
una fotografa del Marts Rover.

b)

a)
Figura 21 Marts rover. a) vista exterior, b) compensador en lazo abierto y c) control en lazo cerrador

c)

Determine el comportamiento del rover en lazo abierto, con el compensador en lazo abierto y
cree un lazo cerrado con un controlador PID, sintonizndolo segn el criterio de Ziegler y Nichols.
SOLUCIN:
%Asegurar la carga del toolbox de control,
%OJO ELIMINAR SI ESTA USANDO MATLAB
pkg load control;
%Borrar las variables, grficas y pantalla anteriores
clear all;
close all;
clc;
%Crear la funcion de transferencia del rover y controlador en lazo abierto
%Funciones de transferencias
num = [1];
den = conv([1 1],[1 3]); %Calculo el producto de las dos raices independientes
rover = tf(num, den)
num = conv([1 1],[1 3]); %Calculo el producto de las dos raices independientes
den = [1 4 5];
conopen = tf(num, den)
[yo to] = step(conopen*rover, 5);
[y t] = step(rover, 5);
%Crear la grafica de respuesta de la planta con control de lazo abierto y sin
control
figure();
plot(to,yo,t,y,t,ones(size(t)));

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

axis([0 5 0 1.1]);
%Configurar los ejes de la grafica
%Establecer las leyendas de la grafica.. esto solo funciona en Octave
legend('{\fontsize{8}
Lazo
Abierto}',
'{\fontsize{8}
Sin
Control}',
'{\fontsize{8} Entrada}');
legend('boxon');
grid on;
xlabel('Tiempo(s)');
ylabel('Posicion');
title('Respuesta de la planta');
disp('');
input('Respuesta del rover en lazo abierto y sin control (PRESS ENTER)');
%Establecer comportamiento de la planta con control Proporcional
figure();
subplot(2,1,1);
%Solo valido en Octave y con la funcion rlocus2.m en la carpeta de trabajo
[Rdata Ks] = rlocus2(rover);
%Guardar los valores de ubicacin de los
polos y las Ks
rlocus(rover);
%Visualizar el comportamiento ante diferentes Ks
subplot(2,1,2);
%Calcular la respuesta en para diferentes Ks
[yo to] = step(feedback(1*rover), 5);
[y1 t1] = step(feedback(50*rover), 5);
[y2 t2] = step(feedback(200*rover), 5);
[y3 t3] = step(feedback(500*rover), 5);
plot(to,yo,t1,y1,t2,y2,t3,y3,t,ones(size(t)));
legend('{\fontsize{8} Kp=1}', '{\fontsize{8} Kp=50}', '{\fontsize{8} Kp=200}',
'{\fontsize{8} Kp=500}', '{\fontsize{8} Entrada}');
legend('boxon');
grid on;
xlabel('Tiempo(s)');
ylabel('Posicion');
title('Respuesta de la planta controlador P');
disp('');
input('Respuesta del rover en lazo cerrado con control P (PRESS ENTER)');
disp('');
disp('*************************************************');
disp('Proceso de sintonizacion de controlador PID Ziegler & Nichols');
disp('');
%Sintonizar el control PID
%Calcular la respuesta en para diferentes Ks
step(rover, 8);
grid on;
xlabel('Tiempo(s)');
ylabel('Posicion');
title('Respuesta de la planta sin controlador paso unitario');
T = input('Introduzca la constante de tiempo (T): ');
L = input('Introduzca el retraso de respuesta (L): ');
K = yo(size(yo,1));
%Ganancia de un contrador tipo P
Kp = T/(K*L);
%Calcular la funcion de transferencia en lazo cerrado
GscontKp = tf(Kp,1);
%Ganancia de un contrador tipo PI

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Kpi_p = 0.9*T/(K*L);
Kpi_i = Kpi_p / (L/0.3);
%Calcular la funcion de transferencia del contraldor I
GscontKpi = tf(Kpi_p,1)+tf([Kpi_i], [1 0]);
%Ganancia de un contrador tipo PID
Kpid_p = 1.2*T/(K*L);
Kpid_i = Kpid_p / (2*L);
Kpid_d = Kpid_p * (0.5*L);
%Calcular la funcion de transferencia del contraldor I
GscontKpid_i = tf([Kpid_i], [1 0]);
%Calcular la funcion de transferencia del contraldor D
GscontKpid_d = tf([Kpid_d 0], [0 1]);
%Calcular la funcion de transferencia en lazo cerrado
GscontKpid = tf(Kpid_p,1) + GscontKpid_i + GscontKpid_d;
%Calcular
[yo to] =
[y1 t1] =
[y2 t2] =
[y3 t3] =

la respuesta en para diferentes controladores


step(rover, 10, 0.01);
step(feedback(GscontKp*rover), 10, 0.01);
step(feedback(GscontKpi*rover), 10, 0.01);
step(feedback(GscontKpid*rover), 10, 0.01);

%Dibujar las respuestas de la planta ante los diferentes controladores


figure();
plot(to,yo,t1,y1,t2,y2,t3,y3,t,ones(size(t)));
legend('{\fontsize{8} Sin control}', '{\fontsize{8} Control P}', '{\fontsize{8}
Control PI}', '{\fontsize{8} Control PID}', '{\fontsize{8} Entrada}');
legend('boxon');
grid on;
xlabel('Tiempo(s)');
ylabel('Posicion');
title('Respuesta de la planta controladores P, PI y PID');
%Calcular las seales de control para cada controlador
figure();
e1 = ones(size(t1)) - y1;
e2 = ones(size(t2)) - y2;
e3 = ones(size(t3)) - y3;
[y1 t1] = lsim(GscontKp, e1, t1);
[y2 t2] = lsim(GscontKpi, e2, t2);
%Es necesario hacer un truco, pues el numerador es de mayor orden que el
denominador
%se le aplica un integrador
[y3 t3] = lsim(GscontKpid*tf(1,[1 0]), e3, t3);
%ahora se deriva para obtener la seal original
y3 = diff(y3);
y3(size(y3)+1) = 0;
y3 = y3 ./ t3(2);
plot(t1,y1,t2,y2,t3,y3);
legend('{\fontsize{8} Control P}', '{\fontsize{8} Control PI}', '{\fontsize{8}
Control PID}');
legend('boxon');
grid on;
xlabel('Tiempo(s)');
ylabel('Posicion');
title('Magnitud de actuacin de la planta controladores P, PI y PID');
%Escribir un pequeo resumen de las ganancias calculadas
disp('');

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

disp('Resumen de ganancias del controlador');


disp('');
disp('Controlador P');
Kp
disp('');
disp('Controlador PI');
Kpi_p
Kpi_i
disp('');
disp('Controlador PID');
Kpid_p
Kpid_i
Kpid_d
disp('');
disp('Proceso de calculo terminado');

RESULTADO:

Figura 22 Figuras de resultado control Marts Rover

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

Msc. Ing. Julin Alfonso Tristancho Ortiz PhD.

Figura 23 Linea de comandos cdigo Ejemplo7.m

AUTOMATIZACIN INDUSTRIAL.

Plan curricular Ingeniera Industrial

También podría gustarte