Вы находитесь на странице: 1из 22

PRESENTADO POR:

Juan Diego Mosquera

Código:
1040380496

Grupo:
91

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


Introducción

En una industria manufacturera, disponen de una máquina que realiza un proceso en tres
fases, cada una de ellas se desarrolla en un tiempo calculado por un instrumento anexo
que devuelve tres números binario cada uno de 13 bits, dichos números representan el
intervalo de tiempo de duración de cada fase (el tiempo mínimo de cada fase no era inferior
a 5 segundos).

Adicionalmente la máquina dispone de un conjunto de leds dispuestos en forma de matriz


de 10 por 5, a partir de ellos se identificaba la fase y a través de un código visual se daba
una aproximación del tiempo que restaba para finalizar el proceso (a través de juego de
luces que se actualizaba cada segundo).

En este momento el código de programación que realizaba dicho proceso sufrió un daño
irreparable, por tanto es necesario generar un nuevo código a nivel de prototipo, que
responda a estas condiciones, esto para que sea estudiado y viabilizar su aplicación… Los
datos de entrada y salida se deben dar a partir de los recursos del PC, y usando Matlab
como lenguaje de programación.
ALGORITMO DE LA SOLUCION DEL PROBLEMA.
Algoritmo para solución propuesta de la matriz de led . Hecho en
Matlab con la interfaz gráfica Guide.

Inicio = FASES
Inicio = software propio de Guide.

Leer Cuadro de texto 1


Leer Cuadro de texto 2
Leer Cuadro de
texto 3
Función Botón Uno

Escribir “ Fase 1 en
curso” a = Cuadro de
texto 1 M= matriz
ceros[10,5] b = M
b(2, 1:3)=1
b(2:8,3)=1 b(8,:) =
1

Escribi
r “ b ”
Escribi
r “ M ”
retro =
a;
hacer para i = 1 : a;
hacer para j= 1:5
si retro = 0 entonces
Salir de
ciclo Fin
si retro =
retro -1
M(i,j) = retro

Escribir = “ Cuadro de texto 5 = (M)”


Esperar 1 segundo
M(i,j) = 1;
Escribir = “Cuadro de texto 5 =M”
Esperar 1
segundo fin
para
Fin para

Fin botón Uno


Función= Botón Dos
Escribir “ Fase 2 en curso”
c = Cuadro de
texto 2 M =
matriz
ceros(10,5) d=
M; d(2,:) =
(1) d(2:6,5) =
(1);
d(6,:) = (1);
d(7:9,1) = (1);
d(9,:) = (1)
Escribir =” Cuadro de texto
5, d” Esperar 5 segundos
retro2 = c;

Hacer para i = 1 a c
Hacer para j= 1 a 5
si retro2 = 0 entonces
Salir del
ciclo Fin si
retro2 = retro2 -1;
M(i,j) = retro2;
Escribir “Cuadro de texto 5,M “
Esperar 1 segundo
M(i,j) = 1
Escribir “Cuadro de texto
5, M ” Esperar 1 segundo
fin para fin para fin Botón
Dos
Función Botón Tres
Escribir “ Fase 3 en curso”
e = Cuadro de
texto 3 M = Matriz
ceros (10,5) f =
M; f(2,:) = 1
f(6, :) = 1 f(9
,:) = 1 f(2:9,5)=
1

Escribir “Cuadro de texto 5, f ”


Esperar 5 segundos
Escribir “Cuadro de texto 5 ,M “

retro
3 =
e;

Hacer para i = 1 a e;
Hacer para j= 1 a 5
si retro3 = 0 Entonces
Salir del
ciclo Fin si
retro3 = retro3 -1
M(i,j) = retro3;
Escribir “Cuadro de texto 5 , M “
Esperar 1 segundo
M(i,j) = 1;
Escribir “Cuadro de texto 5 ,M “
Esperar 1 segundo
Fin
para
Fin para
Fin Botón Tres

Función Botón
Cuatro
Hacer para t =
1 a 3
Elegir caso t ;
Caso ‘ 1
Escribir “ Fase 1 en curso”
a = Cuadro de
texto 1 M=
matriz
ceros[10,5] b =
M b(2, 1:3)=1
b(2:8,3)=1
b(8,:) = 1

Escribir “Cuadro de texto 5


, b ” Escribir “Cuadro de
texto 5 , M ” retro = a;
hacer para i = 1 : a;
hacer para j= 1:5
si retro = 0 entonces
Salir de ciclo
Fin si
retro = retro -1
M(i,j) = retro

Escribir = “Cuadro de texto 5 = M ”


Esperar 1 segundo
M(i,j) = 1;
Escribir = “Cuadro de texto 5 =M ”
Esperar 1
segundo fin para
Fin para

Caso ‘ 2 ‘

Escribir “ Fase 2 en curso”


c = Cuadro de
texto 3 M =
matriz
ceros(10,5) d=
M; d(2,:) =
(1) d(2:6,5) =
(1); d(6,:) =
(1); d(7:9,1) =
(1); d(9,:) =
(1)
Escribir =” Cuadro de texto 5 , d”
Esperar 5
segundos retro2 =
c;

Hacer para i = 1 a c
Hacer para j= 1 a 5
si retro2 = 0 entonces
Salir del ciclo
Fin si
retro2 = retro2 -1;
M(i,j) = retro2;
Escribir “Cuadro de texto 5 ,M “
Esperar 1 segundo
M(i,j) = 1
Escribir “Cuadro de texto 5
, M ” Esperar 1 segundo
fin para
fin para

Caso ‘ 3 ‘
Escribir “ Fase 3 en curso”

e = Cuadro de
texto 3 M =
Matriz ceros
(10,5) f = M;
f(2,:) = 1 f(6,
:) = 1 f(9 ,:) =
1 f(2:9,5)= 1

Escribir “Cuadro de texto 5 , f ”


Esperar 5 segundos
Escribir “Cuadro de texto 5 ,M “

retro
3 =
e;

Hacer para i = 1 a e;
Hacer para j= 1
a 5 si retro3 = 0
Entonces
Salir del ciclo
Fin si
retro3 = retro3 -1
M(i,j) = retro3;
Escribir “Cuadro de texto 5 , M “
Esperar 1 segundo
M(i,j) = 1;
Escribir “Cuadro de texto 5 ,M “
Esperar 1 segundo
Fin para

Fin para

Fin
Botón
Tres
Fin elegir Caso
Fin hacer para
Fin Botón Cuatro
Fin Fase

CODIGO FUENTE EN MATLAB Y GUIDE.


% Diseño y ejecucion del plan de accion
% generaremos tres numeros aleatorios decimales dentro del rango
establecido % (13 bit´s = de 1 a 8191seg) para simular la entrada del
tiempo de % ejecucion de cada una de las fases.
%------------------------------------------------------------------------
--
clc,clear
tiempo_fase_
1 = 50; t1 =
50;
tiempo_fase_
2 = 50; t2 =
50;
tiempo_fase_
3 = 50; t3 =
50;
%--------------------------------------------------------------------
------
fprintf('\n********************************************************')
; fprintf('\n* TIEMPO DE DURACION POR FASE EN SEGUNDOS
*');
fprintf('\n********************************************************')
; fprintf('\n Tiempo Fase 1= %d',tiempo_fase_1); fprintf('\n
Tiempo Fase 2= %d',tiempo_fase_2); fprintf('\n Tiempo Fase 3=
%d',tiempo_fase_3); fprintf('\nPresione una tecla para continuar ');
pause
%-----------------------------------------------------------------------
--- m=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1
1 1;1 1
1 1 1;1 1 1 1 1;1 1 1
1 1;]; j=10; h=6;
%---------------------------------------------------------------------
----- % Creamos un ciclo donde se ejecutara un temporizador regresivo
para la
% fase 1 de trabajo ,desde el tiempo dado aleatoriamente hasta 1 segundo
% sera decimal y binario para cumprir por lo requerido en el programa.
%------------------------------------------------------------------------
--
% Ciclo temporizador binario
Fase 1 while t1~=-1 clc

fprintf('\n********************************************************'
); fprintf('\n* TIEMPO DE DURACION POR FASE EN SEGUNDOS
*');
fprintf('\n********************************************************'
); fprintf('\n\n Tiempo Fase 1= %d',tiempo_fase_1);
fprintf('\n Tiempo Fase 2= %d',tiempo_fase_2); fprintf('\n
Tiempo Fase 3= %d',tiempo_fase_3);

fprintf('\n\n********************************************************');
fprintf('\n* TEMPORIZADOR FASE 1 *');

fprintf('\n********************************************************'
); fprintf('\n\n\n TIEMPO EN SEGUNDOS DECIMALES
*'); fprintf('\n\n\n %d',t1); n=t1; cociente=n;
resultado=[];
% Ciclo temporizador y conversion a binario
Fase 1 while cociente > 0
resto=rem(cociente,2);
cociente=fix(cociente./2);
resultado=[resto
resultado]; end;
fprintf('\n\n\n TIEMPO EN SEGUNDOS BINARIOS *');
fprintf('\n\n\n'); disp (resultado) t1=t1-1;
fprintf('\n********************************************************'
); pause(1);
% ____________________________________________________________________
porcentaje_de_tiempo=(t1*100)/tiempo_fase_1;

i
f
porcentaje_de_tiempo==98|porcentaje_de_tiempo==96|porcentaje_de_tiempo==9
4|po
rcentaje_de_tiempo==92|porcentaje_de_tiempo==90|porcentaje_de_tiempo==88|
porc
entaje_de_tiempo==86|porcentaje_de_tiempo==84|porcentaje_de_tiempo==82|po
rcen
taje_de_tiempo==80|porcentaje_de_tiempo==78|porcentaje_de_tiempo==76|porc
enta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcen
taje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcenta
je_d
e_tiempo==62|porcentaje_de_tiempo==60|porcentaje_de_tiempo==58|porcentaje
_de_
tiempo==56|porcentaje_de_tiempo==54|porcentaje_de_tiempo==52|porcentaje_d
e_ti
empo==50|porcentaje_de_tiempo==48|porcentaje_de_tiempo==46|porcentaje_de_
tiem
po==44|porcentaje_de_tiempo==42|porcentaje_de_tiempo==40|porcentaje_de_ti
empo
==38|porcentaje_de_tiempo==36|porcentaje_de_tiempo==34|porcentaje_de_tiem
po== 32
|porcentaje_de_tiempo==30|porcentaje_de_tiempo==28|porcentaje_de_tiempo
==26
|porcentaje_de_tiempo==24|porcentaje_de_tiempo==22|porcentaje_de_tiempo==
20|p
orcentaje_de_tiempo==18|porcentaje_de_tiempo==16|porcentaje_de_tiempo==14
|por
centaje_de_tiempo==12|porcentaje_de_tiempo==10|porcentaje_de_tiempo==8|po
rcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|porcent
aje_ de_tiempo==0;

%
____________________
___ h=h-1;
for i=h:-1:h
if i==1
h=6;
end end
% _______________________
hold
off hold
on
subplot
(3,1,1)
m (j,i)= 0;
bar (m);
%
_______________________
if h==6
j=j-1; end
% _______________________

subplot
(3,1,2)
subplot
(3,1,3)
end
%
_______________________
end %-----------------
-----------------------
-----------------------
---------- m=[1 1 1 1
1;1 1 1 1 1;1 1 1 1 1;1
1 1 1 1;1 1 1 1 1;1 1 1
1 1;1 1 1 1 1;1 1
1 1 1;1 1 1 1 1;1 1
1 1 1]; j=10; h=6;
%--------------------------------------------------------------------
----- % Creamos un condicional dentro del cual se ejecuta el
temporizador de
% trabajo para la fase 2 ,este empezara a acorrer siempre y cuando se
halla
% terminado la fase de trabajo 1 (en decimal y
Binario) if t1==-1;
% Ciclo temporizador binario
Fase 2 while t2~=-1 clc
fprintf('\n********************************************************');
fprintf('\n* TIEMPO DE DURACION POR FASE EN SEGUNDOS *');
fprintf('\n********************************************************');
fprintf('\n\n Tiempo Fase 1= %d',tiempo_fase_1);
fprintf('\n Tiempo Fase 2= %d',tiempo_fase_2); fprintf('\n
Tiempo Fase 3= %d',tiempo_fase_3);

fprintf('\n\n********************************************************')
; fprintf('\n * FASE UNO TERMINADA * '); fprintf('\n
********************************************************');

fprintf('\n\n********************************************************');
fprintf('\n * TEMPORIZADOR FASE 2 *');

fprintf('\n********************************************************');
fprintf('\n\n\n TIEMPO EN SEGUNDOS DECIMALES *');
fprintf('\n\n\n %d',t2); n=2; cociente=n;
resultado=[];
% Ciclo temporizador y conversion a binario
Fase 2 while cociente > 0
resto=rem(cociente,2);
cociente=fix(cociente./2);
resultado=[resto resultado]; end;
fprintf('\n\n\n TIEMPO EN SEGUNDOS BINARIOS
*'); fprintf('\n\n\n'); disp (resultado)
t2=t2-1; pause(1);
%
____________________________________________________________________
porcentaje_de_tiempo=(t2*100)/tiempo_fase_2;

i
f
porcentaje_de_tiempo==98|porcentaje_de_tiempo==96|porcentaje_de_tiempo==9
4|po
rcentaje_de_tiempo==92|porcentaje_de_tiempo==90|porcentaje_de_tiempo==88|
porc
entaje_de_tiempo==86|porcentaje_de_tiempo==84|porcentaje_de_tiempo==82
|porcen
taje_de_tiempo==80|porcentaje_de_tiempo==78|porcentaje_de_tiempo==76|porc
enta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcen
taje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcenta
je_d
e_tiempo==62|porcentaje_de_tiempo==60|porcentaje_de_tiempo==58|porcentaje
_de_
tiempo==56|porcentaje_de_tiempo==54|porcentaje_de_tiempo==52|porcentaje_d
e_ti
empo==50|porcentaje_de_tiempo==48|porcentaje_de_tiempo==46|porcentaje_de_
tiem
po==44|porcentaje_de_tiempo==42|porcentaje_de_tiempo==40|porcentaje_de_ti
empo ==38
|porcentaje_de_tiempo==36|porcentaje_de_tiempo==34|porcentaje_de_tiempo
==
32
|porcentaje_de_tiempo==30|porcentaje_de_tiempo==28|porcentaje_de_tiem
po ==26
|porcentaje_de_tiempo==24|porcentaje_de_tiempo==22|porcentaje_de_tiem
po==20|p
orcentaje_de_tiempo==18|porcentaje_de_tiempo==16|porcentaje_de_tiempo
==14|por
centaje_de_tiempo==12|porcentaje_de_tiempo==10|porcentaje_de_tiempo==
8|porcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|por
centaje_ de_tiempo==0;
%
____________________
___ h=h-1;
for i=h:-1:h
if i==1
h=6;
end end
% _______________________
hold
off hold
on
subplot
(3,1,1)
subplot
(3,1,2)
m (j,i)= 0;
bar (m);
%
_______________________
if h==6
j=j-1; end
% _______________________
subplot (3,1,3)

e
n
d

%
____________________
___ end end
%-----------------------------------------------------------------------
--- m=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1
1 1;1 1
1 1 1;1 1 1 1 1;1 1
1 1 1]; j=10; h=6;
%------------------------------------------------------------------------
-
% Creamos un condicional dentro del cual se ejecuta el temporizador de
% trabajo para la fase 2 ,este empezara a acorrer siempre y cuando se
halla
% terminado la fase de trabajo 1 (en decimal y
Binario) if t2==-1;
% Ciclo temporizador binario
Fase 3 while t3~=-1
clc
fprintf('\n********************************************************');
fprintf('\n* TIEMPO DE DURACION POR FASE EN SEGUNDOS *');
fprintf('\n********************************************************');
fprintf('\n\n Tiempo Fase 1= %d',tiempo_fase_1);
fprintf('\n Tiempo Fase 2= %d',tiempo_fase_2); fprintf('\n
Tiempo Fase 3= %d',tiempo_fase_3);

fprintf('\n\n********************************************************');
fprintf('\n * FASE UNO TERMINADA * '); fprintf('\n
********************************************************');

fprintf('\n\n********************************************************')
; fprintf('\n * FASE DOS TERMINADA * '); fprintf('\n
********************************************************');

fprintf('\n\n********************************************************');
fprintf('\n * TEMPORIZADOR FASE 3 *');

fprintf('\n********************************************************');
fprintf('\n\n\n TIEMPO EN SEGUNDOS DECIMALES *');
fprintf('\n\n\n %d',t3); n=t3; cociente=n;
resultado=[];
% Ciclo temporizador y conversion a binario Fase 3
while cociente > 0 resto=rem(cociente,2);
cociente=fix(cociente./2); resultado=[resto
resultado]; end; fprintf('\n\n\n TIEMPO
EN SEGUNDOS BINARIOS *'); fprintf('\n\n\n');
disp (resultado) t3=t3-1; disp (h) disp
(i) disp (j) pause(1)
% ____________________________________________________________________
porcentaje_de_tiempo=(t3*100)/tiempo_fase_3;

if
porcentaje_de_tiempo==98|porcentaje_de_tiempo==96|porcentaje_de_tiempo==9
4|po
rcentaje_de_tiempo==92|porcentaje_de_tiempo==90|porcentaje_de_tiempo==88|
porc
entaje_de_tiempo==86|porcentaje_de_tiempo==84|porcentaje_de_tiempo==82|po
rcen
taje_de_tiempo==80|porcentaje_de_tiempo==78|porcentaje_de_tiempo==76|porc
enta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcen
taje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcenta
je_d
e_tiempo==62|porcentaje_de_tiempo==60|porcentaje_de_tiempo==58|porcentaje
_de_
tiempo==56|porcentaje_de_tiempo==54|porcentaje_de_tiempo==52|porcentaje_d
e_ti
empo==50|porcentaje_de_tiempo==48|porcentaje_de_tiempo==46|porcentaje_de_
tiem
po==44|porcentaje_de_tiempo==42|porcentaje_de_tiempo==40|porcentaje_de_ti
empo ==38
|porcentaje_de_tiempo==36|porcentaje_de_tiempo==34|porcentaje_de_tiempo
==
32|porcentaje_de_tiempo==30|porcentaje_de_tiempo==28|porcentaje_de_tiempo
==26
|porcentaje_de_tiempo==24|porcentaje_de_tiempo==22|porcentaje_de_tiempo==
20|p
orcentaje_de_tiempo==18|porcentaje_de_tiempo==16|porcentaje_de_tiempo==14
|por
centaje_de_tiempo==12|porcentaje_de_tiempo==10|porcentaje_de_tiempo==8|po
rcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|porcent
aje_ de_tiempo==0;

%
_______________________
h=h-1; for
i=h:-1:h
if i==1
h=6;

end
end
% _______________________

hold off
subplot (3,1,1)
subplot (3,1,3)
m (j,i)= 0;
bar (m);
%
_______________________
if h==6
j=j-1; end
%
_______________________
subplot (3,1,2)
end

%
____________________
___ end end
%MENSAJE FIN DE
PROCESO clc
fprintf('\n********************************************************');
fprintf('\n* FIN DE PROCESO *');
fprintf('\n*******************************************************
*');
fprintf('\n\n*****************************************************
***'); fprintf('\n * FASE UNO TERMINADA * '); fprintf('\n
********************************************************');
fprintf('\n\n*****************************************************
***'); fprintf('\n * FASE DOS TERMINADA * '); fprintf('\n
********************************************************');
fprintf('\n\n*****************************************************
***'); fprintf('\n * FASE TRES TERMINADA * '); fprintf('\n
********************************************************');
Explicación de la validación de la solución
A continuación se mostrara las diferentes Capturas de pantalla del funcionamiento del
aplicativo.

Inicialmente al ejecutar el aplicativo nos encontraremos con la interfaz para el tiempo de


depuración por fase en segundos:

Al presionar cualquier tecla se inicia el temporizador para la fase 1, donde observamos el


tiempo por segundos en decimal y binarios, al igual que la representación en la gráfica de la
distribución del tiempo del trabajo.
Podemos entonces observar el tiempo que resta para terminar el proceso de la fase del trabajo.

Una vez terminado el proceso de la fase 1, la pantalla nos indicara el inicio de la segunda
fase:
Después de finalizada la segunda fase e iniciada la tercera fase, podemos visualizar la
representación de la matriz 10 x 5 en el plano 2D de la aplicación.

En la última etapa se imprimen por pantalla los valores de las coordenadas dadas a la matriz
que se pueden observar en esta parte:
Observamos también la distribución del tiempo en la gráfica:
Después de finalizada la demostración de la fase del trabajo No. 3, el aplicativo quedara en
orden de espera para recibir orden de cualquier tecla para reiniciar.
Conclusiones
Mediante el proceso tomado se llega a una solución propuesta con base en los fundamentos y los
conocimientos adquiridos durante el proceso de formación para que mediante la construcción de
esta solución colaborativa nos apropiemos de la hipótesis y propuesta metodología dispuesta y
definida por el grupo para contribuir activamente en la ejecución de la propuesta metodológica y
así se aportó en la construcción de la solución del problema planteado en la consolidación del
informe que recopilo de manera sucinta la solución al problema planteado.
BIBLIOGRAFIA
TheMathWorks. (2009). [en Línea]. Extraído el 31 de octubre de2013,
dehttp://www.mathworks.com/help/pdf_doc/matlab/getstart.pdf
Capítulo 1. Páginas 26-29
Aprenda matlab 7.0. (2005). [en Línea] .Extraído el 31 de julio de 2013.
http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70prime
ro.pdf
Capítulo 6. Páginas 63-83
Video Fundamentos de programación Scilab. Extraído 1 de junio de
2014. https://www.youtube.com/watch?v=rO_EZskFW5Q
Aprenda matlab 7.0. (2005). [en Línea] .Extraído el 31 de julio de 2013.
http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab70/matlab70pri
mero.pdf.
Capítulo 8. Páginas 108-119
Toolbox matlab [En línea]. Extraído el 1 de junio de 2014.
http://www.mathworks.es/es/help/database/getting-started-withdatabase-toolbox.html
Simulink. [En línea]. Extraído el 2 de junio de 2014.
http://www.mathworks.es/products/simulink/videos.html

Вам также может понравиться