Professional Documents
Culture Documents
HENRIQUE
Curso de Ingeniería
de Máquinas Marítimas
Programación
Trabajo Práctico
Autoría de:
Programación 0
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Nombre: María Aguilar nº 11551
Contenido
Introducción.......................................................................2
Objetivos del trabajo..........................................................3
Presentación de la aplicación.............................................4
Manual del utilizador.......................................................4
Manual del programador.................................................6
Resultados........................................................................10
Mantenimiento de la aplicación.......................................15
Limitaciones de la aplicación...........................................16
Desenvolvimientos futuros...............................................16
Conclusion........................................................................17
Bibliografía.......................................................................17
Anexo...............................................................................18
Programación 1
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Introducción
MATLAB es una herramienta de software matemático que ofrece un entorno de
desarrollo integrado que tiene su propio lenguaje de programación. Es muy usado en
universidades y centros de investigación y desarrollo.
Fue creado por el matemático y programador de computadoras Cleve Moler en 1984.
Las aplicaciones de MATLAB se desarrollan en un lenguaje de programación propio.
Este lenguaje es interpretado, y puede ejecutarse tanto en el entorno interactivo, como a
través de un archivo de script (archivos *.m). Este lenguaje permite operaciones de
vectores y matrices, funciones, cálculo lambda, y programación orientada a objetos.
En este informe están presentados los objetivos del programa creado en Matlab, así
como también el uso de dicho programa. Se presenta un manual del utilizador, donde
están las características necesarias para la utilización de la aplicación. También se
muestra el manual del programador donde están referidas las cuestiones técnicas
necesarias; esto se refiere a como la aplicación debe ser colocada en el computador y
esta funcione sin problemas. En esta sección se incluirán print screen del código, así
como esquemas o fluxograma para una mejor explicación del programa; esta
explicación también incluye una descripción de cada una de las variables usadas.
En una de las secciones del informe se presentarán los resultados obtenidos con la
aplicación y su respectiva explicación.
Cada una de las secciones explicada detalladamente para una buena comprensión del
trabajo realizado.
Programación 2
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Objetivos específicos:
Dividir de manera correcta la carga en cada una de las posiciones del navío.
Mantener el equilibrio el navío.
Programación 3
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Presentación de la aplicación
A continuación, se presentará un manual del utilizador y un manual del programador lo
cual facilitará el uso del programa.
Manual del utilizador
Compilar el programa
Al compilarse saldrán dos opciones se debe escoger si desea los datos
numéricamente o gráficamente.
Adicional a esto existe una gráfica que al escoger cualquiera de las dos opciones
siempre estará presente (figure 4)
Programación 4
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Estas tres imagenes ya mostradas es lo que el utilizador vera si escoge ver los resultados
numericamente. Estos resultados seran explicados en la seccion de resultados.
Programación 5
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 6
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Al realizar un programa en Matlab es necesario empezar con que es lo que queremos
plasmar en el código y que es lo que queremos que nos dé como resultado y también
buscar la manera más fácil de desglosar el código.
Este es un programa que facilita la manera de como colocar la carga en un navío para
que esta quede uniformemente distribuida.
El programa empieza con un clc y un clear all los cuales siempre van en el
encabezado de los programas a realizar en Matlab son utilizados para el primero
borra los resultados de la ventana de comando y el segundo produce la
eliminación de las variables definidas en memoria.
Se escoge la variable que utilizaremos para la condición del ciclo en este caso
fue (cargamax<250)
Se coloca el ciclo que decidimos utilizar en este caso WHILE. La estructura del
bucle while es muy similar a la de C/C++/Java. Su sintaxis es la siguiente:
WHILE
CONDICON
SENTENCIA
END
Los bucles de while son similares a los del bucle for. Los bucles while continúan hasta
que se satisface algún criterio.
Fprintf esta función nos va a permitir escribir por pantalla un resultado que no
sabemos y que desarrollamos a lo largo del programa, aunque también se
pueden escribir cosa que sepamos. El resultado puede ser tanto numérico como
texto.
Se usaron los comandos figure [(1), (2), (3), (4)] para mostrar las gráficas dos, en cada
una de las figuras.
Programación 7
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Se usaron los bar que es utilizado para lo gráficos de barra y también etiquetas como por
ejemplo
xlabel (‘Etiqueta eje “x”’); ylabel (‘’Etiqueta del eje” y”); title (‘Titulo de la gráfica’);
subplot (m, n, p) divide la ventana gráfica y asigna la ventana donde se dibujará la
gráfica.
Bar3 es utilizado para la gráfica en 3D.
Se utilizó un input para preguntare al utilizador si deseaba ver los datos graficados o
numéricamente; el input se utiliza para las entradas de valores por teclado y que no
hemos definido al inicio del programa.
Y se utilizó nuevamente los condicionales if/else para la selección del utilizador y por
ultimo un Disp que agradecía al utilizador. Disp. Es para la salida de datos de manera
simple.
Las variables utilizadas y significado se definirán enseguida, sabiendo que cada una de
ellas fue inicializada en 0 porque el barco estaba descargado inicialmente:
a1, a2, a3, a4, a5 Representan cada una de las posiciones de la primera línea del
navío.
b1, b2, b3, b4, b5Representa cada una de las posiciones de la línea central del navío.
c1, c2, c3, c4, c5Representa cada una de las posiciones de la última línea del navío.
ca1, ca2, ca3, ca4, ca5 Representan los contadores cada una de las posiciones de la
primera línea del navío.
cb1, cb2, cb3, cb4, cb5 Representan los contadores cada una de las posiciones de la
línea central del navío.
cc1, cc2, cc3, cc4, cc5 Representan los contadores cada una de las posiciones de la
última línea del navío.
([ca1 ca2 ca3 ca4 ca5; cb1 cb2 cb3 cb4 cb5; cc1 cc2 cc3 cc4 cc5])Representa los
Contenedores en cada posición.
([ca1+ca2+ca3+ca4+ca5; cb1+cb2+cb3+cb4+cb5;
cc1+cc2+cc3+cc4+cc5])Representa los contenedores por línea.
Programación 8
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Para los if y elseif se usaron condiciones dependiendo del peso de cada posición se
explicarán una de cada línea del barco, ya que la lógica para todas las demás es la
misma:
Programación 9
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Fluxograma
Resultados
Los resultados del programa se darán dependiendo la elección del utilizador.
Si el utilizador escoge la opción de ver los resultados numéricamente aparecerá lo
siguiente
Esta lista repressenta como dice su titulo los numeros de contenedores en cada una de
las posiciones en el navio esto quiere decir o significa con cuantos contenedores o
Programación 10
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
cuantoss contenedores fueron necesario para porder llenar una de la posiciones del
navio y todo dependera del numero que salga del randperm.
En esta se presenta el peso maximo en cada una de las posiciones del navio.
En la primera lista esta la sumatoria de todos los contenedores en cada una de las
lineas del navio.
En la segunda lista esta la sumatoria de todos los contenedores en cada una de las
columnas del navio.
Programación 11
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
En la dos listas las sumatorias de los contenedores se hacen con referencia a cada
posicion dentro del navio. Esta sumatoria en el codigo se hace con lo contadores de cada
una de la posiciones.
En la primera lista esta la sumatoria de toda las cargas por lineas.
En la segunda tambien esta la sumatoria de todas las cargas por columnas.
En los dos casos las sumatorias se realizan con las cargas de cada posicion ya sea por la
lineas o por las columnas.
Los resultado graficos son presentado de la siguiente manera:
Programación 12
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
En la grafica se muestra la carga total en cada posicion del navio, con vista de proa y
bombordo; como se ve claramente la linea del centro tiene una carga menor que la linea
superior e inferior.
Programación 13
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
En la primera grafica se muestra los contenedores necesarios en cada una de las
posiciones para poder llenarse.
En la segunda se muestra la carga en cada una de la posiciones del navio. En la #1 las
tonelada en cada una de las posiciones es de 17; #2 todas son de 16 toneladas; #3-17
toneladas.
Programación 14
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
En la primera esta la carga por linea y tenemos que en la #1=85tons, #2=80tons,
#3=85tons.
En la segunda esta la carga por columna y tenemos que en la columna#1=50 tons,
columna#2=50 tons, columna#3=50 tons, columna#4=50 tons, columna#5=50 tons y
que al sumar todo nos da un total de 250 tons que es la carga maxima para el navio.
Mantenimiento de la aplicación
Un sistema de software producirá errores que serán detectados, casi con seguridad, por
los usuarios
del sistema y que no se descubrieron durante la fase de prueba. La corrección de estos
errores es parte del mantenimiento del software. Otro aspecto de la fase de
mantenimiento es la mejora del software añadiendo más características o modificando
partes existentes que se adapten mejor a los usuarios. Otras causas que obligarán a
revisar el sistema de software en la etapa de mantenimiento son las siguientes:
1) Cuando un nuevo hardware se introduce, el sistema puede ser modificado para
ejecutarlo en un nuevo entorno.
2) Si cambian las necesidades del usuario, suele ser menos caro y más rápido, modificar
el sistema existente que producir un sistema totalmente nuevo.
Por tal razón el mantenimiento del programa presentado dependerá como ya se dijo
antes más que todo por las necesidades que surjan departe del usuario.
Lo parámetros son:
Programación 15
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Limitaciones de la aplicación
En esta sección se apuntarán y explicarán algunas limitaciones de nuestra aplicación:
La carga máxima soportada por el programa era de 250 toneladas; esto quiere
decir que solo podrá ser usado para este tonelaje, ya que si no se modifica el
programa y solo se cambia el peso el programa no funcionara.
El randperm solo nos dará numero aleatorios entre el 1-20; lo que significa que
si deseamos números mayores debemos cambiar el randperm.
Las variables también están declaradas solo para el numero de posiciones del
barco en esta ocasión, si el programa se utilizara para un navío más grande se
deben usar más variables.
Las gráficas son imprimidas dos en cada figura si se desea ver una en cada hoja
se deberán cambiar los subplot (m, n, p) y los comandos figure(x) para separar
cada gráfico y de esta manera apreciarlos como más guste.
Desenvolvimientos futuros
Para mejorar nuestro programa y brindar un mejor desenvolvimiento del mismo
podemos recomendar las siguientes mejoras:
Programación 16
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Conclusion
Como resultado de la aplicación, podemos concluir que, a nuestro parecer, el programa
funciono de manera apropiada y esperada. La distribución de la carga fue ubicada de la
manera adecuada lo cual permitió que el barco este en equilibrio, el cual era uno de los
objetivos del programa. Existieron diferentes tipos de dificultades a la hora de realizar el
programa como, por ejemplo, el código se hizo un poco extenso debido al número de
variables que se utilizaron y las condicionales, o sea los if y elseif. Al imprimir los
resultados el utilizador tendrá dos opciones la cual el escogerá la que más le agrade; en
la opción numérica están definidas claramente el número de contenedores y las cargas
en cada una de las posiciones; también contadores por columna y por línea; y de igual
forma la carga por columna y por línea. Están cuantificadas detalladamente también se
encuentran en forma de gráficas.
Para concluir podemos afirmar que el programa trabaja de manera correcta y eficaz y
que cumple el fin deseado.
Bibliografía
[1] Herrera, F., and Verdegay, J. L., (Eds.), Genetic Algorithms and Soft Computing,
Physica-Verlag, 1996.
[2] https://sites.google.com/site/herramientasbasicasdematlab/8-funciones-logicas-y-
estructuras-de-control/estructuras-de-repeticion-bucles/estructuras-de-repeticion-bucles-
2.
Programación 17
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Anexo
Las imágenes presentadas a continuación es el código elaborado para el programa.
Programación 18
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 19
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 20
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 21
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 22
ESCOLA SUPERIOR NÁUTICA INFANTE D. HENRIQUE
Programación 23