You are on page 1of 18

PRODUCTO ACADMICO ACTIVIDAD INDIVIDUAL

EVALUACIN FINAL

PRESENTADO POR:
FLOR MARINA CARILLO REYES
CDIGO 68302853
GRUPO: 203036A_34

PRESENTADO A:
JUAN MONROY
DIRECTOR DE CURSO

MDULO:
SOFTWARE INGENIERIA
CDIGO CURSO: 203036A_291

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


PROGRAMA INGENIERA DE TELECOMUNICACIONES
TAME, ARAUCA
DICIEMBRE 13 DE 2016

CONTENIDO
INTRODUCCIN ............................................................................................................... 3

PRODUCTO ACADMICO ACTIVIDAD INDIVIDUAL EVALUACIN FINAL


PROBLEMA A RESOLVER............................................................................................... 4
1. DOCUMENTACIN SOLUCIN DEL PROBLEMA ............................................... 4
2. DESCRIPCIN DE LA SOLUCIN A NIVEL DE ALGORITMO. .............................. 6
3. CON UN EJEMPLO EXPLICAR EL USO DEL APLICATIVO ................................. 10
4. RECOMENDACIONES Y SUGERENCIAS. ............................................................ 13
5. POSIBILIDAD DE APLICACIN EN OTRO ESPACIO O SITUACIN. ................. 14

CONCLUSIONES ............................................................................................................ 16

REFERENCIAS BIBLIOGRFICAS ................................................................................ 17

INTRODUCCIN

La solucin a muchos de los problemas

de ingeniera, se analizan mediante el

tratamiento matemtico, representacin de sistemas y programacin en ambientes de


texto con software para modelamiento matemtico.

En ese sentido, el presente trabajo busca aplicar la teora a la prctica los conocimientos
de fundamentos de software en el modelamiento matemtico con Matlab desarrollando
una solucin a un problema de ingeniera respecto al control y monitoreo de los tiempos
de duracin de los procesos en curso en la seccin de pinturas de una fbrica de
carroceras.

PRODUCTO ACADMICO ACTIVIDAD INDIVIDUAL EVALUACIN FINAL


PROBLEMA A RESOLVER

Una industria de carroceras, en la seccin de pintura, dispona de un tablero donde se


indicaba a travs de una matriz de leds de 5*10, el momento en que se desarrollaba un
proceso determinado y el tiempo que restaba para que terminara. El equipo de cmputo
donde resida el cdigo fuente que controlaba dicha visualizacin, sufri un ataque de
un virus troyano, por tanto a la empresa le urge generar un cdigo prototipo temporal,
que realice la misma visualizacin con el mismo hardware (matriz de leds de 5*10).

Es importante aclarar que:

En el tablero se visualizaba a travs de los leds un cdigo que identificaba el


proceso (P1, P2, P3 y P4) y con un juego de luces se representaba el tiempo que
restaba de ejecucin de dicho proceso. (solo se empleaba la matriz de leds de
5*10 para mostrar en ellos tanto el cdigo del proceso como el tiempo restante de
ejecucin con actualizaciones segundo a segundo)

Los tiempos de duracin de cada proceso se entregan por un instrumento anexo,


en formato binario de 11 bits y teniendo en cuenta que ningn tiempo era inferior
a 3 segundos.

El operario al visualizar la matriz de leds, podra identificar el proceso en el que se


encontraba la seccin de pintura y el tiempo que restaba para que terminara dicho
proceso.

Los datos de entrada y salida se deben dar a partir de los recursos del PC, y
usando Matlab como lenguaje de programacin.

1. DOCUMENTACIN SOLUCIN DEL PROBLEMA

Para llevar a cabo la solucin el problema se selecciona en la matriz de 5x10 mediante


los siguientes comandos:

zeros=ones(5,10);

Matriz de ceros: A veces es til crear una matriz de ceros. Cuando se usa la funcin
zeros con un solo argumento escalar de entrada, se genera una matriz cuadrada.1

Mediante la cual se determina la creacin de los Procesos 1 al 4 mediante la siguiente


estructura de Sentencias de Control Selectivas Mltiple.2

Por consecutivas evaluaciones de condiciones : if ... elseif ... else


Diagrama de Flujo:

1
2

MATLAB Para Ingenieros (Holly Moore).pdf


MATLAB.&.Simulink.Para.Ingenieria-Miguel.Ataurima.Arellano.pdf

2. DESCRIPCIN DE LA SOLUCIN A NIVEL DE ALGORITMO.

Nombrar variables a utilizar en el programa


Tiempo Inicio
Tiempo Fin
Procesos (P1, P2, P3, P4)
Matriz de led
CONSICIONALES
SI
TIEMPO >= 3 0 ==3
INICIO DEL PROCESO N
GENERAR MATRIZ LEDS
SEGN EL PROCESO (P1,P2,P3,P4)
SINO
MUESTRE MENSAJE DE ALERTA AL USUARIO
ALERTA: NO ES UN PARAMETRO CORRECTO
PAUSAR
FIN
CODIGO DEL PROGRAMA AUTOMOVILES
disp('EVALUACION FINAL - UNAD');
disp('FLOR MARINA CARRILLO');

clc %Inicio el programa limpiando todo lo que hay en la


% Declaro las variables a utilizar en el programa.
N=180;
aviso=100;
tiempo_ini=1;
tiempo_fin=3;
zeros=ones(5,10);
led=zeros(5,10);
%Matriz de leds para cada uno de los procesos
P1=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 0
0 0 0 1; 1 0 0 0 0 1 0 1 1 1];
P2=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 1
0 0 0 1; 1 0 0 0 1 1 0 1 1 1];
P3=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 1
0 0 0 1; 1 0 0 0 1 1 0 1 1 1];
P4=[1 1 1 0 1 0 1 1 1 1; 1 0 1 0 1 0 1 0 0 1; 1 1 1 0 1
1 0 0 1; 1 0 0 0 0 0 1 1 1 1];

ventana de comandos.

1 0 0 1 1; 1 0 0 0 0 1
1 0 0 1 1; 1 0 0 0 1 0
1 0 1 1 1; 1 0 0 0 0 1
1 1 1 1 1; 1 0 0 0 0 0

%========================================================================
%Creo el Proceso 1
T1=input('Ingrese el rango de tiempo estimado para el inicio del PROCESO 1
(segundos) \n ')
%disp('T1');%Capturo el valor por teclado
if (T1==3 || T1>=3) %Aplico operadores logicos para evaluar que el tiempo
ingresado no sea menor que 3
disp('MATRIZ DE LED ENCENDIDA - PROCESO1');%Muestra en pantalla el incio
del P1
MATRIZ=P1;
disp(MATRIZ);
%Genero Numero en codigos binarios para el proceso 1
res= input('se genera el codigos binario de 11 bits por medio de la conversion
2 Decimal a Binario: ');
if (res==T1);
disp('error, el tiempo en P1 es demasiado corto')
input('');
else
nudec = T1;
nubin = dec2bin(nudec,11);
fprintf('codigo_1 %d en binario es %s \n',nudec,nubin);
end
%Muestro en pantalla el tiempo del proceso
disp(sprintf('Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante
%ds.', round(T1), round(T1), round(T1)));
disp(sprintf('PROCESO 1 FINALIZO\n'));
%disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado:
%ds. Tiempo restante %ds. \n', progreso*100, round(T1), round(T1),
round(T1)));
% Esto se supone que es una tarea que tarda mucho tiempo
pause(0.01);
elseif (T1>3)%Evaluo que el tiempo igresado no se inferior a 3 segundos la
cual no iniciara el proceso
dips('MATRIZ DE LED APAGADA - PROCESO 1');
else
disp('ESTABLESCA PARAMETROS CORRECTOS PARA INICIAR PROCESO DE PINTURA');

pause(1.00); %Genero una pausa para mostrarle


clc
end
%Fin del proceso 1
%========================================================================
%========================================================================
%Inicio del Proceso 2
try
T2=input('Ingrese el rango de tiempo estimado para el inicio del PROCESO 2
(segundos) \n ')
if (T2==3 || T2>=3) %Aplico operadores logicos para evaluar que el tiempo
ingresado no sea menor que 3
disp('MATRIZ DE LED ENCENDIDA - PROCESO 2');%Muestra en pantalla el incio
del P1
MATRIZ=P2;
disp(MATRIZ);
%Genero Numero en codigos binarios para el proceso 1
res= input('se genera el codigos binario de 11 bits por medio de la conversion
2 Decimal a Binario: ');
if (res==T2);
disp('error, el tiempo en P2 es demasiado corto')
input('');
else
nudec = T2;
nubin = dec2bin(nudec,11);
fprintf('codigo_1 %d en binario es %s \n',nudec,nubin);
end
%Muestro en pantalla el tiempo del proceso
disp(sprintf('Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante
%ds.', round(T2), round(T2), round(T2)));
disp(sprintf('PROCESO 2 FINALIZO\n'));
%disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado:
%ds. Tiempo restante %ds. \n', progreso*100, round(T1), round(T1),
round(T1)));
% Esto se supone que es una tarea que tarda mucho tiempo
pause(0.01);
elseif (T2>3)
dips('NO INICIO PROCESO => 1');
else
disp('ESTABLESCA PARAMETROS CORRECTOS DEL PROCESO => 2');
disp('ESTABLESCA PARAMETROS CORRECTOS PARA INICIAR PROCESO DE PINTURA');
pause(1.00); %Genero una pausa para mostrarle
clc
end
end
%Fin del proceso 2
%========================================================================
%========================================================================
%Inicio del Proceso 3
try

T3=input('Ingrese el rango de tiempo estimado para el inicio del PROCESO 3


(segundos) \n ')
if (T3==3 || T3>=3) %Aplico operadores logicos para evaluar que el tiempo
ingresado no sea menor que 3
disp('MATRIZ DE LED ENCENDIDA - PROCESO 3');%Muestra en pantalla el incio
del P1
MATRIZ=P3;
disp(MATRIZ);
%Genero Numero en codigos binarios para el proceso 1
res= input('se genera el codigos binario de 11 bits por medio de la conversion
2 Decimal a Binario: ');
if (res==T3);
disp('error, el tiempo en P3 es demasiado corto')
input('');
else
nudec = T3;
nubin = dec2bin(nudec,11);
fprintf('codigo_1 %d en binario es %s \n',nudec,nubin);
end
%Muestro en pantalla el tiempo del proceso
disp(sprintf('Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante
%ds.', round(T3), round(T3), round(T3)));
disp(sprintf('PROCESO 3 FINALIZO\n'));
%disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado:
%ds. Tiempo restante %ds. \n', progreso*100, round(T1), round(T1),
round(T1)));
% Esto se supone que es una tarea que tarda mucho tiempo
pause(0.01);
elseif (T3>3)
dips('NO INICIO PROCESO 3');
else
disp('ESTABLESCA PARAMETROS CORRECTOS DEL PROCESO 3');
disp('ESTABLESCA PARAMETROS CORRECTOS PARA INICIAR PROCESO DE PINTURA');
pause(1.00); %Genero una pausa para mostrarle
clc
end
end
%Fin del proceso 3
%========================================================================
%========================================================================
%Inicio del Proceso 4
try
T4=input('Ingrese el rango de tiempo estimado para el inicio del PROCESO 4
(segundos) \n ')
if (T4==3 || T4>=3) %Aplico operadores logicos para evaluar que el tiempo
ingresado no sea menor que 3
disp('MATRIZ DE LED ENCENDIDA - PROCESO 4');%Muestra en pantalla el incio
del P1
MATRIZ=P4;
disp(MATRIZ);
%Genero Numero en codigos binarios para el proceso 1

res= input('se genera el codigos binario de 11 bits por medio de la conversion


2 Decimal a Binario: ');
if (res==T4);
disp('error, el tiempo en P3 es demasiado corto')
input('');
else
nudec = T4;
nubin = dec2bin(nudec,11);
fprintf('codigo_1 %d en binario es %s \n',nudec,nubin);
end
%Muestro en pantalla el tiempo del proceso
disp(sprintf('Tiempo Transcurrido: %ds. Tiempo estimado: %ds. Tiempo restante
%ds.', round(T4), round(T4), round(T4)));
disp(sprintf('PROCESO 4 FINALIZO\n'));
%disp(sprintf('Progreso %2.2f%%. Tiempo Transcurrido: %ds. Tiempo estimado:
%ds. Tiempo restante %ds. \n', progreso*100, round(T1), round(T1),
round(T1)));
% Esto se supone que es una tarea que tarda mucho tiempo
pause(0.01);
elseif (T4>3)
dips('NO INICIO PROCESO 3');
else
disp('ESTABLESCA PARAMETROS CORRECTOS DEL PROCESO 4');
disp('ESTABLESCA PARAMETROS CORRECTOS PARA INICIAR PROCESO DE PINTURA');
pause(1.00); %Genero una pausa para mostrarle
end
end
%Fin del proceso 4
%=======================================================================%

3. CON UN EJEMPLO EXPLICAR EL USO DEL APLICATIVO

Mediante pantallazos se mostrar el funcionamiento de la matriz de led para cada uno


de los procesos de pintura de la fbrica de automviles.

Iniciamos a ejecutar el proceso uno (1) ingresando por teclado el tiempo de 3 segundos
como se muestra en la ventana de comandos:

10

La matriz de led se representara encenda con los nmeros uno (1) y ceros (0) leds
apagados.
Se genera la siguiente matriz:P1=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 0 1 0 0
1 1; 1 0 0 0 0 1 0 0 0 1; 1 0 0 0 0 1 0 1 1 1];
1110110111
1010010001
1110010011
1000010001
1000010111
Se iniciar el proceso 2 del programa donde le indicaremos que se ejecutar en 3
segundos por medio del teclado.

La matriz de led se representara encenda con los nmeros uno (1) y ceros (0) leds
apagados.

11

Se genera la siguiente matriz: P2=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 1 1 0


0 1 1; 1 0 0 0 1 0 0 0 0 1; 1 0 0 0 1 1 0 1 1 1];
1 1 1 0 1 1 0 1 1 1;
1 0 1 0 0 1 0 0 0 1;
1 1 1 0 1 1 0 0 1 1;
1 0 0 0 1 0 0 0 0 1;
1 0 0 0 1 1 0 1 1 1;

Se iniciar el proceso 3 del programa donde le indicaremos que se ejecutar en 3


segundos por medio del teclado.

Se genera la siguiente matriz: P3=[1 1 1 0 1 1 0 1 1 1; 1 0 1 0 0 1 0 0 0 1; 1 1 1 0 1 1 0


1 1 1; 1 0 0 0 0 1 0 0 0 1; 1 0 0 0 1 1 0 1 1 1];
1 1 1 0 1 1 0 1 1 1;
1 0 1 0 0 1 0 0 0 1;
1 1 1 0 1 1 0 0 1 1;
1 0 0 0 0 1 0 0 0 1;
1 0 0 0 1 1 0 1 1 1;
Se iniciar el proceso 4 del programa donde le indicaremos que se ejecutar en 3
segundos por medio del teclado de nuestro pc.

12

Se genera la siguiente matriz: P4=[1 1 1 0 1 0 1 1 1 1; 1 0 1 0 1 0 1 0 0 1; 1 1 1 0 1 1 1


1 1 1; 1 0 0 0 0 0 1 0 0 1; 1 0 0 0 0 0 1 1 1 1];
1 1 1 0 1 0 1 1 1 1;
1 0 1 0 1 0 1 0 0 1;
1 1 1 0 1 1 1 0 1 1;
1 0 0 0 0 0 1 0 0 1;
1 0 0 0 0 0 1 1 1 1;

4. RECOMENDACIONES Y SUGERENCIAS.
Manipulacin de matrices MATLAB
MANIPULACIN DE MATRICES: Conforme resuelva problemas cada vez ms
complicados con MATLAB, encontrar que necesitar combinar pequeas matrices con
matrices ms grandes, extraer informacin de matrices grandes, crear matrices muy
grandes y usar matrices con propiedades especiales.
En MATLAB, una matriz se puede definir al escribir una lista de nmeros n cerrada
entre corchetes. Los nmeros se pueden separar mediante espacios o comas, a
discrecin del usuario. (Incluso puede combinar las dos tcnicas en la misma definicin
de matriz.) Las nuevas filas se indican con punto y coma. Por ejemplo:

Tambin se puede definir una matriz al hacer una lista de cada fila en una lnea separada,
como en el siguiente conjunto de comandos MATLAB:

13

Incluso no necesita ingresar el punto y coma para indicar una nueva fila. MATLAB
interpreta

Fuente (MATLAB Para Ingenieros (Holly Moore).pdf)


5. POSIBILIDAD DE APLICACIN EN OTRO ESPACIO O SITUACIN.
Matlab nos permite la programacin con diferentes entornos en la cual propongo que las
posibilidades de aplicacin a otros espacios serian con ARDUINO.
MATLAB y Simulink permiten crear proyectos de Arduino utilizando diagramas de bloques
de programacin y de alto nivel.
Nos permitir programar leds, generar pantallas con mensajes mediante leds, Arduino es
una plataforma de hardware libre, basada en una placa con un microcontrolador y un
entorno de desarrollo, diseada para facilitar el uso de la electrnica en proyectos
14

multidisciplinares. Su lenguaje de programacin es Processing/Wiring. Pero se pueden


utilizar otros C, C#, Matlab, etc.3
Ejemplos con Matlab
ENTRADA DIGITAL: Teclear en ventana de comandos.
% MATLAB
a=arduino('COM5');
a.pinMode(4,'input');
a.digitalRead(4);
% Leer varias veces, moviendo PushButton
delete(a);
Hacer un script, que leyendo un push button, mande encender/apagar un LED. Use
ciclo while.

Fuente(https://robologs.wordpress.com/2014/02/16/arduino-y-matlab-iii-lectura-depines/)

http://extropynow.weebly.com/uploads/1/6/4/1/16411724/mi_dm2_u3.1.pdf

15

CONCLUSIONES

Entre otras conclusiones podemos mencionar las siguientes:

El software de la ingeniera es muy til para transferir herramientas para el


desarrollo de soluciones a problemas de

La prctica es muy

importante para adquirir destrezas y competencia en

programacin de un software de modelamiento matemtico como el Matlab


(Scilab) y/o Simulink Matlab.

Se logr avanzar un peldao ms en el aprendizaje para desarrollo de soluciones


a problemas bsicos de la ingeniera, especficamente del campo de tratamiento
matemtico, representacin de sistemas y programacin en ambientes de texto
con software para modelamiento matemtico.

Se comprendi la importancia de aplicacin de herramientas de toolbox, grficas


y simulink como solucin a problemas enmarcados de la ingeniera.

16

REFERENCIAS BIBLIOGRFICAS

Monroy,
J.
(2014).
PLE
Matlab-Scilab.
Recuperado
http://www.netvibes.com/juanolmv#Donde_relacionarme_con_otros
Scilab
5.1.1.
(2009).
Recuperado
http://www.scilab.org/content/download/247/1702/file/introscilab.pdf
MathWorks.
(2009).
TheMathworks.
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf.

de.

de:

Recuperado

de

Gonzalez, C. (23 de Mayo de 2009). El proceso de Programacin. Recuperado de


http://www.usabilidadweb.com.ar/prog.php
Lopez, I. A. (2010,). Tipos de datos y operadores.
http://datateca.unad.edu.co/contenidos/204018/20142_ava/Tipos_de_datos_y_operadores.pdf

Recuperado

de:

Saucedo, R. (2015). Manual de Programacin Lgica Introduccin a la Programacin con


la
ayuda
de
PseInt.
Compuclasico.
Recuperado
de
2016
http://www.compuclasico.com/pl/Manual%20Programaci%C3%B3n%20L%C3%B3gica.
pdf
Monroy,
J.
(2014).
PLE
Matlab-Scilab.
Recuperado
http://www.netvibes.com/juanolmv#Donde_relacionarme_con_otros

de.

Captulo 1. Pginas 1-10. (1-26) MathWorks. (2009). TheMathworks. Recuperado de


http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf.
Gonzalez, C. (23 de Mayo de 2009). El proceso de Programacin. Recuperado de
http://www.usabilidadweb.com.ar/prog.php
MathWorks. (2009). The Mathworks. Recuperado de
http://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf. Captulos 1-4. Pginas 150. (Captulo 6. Pginas 63-83.)
Barragn, D. (27 de septiembre de 2016). Manual de Interfaz Grfica de Usuario en
Matlab.
Recuperado
de
la
URL
https://www.dspace.espol.edu.ec/bitstream/123456789/10740/19/%255Bmatlab%2
55D_MATLAB_GUIDE.pdf

17

Corcuera P. (27 de septiembre de 2016).Creacin de interfaces de usuario con


Matlab.
Recuperado
de
la
URL
http://www.utm.mx/~vero0304/HCPM/GUI_Matlab.pdf

Videos:
Curso bsico de programacin en Matlab Parte 1-Youtube. (08 de diciembre de
2016). Recuperado de la URL: https://www.youtube.com/watch?v=y3_4uPfgaXQ

Curso bsico de programacin en Matlab Parte 2-Youtube. (08 de diciembre de


2016). Recuperado de la URL: https://www.youtube.com/watch?v=UG4bK_ENAxg
Programando en Matlab -Youtube. (08 de diciembre de 2016). Recuperado de la
URL:
https://www.youtube.com/watch?v=iDGyyb4pzPQ
Interfaz grfica en Matlab -Youtube. (08 de diciembre de 2016). Recuperado de la
URL:
https://www.youtube.com/watch?v=jBecrEnkSV0

18

You might also like