You are on page 1of 18

PRODUCTO ACADÉMICO ACTIVIDAD INDIVIDUAL

EVALUACIÓN FINAL

PRESENTADO POR:
FLOR MARINA CARILLO REYES
CÓDIGO 68302853
GRUPO: 203036A_34

PRESENTADO A:
JUAN MONROY
DIRECTOR DE CURSO

MÓDULO:
SOFTWARE INGENIERIA
CÓDIGO CURSO: 203036A_291

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA -UNAD


PROGRAMA INGENIERÍA DE TELECOMUNICACIONES
TAME, ARAUCA
DICIEMBRE 13 DE 2016

1
CONTENIDO

INTRODUCCIÓN ............................................................................................................... 3

PRODUCTO ACADÉMICO ACTIVIDAD INDIVIDUAL EVALUACIÓN FINAL


PROBLEMA A RESOLVER............................................................................................... 4
1. DOCUMENTACIÓN SOLUCIÓN DEL PROBLEMA ............................................... 4
2. DESCRIPCIÓN DE LA SOLUCIÓN A NIVEL DE ALGORITMO. .............................. 6
3. CON UN EJEMPLO EXPLICAR EL USO DEL APLICATIVO ................................. 10
4. RECOMENDACIONES Y SUGERENCIAS. ............................................................ 13
5. POSIBILIDAD DE APLICACIÓN EN OTRO ESPACIO O SITUACIÓN. ................. 14

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

REFERENCIAS BIBLIOGRÁFICAS ................................................................................ 17

2
INTRODUCCIÓN

La solución a muchos de los problemas de ingeniería, se analizan mediante el


tratamiento matemático, representación de sistemas y programación en ambientes de
texto con software para modelamiento matemático.

En ese sentido, el presente trabajo busca aplicar la teoría a la práctica los conocimientos
de fundamentos de software en el modelamiento matemático con Matlab desarrollando
una solución a un problema de ingeniería respecto al control y monitoreo de los tiempos
de duración de los procesos en curso en la sección de pinturas de una fábrica de
carrocerías.

3
PRODUCTO ACADÉMICO ACTIVIDAD INDIVIDUAL EVALUACIÓN FINAL
PROBLEMA A RESOLVER

Una industria de carrocerías, en la sección de pintura, disponía de un tablero donde se


indicaba a través 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 cómputo
donde residía el código fuente que controlaba dicha visualización, sufrió un ataque de
un virus troyano, por tanto a la empresa le urge generar un código prototipo temporal,
que realice la misma visualización con el mismo hardware (matriz de leds de 5*10).

Es importante aclarar que:

 En el tablero se visualizaba a través de los leds un código que identificaba el


proceso (P1, P2, P3 y P4) y con un juego de luces se representaba el tiempo que
restaba de ejecución de dicho proceso. (solo se empleaba la matriz de leds de
5*10 para mostrar en ellos tanto el código del proceso como el tiempo restante de
ejecución con actualizaciones segundo a segundo)
 Los tiempos de duración de cada proceso se entregan por un instrumento anexo,
en formato binario de 11 bits y teniendo en cuenta que ningún tiempo era inferior
a 3 segundos.
 El operario al visualizar la matriz de leds, podría identificar el proceso en el que se
encontraba la sección 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 programación.

1. DOCUMENTACIÓN SOLUCIÓN DEL PROBLEMA

4
Para llevar a cabo la solución 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 función
zeros con un solo argumento escalar de entrada, se genera una matriz cuadrada.1

Mediante la cual se determina la creación de los Procesos 1 al 4 mediante la siguiente


estructura de Sentencias de Control Selectivas Múltiple.2

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


Diagrama de Flujo:

1
MATLAB Para Ingenieros (Holly Moore).pdf
2
MATLAB.&.Simulink.Para.Ingenieria-Miguel.Ataurima.Arellano.pdf

5
2. DESCRIPCIÓN DE LA SOLUCIÓN 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 LED’S
SEGÚN 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');

6
clc %Inicio el programa limpiando todo lo que hay en la ventana de comandos.
% 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 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];
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];
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];
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];

%========================================================================
%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');

7
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

8
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

9
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 fábrica de automóviles.

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 representaría encendía con los números 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 representaría encendía con los números 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.

Manipulación de matrices MATLAB

MANIPULACIÓN DE MATRICES: Conforme resuelva problemas cada vez más


complicados con MATLAB, encontrará que necesitará combinar pequeñas matrices con
matrices más grandes, extraer información 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 números n cerrada
entre corchetes. Los números se pueden separar mediante espacios o comas, a
discreción del usuario. (Incluso puede combinar las dos técnicas en la misma definición
de matriz.) Las nuevas filas se indican con punto y coma. Por ejemplo:

También se puede definir una matriz al hacer una lista de cada fila en una línea 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 APLICACIÓN EN OTRO ESPACIO O SITUACIÓN.

Matlab nos permite la programación con diferentes entornos en la cual propongo que las
posibilidades de aplicación a otros espacios serian con ARDUINO.

MATLAB y Simulink permiten crear proyectos de Arduino utilizando diagramas de bloques


de programación 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, diseñada para facilitar el uso de la electrónica en proyectos

14
multidisciplinares. Su lenguaje de programación 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-de-
pines/)

3
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 ingeniería es muy útil para transferir herramientas para el


desarrollo de soluciones a problemas de
 La práctica es muy importante para adquirir destrezas y competencia en
programación de un software de modelamiento matemático como el Matlab
(Scilab) y/o Simulink Matlab.
 Se logró avanzar un peldaño más en el aprendizaje para desarrollo de soluciones
a problemas básicos de la ingeniería, específicamente del campo de tratamiento
matemático, representación de sistemas y programación en ambientes de texto
con software para modelamiento matemático.
 Se comprendió la importancia de aplicación de herramientas de toolbox, gráficas
y simulink como solución a problemas enmarcados de la ingeniería.
.

16
REFERENCIAS BIBLIOGRÁFICAS

Monroy, J. (2014). PLE Matlab-Scilab. Recuperado de.


http://www.netvibes.com/juanolmv#Donde_relacionarme_con_otros

Scilab 5.1.1. (2009). Recuperado de:


http://www.scilab.org/content/download/247/1702/file/introscilab.pdf

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 Programación. Recuperado de


http://www.usabilidadweb.com.ar/prog.php

Lopez, I. A. (2010,). Tipos de datos y operadores. Recuperado de:


http://datateca.unad.edu.co/contenidos/204018/2014-
2_ava/Tipos_de_datos_y_operadores.pdf

Saucedo, R. (2015). Manual de Programación Lógica Introducción a la Programación 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 de.


http://www.netvibes.com/juanolmv#Donde_relacionarme_con_otros

Capítulo 1. Páginas 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 Programación. 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. Capítulos 1-4. Páginas 1-
50. (Capítulo 6. Páginas 63-83.)

Barragán, D. (27 de septiembre de 2016). Manual de Interfaz Gráfica 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).Creación de interfaces de usuario con
Matlab. Recuperado de la URL
http://www.utm.mx/~vero0304/HCPM/GUI_Matlab.pdf

Videos:

Curso básico de programación en Matlab Parte 1-Youtube. (08 de diciembre de


2016). Recuperado de la URL: https://www.youtube.com/watch?v=y3_4uPfgaXQ

Curso básico de programación 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 gráfica en Matlab -Youtube. (08 de diciembre de 2016). Recuperado de la


URL:
https://www.youtube.com/watch?v=jBecrEnkSV0

18

You might also like