Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia Matlab PDF
Guia Matlab PDF
ndice
OBJETIVOS DE LA GUA Y A QUIEN ESTA DIRIGIDA. INTRODUCCIN. PARTE 1 APLICACIONES SIMPLES PARA PRIMER AO.
1.1 Entorno de Trabajo 1.2 Creacin de Variables 1.3 Creacin de Funciones 1.4 Creacin de Grficas 1.5 Generalidades del comando plot 1.6 Editor de MATLAB 1.7Programacin en MATLAB
3 4 7
7 8 10 11 14 16 19
22
22 23 25 26
28
28 31
M. C. Jarur M.
M. C. Jarur M.
Introduccin.
Existe en el mercado una amplia gama de recursos de software para el diseo, programacin y simulacin. Entre estos existen dos particularmente muy similares que se diferencian por ser uno de distribucin libre (licencia gratuita) y el otro propietario. Nos referimos a Octave y Matlab respectivamente. El software libre llamado OCTAVE1 que posee un entorno muy similar a Matlab, y que permite el mismo tipo de programacin as como tambin acepta los cdigos realizados sobre Matlab.
Figura 3 Octave La plataforma Matlab2 propiedad de Mathworks puede ser definido (segn sus fabricantes) como un lenguaje de alto nivel y un entorno interactivo que permite realizar tareas de clculo complejas de forma ms rpida que con los lenguajes de programacin tradicionales, como C, C++ y Fortran. Su nombre proviene de la reduccin de Matrix Laboratory (laboratorio de matrices).
Figura 1 Matlab
1
2
Posee adems una variedad muy amplia de Toolbox que proveen funcionalidades en reas especficas tales como: Optimizacin y Matemtica Optimization Toolbox Symbolic Math Toolbox Partial Differential Equation Toolbox Genetic Algorithm and Direct Search Toolbox Anlisis de datos y Estadstica Statistics Toolbox Neural Network Toolbox Curve Fitting Toolbox Spline Toolbox Model-Based Calibration Toolbox Anlisis y Diseo de Sistemas de Control Control System Toolbox System Identification Toolbox Fuzzy Logic Toolbox Robust Control Toolbox Model Predictive Control Toolbox Aerospace Toolbox Comunicaciones y Procesamiento de Seales Signal Processing Toolbox Communications Toolbox Filter Design Toolbox Filter Design HDL Coder Wavelet Toolbox Fixed-Point Toolbox RF Toolbox Procesamiento de Imagenes Image Processing Toolbox Image Acquisition Toolbox Mapping Toolbox Medicin y Prueba Data Acquisition Toolbox Instrument Control Toolbox Image Acquisition Toolbox SystemTest OPC Toolbox Matlab trae incorporado Simulink, que es una plataforma para simulacin multidominio y diseo basado en modelos de sistemas dinmicos y embebidos. Proporciona un entorno grfico interactivo y un conjunto de libreras de bloques adaptables que permiten disear, simular, implementar y probar una gran variedad de sistemas con variacin temporal, entre los que se incluyen sistemas de comunicaciones, control, procesamiento de seales, vdeo e imagen.
M. C. Jarur M.
M. C. Jarur M.
VENTANA WORSPACE
COMMAND WINDOW
COMMAND HISTORY
M. C. Jarur M.
La manera en que se usa la ventana de comandos en Matlab es similar a la consola de cualquier Sistema Operativo, tan solo se requiere conocer los comandos y su sintaxis respectiva. A tener en cuenta: % todo lo que se escribe despus del signo de porcentaje es llamado comentario (%este es un comentario). Los comandos se pueden escribir cada uno por lnea, o en una sola lnea separados por una coma (>> x=4, y=5, z=9) Los comandos pueden ser escritos con un ; (punto y coma) al final o no, la diferencia en es que al no finalizar con ; se produce un eco de dicho comando en la misma ventana de comandos.
Para comenzar se muestran una serie de comandos bsicos con su debida explicacin que podran usarse en matemtica bsica. Comandos help demos sqrt roots abs log log10 clear plop Axis figure Clc Uso >>help >>demos >>sqrt(A) >>roots(P(x)) >>abs(A) >>log(A) >>log10(A) >>clear A >>plop(a,b) >>axis(opcion) >>figure(gcf) >>clc Detalle Aparece la ventana de ayuda Aparecen ejemplos Raz cuadrada de A Halla las races del polinomio P(x) Valor absoluto de A Logaritmo natural de A Logaritmo base 10 de A Borra la variable A Grafica los pares ordenados (a,b) Opciones del escalado del grafico Llama al grafico al frente Borra la pantalla de comandos
Los dos vectores creados anteriormente poseen 1 fila y 3 columnas. Otra forma de crear vectores es, >>x=(a,b) Crea un vector que aumenta de 1 en 1, desde a hasta b. >>x=(a:c:b) Crea un vector que aumenta de c en c, desde a hasta b. Por ejemplo, >>x=(1:5) Genera un vector con los valores: 1, 2, 3, 4, 5 >>x=(1:3:9) Genera un vector x con los valores: 1, 4, 7 Para crear una matriz de tamao 3x3 se tiene como ejemplo, >> y=[1 2 3;4 5 6;7 8 9]; Donde cada fila esta separada por un punto y coma. Otros ejemplo utilizando el comando de generacin de nmeros randmicos rand(), >> A=rand(6), B=inv(A), B*A ; % vea la estructura de cada variable La coma significa otras sentencias, es decir seria lo mismo que >> A=rand(6) >> B=inv(A) >> B*A A parte de definir un vector introduciendo cada uno de sus elementos, tambin podemos crearlo haciendo uso de las siguientes sentencias: (a:b) crea un vector que comienza en el valor a y acaba en el valor b aumentando de 1 en 1. (a:c:b) crea un vector que comienza en el valor a y acaba en el valor b aumentando de c en c. linspace (a,b,c) genera un vector linealmente espaciado entre los valores a y b con c elementos. linspace (a,b) genera un vector linealmente espaciado entre los valores a y b con 100 elementos. logspace (a,b,c) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con c elementos. logspace (a,b) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con 50 elementos.
9 M. C. Jarur M.
Ejemplos varios,
>> (1:7) % crea un vector que comienza en 1, aumenta de 1 en 1 y acaba en 7 ans = 1234567 >> (1:3:10) % crea un vector que comenzando en 1, aumenta de 3 en 3 hasta el 10 ans = 1 4 7 10 >> (1:4:10) % comenzando en 1, aumenta de 4 en 4 hasta el 10 y por eso acaba en 9 ans = 159 >> (50:-7:1) % crea un vector que comenzando en 50, disminuye de 7 en 7 hasta el 1 ans = 50 43 36 29 22 15 8 1 >> linspace (2,6,3) % genera un vector desde el 2 al 6 con 3 elementos equidistantes ans = 246 >> linspace (2,6,4) % genera un vector desde el 2 al 6 con 4 elementos equidistantes ans = 2.0000 3.3333 4.6667 6.0000 >> logspace (0,2,4) % genera un vector logartmicamente espaciado entre 10^0 y 10^2 con 4 elementos ans = 1.0000 4.6416 21.5443 100.0000
Por otra parte, si se necesita cambiar el valor de una variable basta con re-asignarla, como se indica a continuacin >> x=18 % x vale 18 >> x=(1:1:10) % x ahora es un vector de 10 elementos Finalmente si se requiere borrar una variable, se utiliza el comando clear >>clear x Y la variable x ser borrada.
Posteriormente es necesario tener valores para el eje de las ordenadas. Y para ello procedemos a utilizar una ecuacin lineal: >>y=x+3 >>z=x+5 As creamos las variables y y z las cuales tomarn los valores respectivos segn la ecuacin asociada. Ejemplo Funcin Seno Veamos cmo se puede representar la funcin seno entre 0 y 10. Para empezar se crea un vector X de 0 a10 con una distancia de 0.01: x=0:0.1:10; A continuacin, calculemos sin(x) almacenando el resultado en la variable y: y=sin(x);
Ejemplo Parbola Crearemos la variable x que ser un vector de 2501 elementos don el menor es -10 avanzando en 0.01 en 0.01 hasta llegar a 15 >>x=-10:0.01:15; Despus creamos la funcin y(x) que tendr la forma de una ecuacin cuadrtica >>y=x.^2 - 5*x - 10; % x.^2 Significa x al cuadrado
11
M. C. Jarur M.
A continuacin se mostrarn varios ejemplos, Ejemplo lnea recta Para conseguir los valores en el eje de las abscisas y las ordenadas hacemos lo siguiente: >>x=(0:1:10) >>y=x+3 Y para obtener la grfica siguiente se tiene, >>plot(x,y)
13 12 11 10 9 8 7 6 5 4 3
10
Tambin se puede mostrar la traza de varias funciones que dependan de una misma variable, esto es: >>x=[1 2 3 4 5 6 7 8 9 10] >>y=x+3 >>z=x+5 >>plot(x,y,x,z) Y se observa a continuacin el resultado,
16
14
12
10
10
12
M. C. Jarur M.
Ejemplo parbola Al igual como se explic anteriormente primero se crean los vectores, >>x=-10:0.01:15; >>y=x.^2 - 5*x - 10; % x.^2 Significa x al cuadrado >>plot(x,y)
140 120 100 80 60 40 20 0 -20 -10
-5
10
15
Ejemplo Sinusoide Como se explico anteriormente se crearan los respectivos vectores x e y segn, >> x=0:0.1:10; >> y=sin(x); >> plot(x,y);
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
10
13
M. C. Jarur M.
Ejemplo: >>plot(x,y,-rs, LineWidth,2) En donde -rs quiere decir que son lneas continuas de color rojo y de marcas cuadradas. El LineWidth,2 da la posibilidad de regular el grosor de la lnea, siendo el tamao en esta ocasin igual a 2. Tambin se le puede dar el nombre al grfico escribiendo: >>plot(x,y),title('Grafica de una Funcin Lineal') %todo junto Si queremos podemos cambiar los ejes con la funcin Axis. MATLAB ajusta la escala de cada uno de los ejes de modo que vare entre el mnimo y el mximo valor de los vectores a representar. Este es el llamado modo "auto", o modo automtico. Para definir de modo explcito los valores mximo y mnimo segn cada eje, se utiliza el comando:
14 M. C. Jarur M.
axis([xmin, xmax, ymin, ymax]) Mientras que: axis('auto') devuelve el escalado de los ejes al valor por defecto o automtico. Otros posibles usos de este comando son los siguientes: axis('equal') el escalado es igual en ambos ejes axis('square') la ventana ser cuadrada Entre otros
Ejemplos, Si queremos que los ejes empiecen segn eje X de (-10,15) eje Y de (-20, 140) >>axis([-10,15,-20,140]) Si queremos graficar la funcin y(x) segn color rojo lnea continua grosor de lnea igual a 1.5 con grilla, es decir, cuadrcula con ttulo en azul (blue) y un recuadro verde >>plot(x,y,'-r', 'LineWidth',1.5),grid,title('Grafica 'EdgeColor', 'g'); de una Parabola', 'color', 'b',
Posteriormente haremos que la ventana sea cuadrada >>axis('square'), figure(gcf) Quedando como resultado la figura siguiente para la grfica de la parbola antes realizada.
15
M. C. Jarur M.
Vista del Editor Para crear un archivo M-file se debe abrir el editor, pudiendo hacerse de dos maneras distintas: desde la ventana de comandos escribir el comando edit, abriendose automticamente la ventan del editor. Ir al men File, seleccionar New y M-file. Los archivos M-files contienen un conjunto de instrucciones que Matlab interpreta y ejecuta en la ventana de comandos (Command Windows). De esta forma se pueden ejecutar varias tareas tan solo escribiendo un archivo M-file y luego llamndolo por su nombre en la Ventana de Comandos. Comencemos con un ejemplo sencillo: EJEMPLO 1 ============================================================ %Grafico de funciones f=(x-2)^2+(y-3)^2-5; %(x-2)^2+(y-3)^2=5 en una circunferencia ezplot(f); grid on %usando ezplot, lo rangos de las variables predeterminados son 2pi<=variable<=2pi hold on; ezplot(f,[ -1,5,0,6]); %en donde los nmeros entre corchetes corresponden a los rangos de las variables x e y dados por uno. [x,y,z,], por lo tanto el par ordenado (1,5) es el rango de x y el par ordenado (0,6) es el rango de y. a=(-10:0.1:10); b=a.^2; %parbola con una variable hold on; %permite realizar varios grficos en una misma ventana sin que se distorsionen
16 M. C. Jarur M.
plot(a,b); g=y-2*(x-3)^2+3; %parbola y=2*(x-3)^2-3 con dos variables hold on; ezplot(g); hold off; %para que los futuros grficos con se mezclen ============================================================ Se puede presenciar que corresponde al mismo orden que se usaba en la lnea de comandos. Ahora se debe guardar el archivo en la ruta predefinida C:\MATLAB6p5\work con el nombre que se desee, en este caso circulo. As creamos un archivo circulo.m que ser llamado al igual como se ejecuta un comando, es decir, >>circulo Obteniendo de esta forma una grafica de la funcin que buscbamos.
y-2 (x-3)2+3 = 0 6
-2
-4
-6 -6 -4 -2 0 x 2 4 6
Ahora mostraremos otro ejemplo para lo que abriremos un archivo M-file nuevo. EJEMPLO 2 ============================================================ %Tareas Varias [a,b]=meshgrid(-10:0.1:10,-10:0.1:10); %escribir varios rangos, en este caso para a yb c1='a.^2+2*a.*b+b.^2-8*a+8*b'; figure(1) ezplot(c1); grid on c2='a.^2-2*b'; hold on figure(1)
17 M. C. Jarur M.
ezplot(c2) hold off x=-2:0.1:2; y=-3:0.1:3; [u,v]=meshgrid(x,y); z=u.^2 v.^2; figure(2); mesh(x, y, z); %grafico de malla figure(3); contour(x, y, z); %grafico de contorno figure(4); surfc(x, y, z); %grafico de superficie y contorno figure(5); surf(x, y, z); %grafico de superficie shading interp; %suavizado del grafico ============================================================ Llamaremos al archivo varios.m, lo guardaremos en la carpeta work nuevamente para posteriormente llamarlo desde la Ventana de Comandos >> varios
18
M. C. Jarur M.
1.7Programacin en MATLAB
Como ya se ha mencionado Matlab tiene un lenguaje de alto nivel incluido. La sintaxis de este lenguaje es similar a la del lenguaje C. A continuacin se dan a conocer algunas palabras claves bsicas para realizar un pequeo programa en Matlab. Sintaxis Entrada de datos Salida de datos Detalle variable=input(mensaje); disp(valor); con un solo valor disp([valor, valor, ]); con varios valores Salida de datos con fprintf(formatos,variables); en donde los formatos formato pueden ser enteros (%d), reales (%f), etc. Condiciones Son banderas que definen si existe un estado se realiza algo, sino, se realiza otra cosa. Las palabras claves if, else y end. En el ejemplo 1 se muestra su uso Bucles Solo daremos a conocer la estructura while o mientras por el momento, que ejecuta una accin mientras se cumpla un estado. Las palabras claves son while y end. En el ejemplo 2 se muestra su uso. Explicaremos ms en detalle con varios ejemplos sencillos. Ejemplo 1: mostrar el nmero mayor ingresado ============================================================ a=input('ingrese el primer dato: '); b=input('ingrese el segundo dato: '); if a>b m=a; else m=b; end disp(m); ============================================================ Lo guardamos con el nombre ejem1.m, y lo ejecutamos en la llamndolo por la Ventana de Comandos >>ejem1
19
M. C. Jarur M.
Ejemplo 2: Suma de los n primeros nmeros de una progresin armnica ============================================================ n=input('cantidad de trminos: '); s=0; while n>0 s=s+1/n; n=n-1; end disp(s); ============================================================ Lo guardamos con el nombre ejem2.m y lo ejecutamos llamndolo desde la Ventana de Comandos: >>ejem2 Se puede concluir que la forma de programar en Matlab es muy sencilla y parecida a otros lenguajes de programacin. La diferencia y ventaja de Matlab radica en la finalidad del entorno, ya que cuenta con herramientas matemticas de nivel avanzado para reas como calculo (limites, derivadas, integrales) y algebra (matrices, sumatorias), por lo tanto se pueden crear programas que fcilmente pueden desarrollar cualquier calculo matemtico. Ejemplo 3: Solucin a un problema simple de algoritmos Planteamiento del problema Una Profesora de sptimo bsico quiere tener un control de su curso de n (n>2) alumnos, del los cuales por cada prueba que realice, quiere tener el promedio de las notas del curso completo y tambin quiere tener el nombre de la persona que tiene la mejor nota para entregarle un incentivo por su calificacin y tambin la persona que tiene la peor nota para un mayor cuidado de ella, por su bajo rendimiento Cdigo solucin num_alumnos=input('ingrese numero de alumnos del curso ==> '); if num_alumnos > 1; % condiciona el programa con 2 alumnos o mas para que tenga sentido %Ingresa los datos de las notas en dos diferentes vectores con los mismos %subindices i=1; for k=1:num_alumnos notas(i)=input('ingrese nota ==> '); nombre=input('ingrese nombre ==> ','s'); disp(' '); celda(i)={nombre}; i=i+1; end; %calcula la media aritmetica (promedio) de todos los alumnos
20 M. C. Jarur M.
media=sum(notas)/num_alumnos; sprintf('El Promedio de las notas es %d',media) %calcula al alumno con la mayor nota i=1; mayor=notas(1); subindice=i; for k=1:num_alumnos; if mayor < notas(i); mayor=notas(i); subindice=i; end; i=i+1; end; disp('el alumno con la mayor nota es '); celda(subindice) sprintf('Y su nota es %d',mayor) %calcula al alumno con la menor nota i=1; menor=notas(1); subindice=i; for k=1:num_alumnos; if menor > notas(i); menor=notas(i); subindice=i; end; i=i+1; end; disp('el alumno con la menor nota es '); celda(subindice) sprintf('Y su nota es %d',menor) clear; % borra las variables ocupadas else disp('el numero de alumnos debe ser mayor que 2 '); end;
21
M. C. Jarur M.
clear all close all %EJEMPLO DE ANALISIS ESPECTRAL Fs = 1000; %frecuencia de muestreo t = 0:1/Fs:0.25; %vector con datos muestreados a 1 khz x1=sin(2*pi*50*t); x2=2*sin(2*pi*100*t); subplot(411) plot(t(1:100),x1(1:100)), title('seal sinusoidal pura 50 hz en el dominio del tiempo'); subplot(412) plot(t(1:100),x2(1:100)), title('seal sinusoidal pura 100 hz en el dominio del tiempo'); n=256; x = x1+x2; %suma de seales de 60 y 100 hz. subplot(413) plot(t(1:100),x(1:100)), title('suma de seales sin ruido en el dominio del tiempo'); %********************************* y1 = fft(x,256); %obtencin de la fft utilizando 256 puntos %********************************* yy1 = y1.*conj(y1)/256; %Obteniendo la norma f1 = Fs/256*(0:127); %generacin del vector frecuencia subplot(414) plot(f1(1:100), yy1(1:100)); %graficando solamente 100 puntos axis([0 200 0 200]) set(gca,'xtick',[0:50:200]) title('Espectro de la seal'); grid xlabel('frecuencia [hz]'); figure y1 = x + 3*randn(size(t));
subplot(211) plot(t(1:100),y1(1:100)), title('seal con ruido en el dominio del tiempo'); xlabel('tiempo (seg)') grid y = fft(y1,256); yy = y.*conj(y)/256; f = 1000/256*(0:127); subplot(212) plot(f(1:100), yy(1:100)); %obtencin de la fft utilizando 256 puntos %Obteniendo la norma %generacin del vector frecuencia %graficando solamente 100 puntos 23 M. C. Jarur M.
En la siguiente figura se muestran en el siguiente orden, funcin sinusoidal de 50Hz y amplitud 1; funcin sinusoidal de 100Hz y amplitud 2; suma de ambas seales; anlisis espectral de la seal resultado de la suma, donde se aprecian los componentes en frecuencia de ambas seales.
En la siguiente grfica se muestra la seal resultado de las sumas ms un ruido gaussiano, y su respectivo anlisis espectral.
24
M. C. Jarur M.
25
M. C. Jarur M.
26
M. C. Jarur M.
Ejemplo utilizando Simulink para la lectura de un dispositivo de entrada. En este caso es posible verificar (posterior a la conexin del micrfono y parlantes en el PC) que efectivamente se realiza un registro de la seal capturada por el micrfono. Esta seal podra ser almacenada en un archivo para su posterior procesamiento. De la misma forma es que la plataforma permite leer datos de un archivo ya pre-existente, lo que facilita mucho el procesamiento de seales a todo nivel.
27
M. C. Jarur M.
% Implementacion de un MLP que sera entrenado con XOR % Patrones de Entrada p= [0 0 1 1; 0 1 0 1]; % Target T= [0 1 1 0]; % Creacion de la red con dos entradas, cuatro neuronas en la capa oculta y % 1 salida net = newff (minmax (p), [4 1], {'logsig','logsig'}, 'traingd'); %trainlm' % Se fijan parametros para el entrenamiento net.trainParam.show = 250; %%25 net.trainParam.lr =0.2; %%0.02 net.trainParam.epochs = 10000; %%400 net.trainParam.goal = 1e-8; % Entrenamiento [net,tr] = train(net,p,T); %% Simulacion despues de entrenar a = sim (net,p); e = T -round(a) % Mostrar los resultados figure plot(T,'x'); hold on plot(a,'o'); % Mostrar los pesos de la red net.IW{1} %pesos capa oculta net.b{1} %bias capa oculta net.LW{2} %pesos capa de salida net.b{2} %bias capa salida
28
M. C. Jarur M.
Grficas que muestra el proceso de entrenamiento y la posterior salida de la Red. Por otra parte Matlab ofrece un entrono grfico para la implementacin de redes neuronales que es llamado desde la lnea de comandos con el trmino nntool, como se muestra en la siguiente imagen.
Inicio de herramienta nntool A continuacin se muestra un esquemtico de la secuencia completa de configuracin de dicha herramienta con sus respectivas ventanas de configuracin.
29
M. C. Jarur M.
Creacin de la Red
Entrenamiento Simulacin
30
M. C. Jarur M.
2 Lgica Difusa
Como una forma de familiarizarse con el entorno de programacin para Lgica Difusa de Matlab a continuacin se muestra un ejemplo simple de implementacin de un control de trfico difuso para un semforo utilizando las funciones que trae el Toolbox de Fuzzy y la interfaz grfica de configuracin de un Sistema Difuso. Se desea controlar en tiempo real el periodo en que un semforo estar en el estado de Luz Verde (paso de vehculo). Para lograr esto se cuenta con sensores que son capaces de entregar informacin respecto de la longitud de la cola de vehculos en la fase roja anterior y el ritmo de llegada de vehculos en la fase verde del semforo. Segn el planteamiento de la problemtica se tiene: Variables de entrada (o de estado) o A: Ritmo de llegada de vehculos (en la fase verde del semforo). o Q: Longitud de la cola de vehculos (en la fase roja). Variables de salida (o de control) o T: Tiempo de la fase verde del semforo (con un valor mximo prefijado). Etiquetas lingsticas de cada variable: o A : Ritmo de llegada. o Q: Longitud de cola. o T: Tiempo de fase verde
Por otra parte segn opiniones expertas respecto de las funciones de pertenencia para cada una de las etiquetas lingsticas se tiene lo siguiente:
_P eq ue
_P oc os
M uc ho
Po co s
M ed ia
La rg a
M uy
M uy
M uc h
Pe qu e
Coches
1 2 3 4 5 6 7 8 9 10
10
Variables de entrada, Q y A
31
M. C. Jarur M.
si
Coches
os
M uy _C or to
T
1
M ed io
C or to
10
Variable de salida T Y las reglas difusas de control segn se indica en la siguiente tabla las que son del tipo SI A Y Q ENTONCES T (tambin definidas por un experto en trnsito).
Pocos Corto
La rg o
Segs.
Muchos Medio
Muy_Corto Corto
Muy_Pequea Muy_Corto
Entonces teniendo clara la problemtica y la solucin de control difusa es necesario abrir el editor fuzzy (FIS Editor) desde la lnea de comandos de Matlab con la sentencia fuzzy. Donde se apreciar la siguiente pantalla:
32
M. C. Jarur M.
Vista principal de la internas Fuzzy de Matlab. Ahora es necesario segn la definicin de la problemtica de control, las variables fuzzy y sus respectivas funciones de pertenencia, completar cada fase segn se indica en la figura anterior, es decir, Ingresar las funciones de pertenencia para las variables de entrada A y Q. Ingresar las funciones de pertenencia para las variables de salida T. Ingresar las reglas de control. Luego cada una de estas etapas puede ser visualizada en la siguiente figura, como se indica.
33
M. C. Jarur M.
Pantalla inicial
Reglas
Vista de las distintas configuraciones realizadas para este ejemplo. Finalmente cuando todo el modelo ha sido configurado, podemos ver su operacin (Control del tiempo de luz verde), a travs del Visor de Reglas (Rule Viewer), que nos permite cambiar los valores de los sensores (CRISP, provenientes de las variables A y Q), y en la misma pantalla apreciar como se ejecutan cada una de las reglas y se compone la solucin final a travs de la grfica. Por ltimo a partir de alguna tcnica de desfusificacin (por ejemplo centroide), la herramienta tambin nos entrega el valor de la salida del sistema, en trminos del tiempo que el semforo estar encendido en luz verde. Ver figura siguiente.
34
M. C. Jarur M.
Variable A
Variable Q
Variable T
Todas las funcionalidades aqu expuestas son tambin implementables en lnea de comandos o cdigos, sin necesidad de usar la interfaz grfica fuzzy.
35
M. C. Jarur M.