Documente Academic
Documente Profesional
Documente Cultură
PRESENTADO POR:
GRUPO: 203036_87
TUTOR
LUIS EDUARDO VIDAL
PLATO MAGDALENA
MAYO 2018
INTRODUCCIÓN
MATLAB es un lenguaje de alto desempeño diseñado para realizar cálculos técnicos. MATLAB
integra el cálculo, la visualización y la programación en un ambiente fácil de utilizar donde los
problemas y las soluciones se expresan en una notación matemática. MATLAB es un sistema
interactivo cuyo elemento básico de datos es el arreglo que no requiere de dimensionamiento
previo. El nombre abreviado de MATLAB es “MATrix LABoratory”, es un programa para realizar
cálculos numéricos con vectores y matrices.
Como caso particular puede también trabajar con números escalares, tanto reales como complejos.
Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y
tres dimensiones. MATLAB tiene también un lenguaje de programación propio (lenguaje M).
MATLAB se utiliza ampliamente en:
• Cálculos numéricos
• Desarrollo de algoritmos
• Modelado, simulación y prueba de prototipos
• Análisis de datos, exploración y visualización
• Graficación de datos con fines científicos o de ingeniería
• Desarrollo de aplicaciones que requieran de una interfaz gráfica de usuario (GUI, Graphical User
Interface).
Para lograr una mayor comprensión en el uso de los operadores lógicos es necesario diseñar un
aplicativo desarrollado en Matlab o Scilab, donde el usuario pueda generar la tabla de verdad de una
expresión lógica introducida por el usuario. El aplicativo debe darle al usuario la posibilidad de:
A. Seleccionar el tipo de estructura que tiene la expresión booleana así:
(p operador q) operador z
p operador (q operador z)
(p operador q) operador (r operador s)
((p operador q) operador r) operador s
……. Proponer una estructura con mínimo 4 variables
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).
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.
1. Descripción de la solución y criterios empleados para su selección
Se estudió de manera precisa el uso y manejo de las matrices en Matlab. Como una manera de
controlar la información, almacenamiento y manipulación del bit que nos informan en el problema.
Según los ejercicios realizados en las prácticas se pudo determinar utilizar estos procedimientos
para solucionar este problema.
En la etapa de mostrar el tiempo de cada fase, nos valimos de una matriz de 10 x 5 donde mediante
ciclos For se fueron transformando en unos a medida que el tiempo transcurría.
En cada fase se controló de manera independiente donde se podría introducir el tiempo y otra
función donde se podría realizar la secuencia de las fases una a una indicando el tiempo restante,
e informando cuando el tiempo haya terminado.
Inicio = FASES
Inicio = software propio de Guide.
Escribir “ b ”
Escribir “ 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
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
Caso ‘ 2 ‘
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
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
if
porcentaje_de_tiempo==98|porcentaje_de_tiempo==96|porcentaje_de_tiempo==94|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|porcenta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcentaje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcentaje_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_de_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_tiempo
==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|porcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|porcentaje_
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;
if
porcentaje_de_tiempo==98|porcentaje_de_tiempo==96|porcentaje_de_tiempo==94|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|porcenta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcentaje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcentaje_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_de_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_tiempo
==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|porcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|porcentaje_
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)
end
% _______________________
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==94|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|porcenta
je_de_tiempo==74|porcentaje_de_tiempo==72|porcentaje_de_tiempo==70|porcentaje
_de_tiempo==68|porcentaje_de_tiempo==66|porcentaje_de_tiempo==64|porcentaje_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_de_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_tiempo
==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|porcen
taje_de_tiempo==6|porcentaje_de_tiempo==4|porcentaje_de_tiempo==2|porcentaje_
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
********************************************************');
2. Explicación de la validación de la solución a partir del banco de datos
seleccionados
A continuación se mostrara las diferentes Capturas de pantalla del funcionamiento del aplicativo.
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.
3. Posibilidad de aplicación en otro espacio o situación
Puede ser utilizado en cualquier problema que tenga que ver con control computarizado una
máquina X de manufactura de productos.
MatLab emplea matrices porque con ellas se puede describir infinidad de cosas de una forma
altamente flexible y matemáticamente eficiente. Una matriz de pixeles puede ser una imagen o una
película. Una matriz de fluctuaciones de una señal puede ser un sonido o una voz humana. Y tal
vez más significativamente, una matriz puede describir una relación lineal entre los componentes
de un modelo matemático.
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 aporto 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