Programacion

42
Universidad Nacional de San Crist ´ obal de Huamanga Facultad de Ingenier ´ ıa Minas, Geolog ´ ıa y Civil Escuela de Formaci ´ on Profesional de Ingeniera Civil CURSO PROGRAMACI ´ ON DIGITAL (IC-246) TITULO DOCENTE: Ing. CANCHARI GUTI ´ ERREZ Edmundo ALUMNOS: AYALA BIZARRO Rocky G. CARDENAS HUAMAN Royer J. CONTRERAS VENTURA Samir GAMBOA SANTANA Hedber HUAMAN CABRERA Yelsin J. Ayacucho, 19 de Junio de 2013

Transcript of Programacion

Universidad Nacional de San Cristobal deHuamanga

Facultad de Ingenierıa Minas, Geologıa y Civil

Escuela de Formacion Profesional de Ingeniera Civil

CURSO

PROGRAMACION DIGITAL (IC-246)

TITULO

DOCENTE:

Ing. CANCHARI GUTIERREZ Edmundo

ALUMNOS:

AYALA BIZARRO Rocky G.

CARDENAS HUAMAN Royer J.

CONTRERAS VENTURA Samir

GAMBOA SANTANA Hedber

HUAMAN CABRERA Yelsin J.

Ayacucho, 19 de Junio de 2013

Baja

E FA DIOS por iluminar y bendecir nuestro camino. A nue-

stros padres, quienes nos apoyan de manera incondicional

en nuestra formacion academica; gracias a ellos por apostar

siempre en la educacion.

H G

Indice GeneralIndice General

INGENIERÍA CIVIL - UNSCH

INTRO DUCCION

Movimiento vibratorio o vibracion es la variacion o cambio de configuracion de un sistema

en relacion al tiempo, en torno a una posicion de equilibrio estable, su caracterıstica

fundamental es que es periodico, siendo frecuente el movimiento armonico simple, por lo que

este movimiento adquiere una singular importancia en los estudios vibratorios. Los sistemas

mecanicos al ser sometidos a la accion de fuerzas variables con el tiempo, principalmente

periodicas, responden variando sus estados de equilibrio y, como consecuencia, presentan

cambios de configuracion que perturban su normal funcionamiento, presentan molestias al

personal que los maneja y acortan la vida util de los mecanismos.

Actualmente, el estudio y analisis de las vibraciones mecanicas ha adquirido gran im-

portancia en la supervision de los sistemas mecanicos, sobre todo de elementos de tipo

rotativo. Independientemente de los planes de mantenimiento correctivo y preventivo, el

plan de mantenimiento predictivo se basa, principalmente, en el estudio de las vibraciones

mediante la instalacion de sensores que permiten detectar vibraciones fuera de rango.

En general, se suponen vibraciones de pequena amplitud porque fuera de ellas dejan de

tener validez la mayorıa de las hipotesis que se establecen para su estudio. Supongamos el

sistema de la figura, formado por una masa principal m, un elemento recuperador elastico

de constante k y un dispositivo amortiguador de constante c.

El Grupo

Escuela Profesional de Ingenierıa Civil

Universidad Nacional de San Cristobal de Huamanga

Ayacucho, Agosto del 2013.

INGENIERÍA CIVIL - UNSCH

OBJE TIVOS

Del informe:

Este trabajo se realiza para que el alumno obtenga una mejor comprension y

familiarizacion del entorno de programacion en MATLAB, adoptando ası su

entorno de guıa grafica mas conocido como GUIDE.

Se quiere que se logre manejar, comprender y entender la sintaxis de las

instrucciones de decision y las instrucciones iterativas en MATLAB.

Crear una aplicacion tipo ventana de trabajo en GUIDE, utilizando controles

admitidos por MATLAB.

Del Programa Desarrollado:

Facilitar y asegurar un rapido calculo en extensos puntos de un levantamiento

topografico.

Dar la facilidad de obtencion de datos al alumno y ejecutor de un levantamiento

topografico pueda exportar facilmente los puntos y resultados, dando ası una

mejor realizacion de plano del proyecto deseado.

Tambien el que podamos realizar un levantamiento topografico y un calculo

rapido y adecuado ayuda y facilita al ingeniero y/o alumno a hacer mas eficaz

y su proyecto.

1ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Fundamento Teorico

ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Programacion Digital Fundamento Teorico

1.1 Levantamiento Topografico.

Los levantamientos topograficos son tridimensionales y utilizan tecnicas de levantamiento

geodesico plano y otras especiales para establecer un control tanto vertical como horizontal.

Algunas Caracterısticas de un Levantamiento Topografico.

Las principales caracterısticas fısicas del terreno, tales como rıos, lagos, reservorios,

caminos, bosques o formaciones rocosas; o tambien los diferentes elementos que

componen la granja, estanques, represas, diques, fosas de drenaje o canales de

alimentacion de agua

Las diferencias de altura de los distintos relieves, tales como valles, llanuras, colinas o

pendientes; o la diferencia de altura entre los elementos de la granja. Estas diferencias

constituyen el perfil vertical.

1.2 Preparacion de un Levantamiento Topografico.

1.2.1 Planificacion del Trabajo:

Cuando se prepara un levantamiento topografico, como regla fundamental se debe proceder

de lo general a lo particular. Teniendo presente el trabajo en su conjunto y cuando deben

de darse los primeros pasos. Los diferentes tipos de levantamientos topograficos requieren

precisiones diversas, pero es importante determinar con la mayor precision posible los

primeros puntos de cada levantamiento. Los trabajos sucesivos se ajustan en relacion a

dichos primeros puntos.

Eleccion de exactitudes: Depende de la finalidad del trabajo y de la escala a que se

va a dibujar el plano.

Estudio del control existente: Se debe estudiar detenidamente los documentos

aprovechables a la zona del proyecto con el fin de ubicar los controles horizontales

y verticales (vertices geodesicos y BMs) que puedan existir en los alrededores del

levantamiento, determinando su importancia y exactitud. Estos controles se usan

posteriormente para comprobar y controlar el trabajo.

Reconocimiento: Una vez estudiados los documentos, es necesario realizar un recor-

rido del terreno con el fin de recuperar las senales de control existentes; al mismo

tiempo se colocan las estacas, jalones u otras senales que serviran para realizar el

trabajo de triangulacion, itinerario, poligonacion o nivelacion.

Una vez elegido el proyecto deben de seguirse los siguientes pasos:

Ingenierıa Civil3

Ing. Civil

Programacion Digital Fundamento Teorico

Al efectuarse el reconocimiento debe procederse del todo hacia las partes, es decir que la

zona a levantar se estudia en su totalidad y luego se realizan las subdivisiones necesarias;

se deben escoger alineamientos que no presenten dificultades para su mesura, los vertices

deben ubicarse en los lugares que no incomoden a nadie.

Eleccion de instrumentos y metodos: Depende de la exactitud que deban tenerse.

Los instrumentos precisos ahorran tiempo pero no son economicos.

Eleccion del metodo de calculo: Se debe de establecer el metodo mas eficaz para

manejar los datos que se van recibiendo del campo y seleccionar las formas de calculo.

Figure 1.1: Levantamiento Topografico

Ingenierıa Civil4

Ing. Civil

2ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Desarrollo del Programa

ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Programacion Digital Desarrollo del Programa

2.1 Procedimiento.

El procedimiento que se siguio para la realizacion del programa es:

Crear la aplicacion desde el entorno de desarrollo integrado de MATLAB.

El Diseno de una ventana principal para la ejecucion de la aplicacion utilizando los

controles necesarios.

Asignar un codigo pertinente a las funciones creadas con instrucciones de decision e

instrucciones de iteracion a los eventos para que los controles utilizados realicen los

calculos necesarios para la obtencion de datos.

Se le asigno un nombre a cada variable para ası poder declararlas al nivel de funciones

y como variables globales.

Como ultimo punto se implemento la aplicacion con un cuadro de datos adjuntos

que se le pueden importar como modo de demostracion del programa en sı.

Figure 2.1: Poligonal

Ingenierıa Civil6

Ing. Civil

Programacion Digital Desarrollo del Programa

2.2 Diagrama de Flujo.

INICIO

Seleccione el numero de lados de la poligonal

Ingrese datos correspondientes

Coloque el azimut en: grados minutos y segundos.

Coloque coordenadas del punto:este norte

Coloque la cota del punto

Coloque los angulos

horizontales y verticales de cada

vertice.

CALCULOS

Crea el numero de lados de la

poligonal(n 3)

Grados:Minutos:

Segundos:

Este:Norte:

Cota:

n α Horizontales:Grados:

Minutos:Segundos:

n α verticales:Grados:

Minutos:Segundos:

Seleccione lado de la poligonal

n

Seleccione el punto de la poligonal

Seleccione el punto de la poligonal

Ángulos horizontales de la

poligonal

EC<Emax

Calculo del error de cierre angular.

Ec= nα int.-180(n-2)

Calculo del error máximo permisible

Emax=0.2*sqrt(n)

Compensación angular

cα =+-Ec/n

Ángulos horizontales compensandos

α' 1=α 1+-cα α' 2=α 2+-cα

..α' n=α n+-cα

Calculo de coordenadas

parciales

EC>Emax

Calculo del perimetro

P=d1+d2+ +di

Calculo de:Ex= Δx

Calculo de:Ey= Δy

Calculo de:E=0.2*sqrt(Ex^´2+Ey^´2)

Calculo de los azimuts

Az(i-1)+α i <180

Azi=Az(i-1)+α i +180

Azi=Az(i-1)+α i -180

Calculo de errores lineales

Ingrese hilos:Hilo inferior Hilo medio

Hilo superior

Hilos:HI

HMHS

Distancias horizontales:

di=(HS-HI)*100

Δx =disinAz

Δy =dicosAz

Calculo de la precisiónEr=1/(perímetro/E)

Compensación lineal

Compensacion lineal:Cx=-Ex*di/pCy=-Ey*di/p

Coordenadas parciales compensadas

X=Δx +CxY=Δy +Cy

Calculo de coordenadas este y

norte.

Calculo de coordenadas:Este=este1+X

Norte=norte1+Y

FIN

Imprimir:Distancias

Imprimir:'Error','Ec>Emax'

Imprimir ángulos horizontales

compensados

Imprimir azimut

Imprimir azimut

Imprimir Δx

Imprimir Δy

Imprimir E

Imprimir X e Y.

Imprimir este y norte.

Imprimir Er;

si

no

Figure 2.2: Diagrama de Flujo 1Ingenierıa Civil

7Ing. Civil

Programacion Digital Desarrollo del Programa

INICIO

Seleccione el numero de lados de la poligonal

Ingrese datos correspondientes

Coloque el azimut en: grados minutos y segundos.

Coloque coordenadas del punto:este norte

Coloque la cota del punto

Coloque los angulos

horizontales y verticales de cada

vertice.

CALCULOS

Crea el numero de lados de la

poligonal(n 3)

Grados:Minutos:

Segundos:

Este:Norte:

Cota:

n α Horizontales:Grados:

Minutos:Segundos:

n α verticales:Grados:

Minutos:Segundos:

Seleccione lado de la poligonal

n

Seleccione el punto de la poligonal

Seleccione el punto de la poligonal

Ángulos horizontales de la

poligonal

EC<Emax

Calculo del error de cierre angular.

Ec= nα int.-180(n-2)

Calculo del error máximo permisible

Emax=0.2*sqrt(n)

Compensación angular

cα =+-Ec/n

Ángulos horizontales compensandos

α' 1=α 1+-cα α' 2=α 2+-cα

..α' n=α n+-cα

Calculo de coordenadas

parciales

EC>Emax

Calculo del perimetro

P=d1+d2+ +di

Calculo de:Ex= Δx

Calculo de:Ey= Δy

Calculo de:E=0.2*sqrt(Ex^´2+Ey^´2)

Calculo de los azimuts

Az(i-1)+α i <180

Azi=Az(i-1)+α i +180

Azi=Az(i-1)+α i -180

Calculo de errores lineales

Ingrese hilos:Hilo inferior Hilo medio

Hilo superior

Hilos:HI

HMHS

Distancias horizontales:

di=(HS-HI)*100

Δx =disinAz

Δy =dicosAz

Calculo de la precisiónEr=1/(perímetro/E)

Compensación lineal

Compensacion lineal:Cx=-Ex*di/pCy=-Ey*di/p

Coordenadas parciales compensadas

X=Δx +CxY=Δy +Cy

Calculo de coordenadas este y

norte.

Calculo de coordenadas:Este=este1+X

Norte=norte1+Y

FIN

Imprimir:Distancias

Imprimir:'Error','Ec>Emax'

Imprimir ángulos horizontales

compensados

Imprimir azimut

Imprimir azimut

Imprimir Δx

Imprimir Δy

Imprimir E

Imprimir X e Y.

Imprimir este y norte.

Imprimir Er;

si

no

Figure 2.3: Diagrama de Flujo 2

Ingenierıa Civil8

Ing. Civil

Programacion Digital Desarrollo del Programa

INICIO

Seleccione el numero de lados de la poligonal

Ingrese datos correspondientes

Coloque el azimut en: grados minutos y segundos.

Coloque coordenadas del punto:este norte

Coloque la cota del punto

Coloque los angulos

horizontales y verticales de cada

vertice.

CALCULOS

Crea el numero de lados de la

poligonal(n 3)

Grados:Minutos:

Segundos:

Este:Norte:

Cota:

n α Horizontales:Grados:

Minutos:Segundos:

n α verticales:Grados:

Minutos:Segundos:

Seleccione lado de la poligonal

n

Seleccione el punto de la poligonal

Seleccione el punto de la poligonal

Ángulos horizontales de la

poligonal

EC<Emax

Calculo del error de cierre angular.

Ec= nα int.-180(n-2)

Calculo del error máximo permisible

Emax=0.2*sqrt(n)

Compensación angular

cα =+-Ec/n

Ángulos horizontales compensandos

α' 1=α 1+-cα α' 2=α 2+-cα

..α' n=α n+-cα

Calculo de coordenadas

parciales

EC>Emax

Calculo del perimetro

P=d1+d2+ +di

Calculo de:Ex= Δx

Calculo de:Ey= Δy

Calculo de:E=0.2*sqrt(Ex^´2+Ey^´2)

Calculo de los azimuts

Az(i-1)+α i <180

Azi=Az(i-1)+α i +180

Azi=Az(i-1)+α i -180

Calculo de errores lineales

Ingrese hilos:Hilo inferior Hilo medio

Hilo superior

Hilos:HI

HMHS

Distancias horizontales:

di=(HS-HI)*100

Δx =disinAz

Δy =dicosAz

Calculo de la precisiónEr=1/(perímetro/E)

Compensación lineal

Compensacion lineal:Cx=-Ex*di/pCy=-Ey*di/p

Coordenadas parciales compensadas

X=Δx +CxY=Δy +Cy

Calculo de coordenadas este y

norte.

Calculo de coordenadas:Este=este1+X

Norte=norte1+Y

FIN

Imprimir:Distancias

Imprimir:'Error','Ec>Emax'

Imprimir ángulos horizontales

compensados

Imprimir azimut

Imprimir azimut

Imprimir Δx

Imprimir Δy

Imprimir E

Imprimir X e Y.

Imprimir este y norte.

Imprimir Er;

si

no

Figure 2.4: Diagrama de Flujo 3

Ingenierıa Civil9

Ing. Civil

Programacion Digital Desarrollo del Programa

2.3 Pseudocodigo.

El pseudocodigo para la aplicacion de cambio de unidades, se muestra en el algoritmo 1.

Los datos de entrada son: Datos:

Ingresar el numero de lados n.

Un azimut conocido (grados, minutos, segundos)

Las coordenadas de un punto.

Ingresar los angulos vertical y horizontal.

Las medidas de los lados ( hilo superior, medio e inferior)

Para la poligonal:

Para las coordenadas:

Detalles por radiacion.

Resultado:

Suma de angulos internos.

Error angular de cierre.

Compensacion de los angulos.

Azimut de los lados.

La distancia horizontal, vertical.

El perımetro.

Error lineal.

Compensaciones lineales.

Coordenadas de los puntos.

Para la poligonal:

Ingenierıa Civil10

Ing. Civil

Programacion Digital Desarrollo del Programa

1: Inicio

2: /* Ingresar el numero lados de la poligonal N

3: N→Z;

4: Global n;

5: si n = 0;

6: para Desde i = 1 hasta i = 23 → Imax hacer

7: N = i;

8: n = N + 2;

9: fin para

10: matriz = [’A’;’B’;’C’;’D’;’E’;’F’;’G’;’H’;’I’;’J’;’K’;’L’;’M’;’N’;’O’;’P’;’Q’;’R’;’S’;’T’;’U’;’V’;’W’];

11: para Desde i = 1 hasta i = n → Imax hacer

12: a = matriz (de 1 hasta i);

13: b = matriz (de 2 hasta i);

14: c = matriz(1);

15: d = vertcat(b,c); uniendo la matriz b y c

16: e = horzcat(a,d); uniendo la matriz a y d

17: fin para

18: imprimir critico

19: /* Ingresar los angulos de la poligonal angulos.

20: angulos→<;

21: /* Ingresar los angulos de la poligonal AH en (grados ,minutos y segundos);

22: und ← grados, minutos y segundos;

23: Global n;

24: para Desde i = 1 hasta i = n Imax hacer

25: AH = angulos de 1 hasta i ,de 1 hasta 3

26: /*AH ← Angulos horizontales

27: fin para

28: SAH = Sum(AH)

29: /*SAH ← Angulos horizontales

30: para Desde i = 1 hasta i = 2 Imax hacer

31: si (SAH(i) > 60) entonces

32: imprimir SAH = [SAH(1)+ SACAR EL ENTERO((SAH(2)+SACAR

EL ENTERO(SAH(3)/60))/60)SACAR EL RESIDUO(SAH(2)+ SACAR EL

ENTERO(SAH(3)/60),60) SACAR EL RESIDUO(SAH(3),60)33: si no

34: imprimir S AH;35: fin si

36: fin para

37: AI = [180*(n - 2) 0 0]

38: /*AI ← Suma de angulos internos/*

39: Ec = abs(S AH −AI);

40: /*Ec ← Error angular de cierre/*

Ingenierıa Civil11

Ing. Civil

Programacion Digital Desarrollo del Programa

1: para Desde i = 1 hasta i = 2 Imax hacer

2: Ec = [Ec(1) + SACAR EL ENTERO((Ec(2) + SACAR EL ENTERO(Ec(3)/60))/60)

SACAR EL RESIDUO(Ec(2) + SACAR EL ENTERO(Ec(3)/60),60) SACAR EL

RESIDUO(Ec(3),60)];

3: fin para

4: EC = Ec(1) + Ec (2)/60 + Ec (3)/3600;

5: Emáximo = 0.2*raiz cuadrada(n);

6: si EC > Emaximo entonces

7: imprimir /*mostrar mensaje de error/*

8: si no

9: imprimir critico

10: fin si

11: /*C ← compensacion/*

12: Ec1 = Ec(1) + Ec(2)/60 + Ec(3)/3600;

13: C = Ec1/n;

14: C = [SACAR EL ENTERO(C) SACAR EL ENTERO((C - SACAR EL EN-

TERO(C))*60) redondear((((C - SACAR EL ENTERO(C))*60) - SACAR EL EN-

TERO(SACAR EL ENTERO((C - SACAR EL ENTERO(C))*60)))*60)];

15: para Desde i = 1 hasta i = n Imax hacer

16: C1(i,1) = C(1);

17: C1(i,2) = C(2);

18: C1(i,3) = C(3);

19: fin para

20: C = C1;

21: /*Compensando los angulos/*;

22: si si SAH −AI > 0 entonces

23: CAH = C + AH

24: si no

25: CAH = AH −C;

26: fin si

27: AH = CAH ;

28: /*CAH ← angulos compesandos/*

29: /*opteniendo azimut de uno de los lados /*

30: AzC = 0;

31: para Desde i = 1 hasta i = 23 Imax hacer

32: si A1 = i entonces

33: AzC = A1;

34: fin si

35: fin para

36: /*Reordenando la matriz de los angulos /*

Ingenierıa Civil12

Ing. Civil

Programacion Digital Desarrollo del Programa

1: para Desde j = 1 hasta j = n Imax hacer

2: para Desde i = n,decremento de - 1, hasta i = AzC Imax hacer

3: /*condicion para el azimut/*

4: AngInt1 = AH(de i = j ,hasta i = 3 )Imax;

5: fin para

6: fin para

7: si AzC - 1 = 0 entonces

8: AngInt = AngInt1;

9: si no

10: imprimir critico

11: fin si

12: para Desde i = 1 hasta , i = AzC - 1 Imax hacer

13: /*condicion para el azimut/*

14: AngInt2 = AH(de 1 = i, hasta 1 = 3 );

15: fin para

16: /*juntando las matrices AngInt1 y 2/*

17: AngInt = vertcat(AngInt1,AngInt2);18: /*Azimut inicial en grados/*

19: para desde i = 2 hasta i = n Imax hacer

20: AH01 = AngInt(deihastai,de1hasta1) + AngInt(deihastai,de2hasta2)/60 +

AngInt(deihastai,de3hasta3)/3600;

21: si (Az + AH 01) > 180 entonces

22: /*Convirtiendo el azimut en Matriz/*

23: Az(i,1) = Az(i - 1,1) + AH01 - 180;

24: /*azimut /*

25: Az(i,1) = Az(i - 1,1) + AH01 - 180;

26: si no

27: /* el azimut sera/*

28: Az(i,1) = Az(i - 1,1) + AH01 + 180;

29: fin si

30: fin para

31: si Az(i,1) = Az(i - 1,1) + AH 01 + 180; entonces

32: AzC - 1 = 0;

33: AZ = Az;

34: si no

35: para desde i = 2 hasta i = n Imax hacer

36: /* condicion para azimut de cada lado/*

37: Az 1 = Az(de i hasta n,de 1 hasta 1);

38: fin para

39: /* Ajuntando las matrices Az1 1 y 2/*

40: AZ = vertcat(Az 1, Az 2);

41: /*Azimut reordenada para operar con la condicion /*

42: fin si

Ingenierıa Civil13

Ing. Civil

Programacion Digital Desarrollo del Programa

1: /* CALCULANDO LA DISTANCIA HORIZONTAL, VERTICAL Y PERIMETRO/*

2: /* Obtenierndo datos de Ang. Verticales y los Hilos/*

3: para Desde i = 1 hasta i = n Imax hacer

4: /*AV ← Angulos verticales/*

5: AV = Angulos(de 1 hasta ide 4 hasta 6);

6: /*HM ← Hilo medio/*

7: HM = Angulos(de 1 hasta i de 7 hasta 7);

8: /*HS ← Hilo superior/*

9: HS = Angulos(de 1 hasta i de 8 hasta 8);

10: /* HI ← Angulos horizontales/*

11: HI = Angulos(de 1 hasta i de 9 hasta 9);

12: fin para

13: para Desde i = 1 hasta i = n Imax hacer

14: Av(i,1) = AV(i,1) + AV(i,2)/60 + AV(i,3)/3600;

15: si Av(i,1) < 90 entonces

16: Alfa = Av + 90;

17: si no

18: Alfa = Av - 90;

19: fin siCos Alfa = cosd(Alfa);

20: Sen Alfa = sind(Alfa);

21: S AH;

22: /*Obteniedo la distancia inclinada(Di)/*

23: si HS - HM = verdad;

24: fin para

25: si HS - HM = verdad entonces

26: Di = abs((HS - HM)*200);

27: si no, si HM - HI = true entonces

28: Di2 = abs((HM - HI)*200);

29: si no

30: Di3 = abs((HS - HI)*100);

31: fin si

32: /*Obteniedo la distancia horizontal (DH)/*

33: DH = Di3.*((Cos alfa)2);

34: /*Obteniedo la distancia vertical (DV)/*

35: DV = Di3.*Sen Alfa .*Cos Alfa;

36: /*CALCULO DE LA COTA/*

37: para j = 1 hasta j = n Imax hacer

38: si Cot1 = i entonces

39: CotC = Cot1;

40: DV(i) = 0;

41: fin si

42: fin para

Ingenierıa Civil14

Ing. Civil

Programacion Digital Desarrollo del Programa

1: para Desde i = cotC hasta i = n Imax hacer

2: cota(i,1) = DV(i,1) + cota(1,1);

3: fin para

4: para Desde i = 1 hasta i = n Imax hacer

5: cota(i,1) = DV(i,1) + cota(1,1);

6: fin para

7: /* reordenando la matriz de lso angulos /*

8: para Desde j = 1 hasta j = n Imax hacer

9: para Desde i = n,decremento de - 1, hasta i = cotC hacer

10: /*condicion para el azimut/*

11: Cota1 = cota(i:j,1:1);

12: fin para

13: fin para

14: si CotC - 1 = 0 entonces

15: cota = Cota1;

16: si no

17: para Desde i = 1 hasta i = CotC - 1 Imax hacer

18: para Desde i = 1 hasta i = n Imax hacer

19: /*condicion para el azimut/*

20: Cota1 = cota(i:j,1:1);

21: fin para

22: fin para

23: fin si

24: si CotC - 1 == 0 entonces

25: cota = Cota1;

26: si no

27: para Desde i = 1 hasta i = CotC - 1 Imax hacer

28: /*condicion para el azimut/*

29: Cota2 = cota(1:i,1:1);

30: fin para

31: /*juntando las matrices Ang Int 1 y 2/*

32: cota = vertcat(Cota1,Cota2);

33: fin si

34: /*CALCULANDO X1, Y1 Y ERROR LINEAL/*

35: X1 = DH.*sind(Az);

36: Y1 = DH.*cosd(Az);

37: Ex = suma de (X1);

38: Ey = suma de(Y1);

39: E = raiz cuadrada de (Ex2 + Ey2);

40: /*CALCULANDO COMPENSACIONES LINEALES/*

41: /*CALCULO DE LA COTA/*

42: /*CONDICION/*

Ingenierıa Civil15

Ing. Civil

Programacion Digital Desarrollo del Programa

1: para Desde i = 1 hasta i = n Imax hacer

2: Cx(i,1) = - (Ex.*DH(i,1))/P;

3: Cy(i,1) = - (Ey.*DH(i,1))/P;

4: fin para

5: /*CALCULANDO X, Y Y ERROR LINEAL/*

6: X = X1 + Cx;

7: Y = Y1 + Cy;

8: /*CALCULANDO ESTE Y NORTE DE LA POLIGONAL/*

9: /*cordenada de uno de los Lados/*

10: /*condicion/*

11: Coor = 0;

12: para Desde i = 1 hasta i = 23 Imax hacer

13: si A2 = i entonces

14: Coor = A2;

15: fin si

16: fin para

17: para Desde i = 1 hasta i = n Imax hacer

18: D Este(i,1) = D Este(1,1) + X(i,1);

19: D Norte(i,1) = D Norte(1,1) + Y(i,1);

20: fin para

21: imprimir /*IMPRESION DE RESULTADOS /*

22: FIN;

Ingenierıa Civil16

Ing. Civil

3ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Ventana Principal de la Aplicacion

ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Programacion DigitalVentana Principal

de la Aplicacion

La aplicacion en la presente practica se realiza en un formulario, una captura final de la

ventana principal muestra la Figura.

Figure 3.1: Ventana principal de la aplicacion

Figure 3.2: Ventana principal con datos ingresados

Ingenierıa Civil18

Ing. Civil

4ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Aplicacion

ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Programacion Digital Aplicacion

Con la finalidad de trabajar e interactuar con los patrones codigo del MATLAB y teniendo

en cuenta que como alumnos necesitamos un software de ayuda, ponemos aquı un ejemplo

de problema de levantamiento topografico, con los datos que son comunes para nosotros

como estudiantes como ayuda a ello nos favoreceremos con el lenguaje de programacion de

MATLAB.

Se realizara una aplicacion sencilla sobre un levantamiento topografico cuyo procedimiento

es conocido por todo ingeniero, la unica finalidad es programar la aplicacion que nos muestre

los errores comunes de una medicion ası como la compensacion de angulos de la poligonal

de apoyo como las coordenadas de esta con su respectiva correccion rutinaria, todo esto

desde el Entorno de Desarrollo de MATLAB y con su ejecutable en un GUIDE para su

facil manejo.

4.1 Datos Requeridos.

Los argumentos necesarios para la realizacion de un Levantamiento Topografico con

teodolito, son:

Lo primero que se necesita es el numero de lados con los que va a contar la poligonal

de apoyo.

De ay se debe de proporcionar el azimut conocido de algun lado de la poligonal de

apoyo ası como y las coordenadas y la cota de un punto conocido.

Conjuntamente proporcionar los datos de las lecturas que se obtienen en campo

tras un levantamiento topografico, en los cuales incluye los grados de horizontales y

verticales entre los puntos de la poligonal, al igual que sus lecturas en la mira optica

proporcionando ası los Hilos estadimetricos.

Como aclaracion los angulos se colocan en los cuadros de forma que se coloquen los

grados, minutos y segundos. Ası como las coordenadas estan en metros.

4.2 Resultados.

Considerando con que objetivo se realizo la aplicacion, el resultado brindado deberıa darnos

por consiguiente los siguientes datos:

Primero hallara la suma de angulos internos de la poligonal de apoyo, para por

consiguiente hallar el error de cierre y la compensacion que se debe de hacer para

que la poligonal este correcta.

Seguidamente debe de darse el perımetro de la poligonal de apoyo, para ası hallar

seguidamente los errores de cierre, error relativo y el error lineal, como resultado

para los posteriores calculos con su precision respectiva para saber si el proyecto de

Ingenierıa Civil20

Ing. Civil

Programacion Digital Aplicacion

levantamiento se ejecute o se deba de corregir datos hasta una nueva medicion del

terreno.

Como ultimo paso se presenta un cuadro practico que te da a conocer los datos

requeridos con los que se hicieron los calculos, ası obteniendo como prioridad principal

las coordenadas geograficas de los puntos de interes en la poligonal de apoyo.

4.3 Ejemplo de Aplicacion.

En un levantamiento topografico con teodolito se establecio una poligonal cerrada. Se pide

calcular:

Las coordenadas de los vertices de la poligonal sabiendo que las coordenadas del

punto A son:

[E = 8625235.78m N = 6180025.95m y el AzA−B = 275◦15′35′′]

(3.1)

El error de cierre y el error relativo.

Datos:

Angulos internos:

A = 36◦43′25′′ M ABC

B = 215◦52′05′′C = 51◦40′20′′D = 111◦06′30′′E = 124◦36′55′′

Distancias:

AB = 189.53m

BC = 175.18m

CD = 197.78m

DE = 142.39m

EA = 234.58m

Solucion:

36◦ 43′ 25′′215◦ 52′ 05′′51◦ 40′ 20′′111◦ 06′ 30′′124◦ 36′ 55′′

∣∣∣∣∣∣∣∣∣∣∣∣∣∣+

539◦ 59′ 15′′

∑int = 539◦59′15′′ (3.2)

→ Ec = 540◦ − 539◦59′15′′∴ Ec = 45Emp = 1′

√n

n = 5ladosdelpoligonoEmp = 2.24Ec ≤ Emp

Calculamos el error angular:

Ingenierıa Civil21

Ing. Civil

Programacion Digital Aplicacion

Compensacion:

C =45′′5 = 9′′ (3.3)

Correccion angular:

∴∴∴ +9” a cada angulo

Angulos Compensados:

A = 36◦43′34′′B = 215◦52′14′′C = 51◦40′29′′D = 111◦06′39′′E = 124◦37′04′′

Azimut de lados:

AzBC = AzAB + B − 180◦ → AzAB + B > 180◦AzBC = AzAB + B + 180◦ → AzAB + B < 180◦

Az AB = 324◦15′00Az BC = 00◦07′14Az CD = 231◦47′43Az DE = 162◦54′22Az EA = 107◦31′26

Calculo de Coordenadas.

∆x = DH · sen(Az) ∆y = DH · cos(Az)

Cx =∑

∆x Cx =∑

∆x

C ∆x = −Cx · Lp C ∆y = −Cy · L

p

L: Distancia entre puntos.

P: Perimetro

Donde:

Ingenierıa Civil22

Ing. Civil

Programacion Digital Aplicacion

Coordenadas de los Puntos de la Poligonal.

Pto. Az DH ∆∆∆ X ∆∆∆ Y Cx Cy ∆∆∆ Xc ∆∆∆ Yc

A

AB 324°15’00” 189.53

B -110.733 153.818 0.047 0.012 -110.686

BC 00°07’14” 175.18

C 0.369 175.180 0.044 0.011 0.412

CD 231°47’43” 197.78

D -155.417 -122.322 0.049 0.012 -155.368

DE 162°54’22” 142.39

E 41.854 -136.100 0.035 0.009 41.889

EA 107°31’26” 234.58

A 223.693 -70.633 0.058 0.014 223.752∑939.46 -0.234 -0.057 0.000

Table 4.1:

Pto. Az Este Norte Cota

A 8625235.780 618025.950

AB

B 153.829 8625125.094 618179.780

BC

C 175.190 8625125.507 618354.971

CD

D -122.310 8624970.139 618232.661

DE

E -136.091 8625012.029 618096.570

EA

A -70.619 8625235.780 618025.950∑0.000

Table 4.2:

Ingenierıa Civil23

Ing. Civil

Pto. Este Norte

A 8625235.780 618025.950

B 8625125.094 618179.780

C 8625125.507 618354.971

D 8624970.139 618232.661

E 8625012.029 618096.570

Table 4.3:

Error de Cierre:

Ec =√

Cx2 + Cy

2

Ec =√(−0.234)2 + (−0.057)2

∴∴∴Ec = 0.240 (3.4)

Error Relativo:

Er =1p

Ec

Er =1

3907.382

∴∴∴Er = 0.0002559 (3.5)

INGENIERÍA CIVIL - UNSCH

CONCLUSIONES

Con la familiarizacion del entorno de desarrollo del MATLAB se pone al alcance

del alumno una mejor forma de interpretacion y adaptacion para una posterior

realizacion de programas que el mismo pueda programar de acorde a sus necesidades.

La interaccion de las instrucciones de decision e iteracion en un solo entorno de

programacion y que ellas te asignen a los calculos que deseas.

Como alumnos nos damos cuenta de la gran importancia de convivir con la tecnologıa

y la parte tecnica que la carrera conlleva consigo

Ası de esta manera siempre estamos propensos a los cambios y adaptaciones a las

nuevas formas de hacer calculos rapidos y eficaces para la carrera en sı.

Utilizamos correctamente programas tales como Matlab, Excel, Latex, Word, Corel-

DRAW, etc. principalmente para la implementacion de groficos, calculos , la edicion

de textos y en la realizacion del programa aplicativo.

BIBLIOGRAFIA

Bibliography

[1] The MathWorksMATLAB The Language of Technical Computing

[2] Diego Orlando Barragan Guerrero Manual de Interfaz Grafica de MATLAB

[3] Universidad de Sevilla Manual de Usuario de la Interfaz Grafica de MATLAB

[4] Andy H. Register AGuide to MATLAB Objetc-Oriented Programming

[5] URL: http://www.mathworks.com/ Pagina Principal de Matlab

[6] Jorge Mendoza Duenas TOPOGRAFIA TECNICAS MODERNAS. Primera Edicion

2012

AING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Codigo Fuente

ING. CIVIL

FG

F

r

x

y

z

x0

y0

z0

0

0

+y

+xN

f R

T

Mg

+

T0

mg

v

y

x

60°

30°

z

A

B

120 ft

vB

vA C H A P T E R

691

Kinetics of Particles:Newton’s Second Law

bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172bee29400_ch12_690-726.indd Page 691 12/3/08 9:27:13 PM user-s172 /Volumes/204/MHDQ077/work%0/indd%0/Volumes/204/MHDQ077/work%0/indd%0

UNSCH

Newton’s Second Law

N I N T H ED I T I O N

VECTOR MECHANICS FOR ENGINEERS

Statics and Dynamics

Ferdinand P. Beer Late of Lehigh University

E. Russell Johnston, Jr. University of Connecticut

David F. Mazurek U.S. Coast Guard Academy

Phillip J. Cornwell Rose-Hulman Institute of Technology

Elliot R. Eisenberg The Pennsylvania State University

bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172bee29400_fm_i-xxiv.indd Page i 12/18/08 3:39:27 PM user-s172 /Volumes/204/MHDQ078/work%0/indd%0/Volumes/204/MHDQ078/work%0/indd%0

Ferdinand

P.

Beer

Late of Lehigh University

E.

Russell

Johnston, Jr.

University of Connecticut

PROGRAMACIÓN

DINAMICA FOR ENGINEERS

v

v0

y

x

z

DIGITAL (IC-246) APLICACIÓN: CALCULO DE COORDENADAS

Programacion Digital Codigo Fuente

A.1 Para el programa

1 function varargout = PAGINA_01(varargin)

2 gui_Singleton = 1;

3 gui_State = struct(’gui_Name’, mfilename, ...

4 ’gui_Singleton’, gui_Singleton, ...

5 ’gui_OpeningFcn’, @PAGINA_01_OpeningFcn, ...

6 ’gui_OutputFcn’, @PAGINA_01_OutputFcn, ...

7 ’gui_LayoutFcn’, [] , ...

8 ’gui_Callback’, []);

9 if nargin && ischar(varargin{1})

10 gui_State.gui_Callback = str2func(varargin{1});

11 end

12

13 if nargout

14 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

15 else

16 gui_mainfcn(gui_State, varargin{:});

17 end

18 %clc

19 function PAGINA_01_OpeningFcn(hObject, eventdata, handles, varargin)

20 handles.output = hObject;

21 guidata(hObject, handles);

22

23 function varargout = PAGINA_01_OutputFcn(hObject, eventdata, handles)

24

25 varargout{1} = handles.output;

26 %--------------------------------------------------------------------------

27 %--------------------------------------------------------------------------

28

29

30 % --- Pop Up Menu: Azimut de:

31 function D_Azimut_Callback(hObject, eventdata, handles)

32 function D_Azimut_CreateFcn(hObject, eventdata, handles)

33 if ispc && isequal(get(hObject,’BackgroundColor’), ...

34 get(0,’defaultUicontrolBackgroundColor’))

35 set(hObject,’BackgroundColor’,’white’);

36 end

37

38

39 % --- Pop Up Menu: Coordenadas de:

Ingenierıa Civil27

Ing. Civil

Programacion Digital Codigo Fuente

40 function D_Coordenadas_Callback(hObject, eventdata, handles)

41 function D_Coordenadas_CreateFcn(hObject, eventdata, handles)

42 if ispc && isequal(get(hObject,’BackgroundColor’), ...

43 get(0,’defaultUicontrolBackgroundColor’))

44 set(hObject,’BackgroundColor’,’white’);

45 end

46

47

48 % --- Pop Up Menu: D_Cota:

49 function D_Cota_Callback(hObject, eventdata, handles)

50 function D_Cota_CreateFcn(hObject, eventdata, handles)

51 if ispc && isequal(get(hObject,’BackgroundColor’), ...

52 get(0,’defaultUicontrolBackgroundColor’))

53 set(hObject,’BackgroundColor’,’white’);

54 end

55

56

57 %Pop Up Menu: Numero de Lados(N)

58 function N_Callback(hObject, eventdata, handles)

59 global n

60 clc

61 N=get(handles.N,’value’);

62 n=0;

63 for i=1:23

64 if N==i

65 n=N+2;

66 end

67 end

68

69 mtz=[’A’;’B’;’C’;’D’;’E’;’F’;’G’;’H’;’I’;’J’;’K’;’L’;’M’;’N’;’O’;’P’;’Q’;’R’;’S’;’T’;’U’;’V’;’W’];

70

71 for i=1:n

72 a=mtz(1:i);

73 b=mtz(2:i);

74 c=mtz(1);

75 d=vertcat(b,c); %uniendo la matriz b y c

76 e=horzcat(a,d); %uniendo la matriz a y d

77 end

78 mtz=zeros(n,9);

79 set(handles.D_Angulos, ’RowName’, e);

80 set(handles.R_Resultados, ’RowName’, a);

81 set(handles.D_Angulos,’Data’,mtz);

82 set(handles.D_Azimut,’string’,a);

83 set(handles.D_Coordenadas,’string’,a);

Ingenierıa Civil28

Ing. Civil

Programacion Digital Codigo Fuente

84 set(handles.D_Cota,’string’,a);

85 mts=zeros(1,3);

86 set(handles.GMS_Azimut,’Data’,mts);

87

88 % Push Button R_Calcular.

89 function R_Calcular_Callback(hObject, eventdata, handles)

90 clc

91 global n Resultados

92

93 %Uitable - OBTENIENDO ANGULOS

94 Angulos=get(handles.D_Angulos,’Data’);

95

96 for i=1:n

97 AH=Angulos(1:i,1:3); %Angulos horizontale

98 end

99

100 S_AH=sum(AH); %Suma de angulos horizontales

101

102 for i=1:2

103 if(S_AH(i)>60)

104 S_AH=[S_AH(1)+floor((S_AH(2)+floor(S_AH(3)/60))/60) mod(S_AH(2)+ ...

105 floor(S_AH(3)/60),60) mod(S_AH(3),60)]; %MOD:SACA EL RESIDUO ; FLOOR:SACA EL ENTERO

106 else

107 S_AH;

108 end

109 end

110

111 AI=[180*(n-2) 0 0]; %Suma de angulos internos

112 Ec = abs(S_AH-AI); %Error angular de cierre

113 for i=1:2

114 Ec=[Ec(1)+floor((Ec(2)+floor(Ec(3)/60))/60) mod(Ec(2)+ ...

115 floor(Ec(3)/60),60) mod(Ec(3),60)];

116 end

117

118 EC=Ec(1)+ Ec (2)/60+Ec (3)/3600;

119 Emax=0.2*sqrt(n);

120 if EC>Emax

121 errordlg({’Error’,’Ec>Emax’},’Mensaje de error’)

122 else

123 end

124

125 %Compensacion C

126 Ec1=Ec(1)+ Ec(2)/60+Ec(3)/3600;

127 C= Ec1/n;

Ingenierıa Civil29

Ing. Civil

Programacion Digital Codigo Fuente

128 C=[floor(C) floor((C-floor(C))*60) round((((C-floor(C))*60)- ...

129 floor(floor((C-floor(C))*60)))*60)];

130 for i=1:n

131 C1(i,1)=C(1);

132 C1(i,2)=C(2);

133 C1(i,3)=C(3);

134 end

135 C=C1;

136

137 %Compensando los angulos

138 if S_AH-AI > 0

139 C_AH=C+AH ;

140 else

141 C_AH=AH - C;

142 end

143 AH=C_AH ;%angulos compesando

144

145 %OBTENIENDO LOS AZIMUT

146 %Azimut de uno de los lados

147 %Condicion

148 A1=get(handles.D_Azimut,’value’);

149 AzC=0;

150 for i=1:23

151 if A1==i

152 AzC=A1;

153 end

154 end

155 %Dato

156 Az=get(handles.GMS_Azimut,’data’);

157 %reordenando la matriz de lso angulos

158 for j=1:n

159 for i=n:-1:AzC

160 Ang_Int1=AH(i:j,1:3);%condicion para el azimut

161 end

162 end

163 if AzC-1==0

164 Ang_Int = Ang_Int1;

165 else

166 for i=1:AzC-1

167 Ang_Int2=AH(1:i,1:3);%condicion para el azimut

168 end

169 Ang_Int=vertcat(Ang_Int1,Ang_Int2);%juntando las matrices Ang_Int 1 y 2

170 end

Ingenierıa Civil30

Ing. Civil

Programacion Digital Codigo Fuente

171 Az= Az(1)+ Az(2)/60+Az(3)/3600; %Azimut inicial en grados

172 %Calculando la matriz del azimut

173 for i=2:n %Convirtiendo el azimut en Matriz

174 AH_01=Ang_Int(i:i,1:1)+ Ang_Int(i:i,2:2)/60+Ang_Int(i:i,3:3)/3600; %Angulo en grados

175 if (Az + AH_01)>180

176 Az(i,1)=Az(i-1,1) + AH_01 - 180; %Azimut

177 else

178 Az(i,1)=Az(i-1,1) + AH_01 + 180; %Azimut

179 end

180 end

181 %reordenando la matriz del azimut

182 if AzC-1==0

183 AZ = Az;

184 else

185 for i=n:-1:n-AzC+2

186 Az_1=Az(i:n,1:1);%condicion para azimut de cada lado

187 end

188 for i=1:n-AzC+1

189 Az_2=Az(1:i,1:1);%condicion para azimut de cada lado

190 end

191 AZ=vertcat(Az_1,Az_2);%juntando las matrices Az1 1 y 2

192 end

193

194 %Azimut reordenada para operar con la condicion

195

196 %CALCULANDO LA DISTANCIA HORIZONTAL, VERTICAL y PERIMETRO

197 %Obtenierndo datos de Ang. Verticales y lso Hilos

198 for i=1:n

199 AV=Angulos(1:i,4:6); %Angulos verticales

200 HM=Angulos(1:i,7:7); %Hilo medio

201 HS=Angulos(1:i,8:8); %Hilo superior

202 HI=Angulos(1:i,9:9); %Hilo inferior

203 end

204 for i=1:n

205 Av(i,1)=AV(i,1)+ AV(i,2)/60+AV(i,3)/3600;

206 if Av(i,1)<90

207 Alfa=Av+90 ;

208 else

209 Alfa=Av-90 ;

210 end

211 end

212 Cos_Alfa=cosd(Alfa);

213 Sen_Alfa=sind(Alfa);

Ingenierıa Civil31

Ing. Civil

Programacion Digital Codigo Fuente

214 %Obteniedo la distancia inclinada(Di)

215 if HS-HM == true

216 Di=abs((HS-HM)*200);

217 elseif HM-HI == true

218 Di2=abs((HM-HI)*200);

219 else

220 Di3=abs((HS-HI)*100);

221 end

222 %Obteniedo la distancia horizontal (DH)

223 DH=Di3.*((Cos_Alfa).^2);

224 %Obteniedo la distancia vertical (DV)

225

226

227 %Obteniedo la distancia vertical (DV)

228 P=sum(DH);

229

230 %Obteniedo la distancia vertical (DV)

231 DV=Di3.*Sen_Alfa.*Cos_Alfa;

232

233 %CALCULO DE LA COTA

234 %Condicion

235

236 Cot1=get(handles.D_Cota,’value’);

237 for i=1:n

238 if Cot1==i

239 CotC=Cot1;

240 DV(i)=0;

241 end

242 end

243 DV

244

245 cota=get(handles.cota,’string’);

246 cota=str2double(cota);

247

248 for i=CotC:n

249 cota(i,1)=DV(i,1)+cota(1,1);

250 end

251

252 for i=1:n

253 cota(i,1)=DV(i,1)+cota(1,1);

254 end

255

256 cota

Ingenierıa Civil32

Ing. Civil

Programacion Digital Codigo Fuente

257 %reordenando la matriz de lso angulos

258 for j=1:n

259 for i=n:-1:CotC

260 Cota1=cota(i:j,1:1);%condicion para el azimut

261 end

262 end

263 Cota1

264

265 if CotC-1==0

266 cota = Cota1;

267 else

268 for i=1:CotC-1

269 Cota2=cota(1:i,1:1);%condicion para el azimut

270 end

271 Cota2

272 cota=vertcat(Cota1,Cota2);%juntando las matrices Ang_Int 1 y 2

273 end

274 cota

275

276

277 %CALCULANDO X1, Y1 Y ERROR LINEAL

278 X1=DH.*sind(Az);

279 Y1=DH.*cosd(Az);

280 Ex=sum(X1);

281 Ey=sum(Y1);

282 E=sqrt(Ex^2+Ey^2);

283 %CALCULANDO COMPENSACIONES LINEALES

284 for i=1:n

285 Cx(i,1)=-(Ex.*DH(i,1))/P;

286 Cy(i,1)=-(Ey.*DH(i,1))/P;

287 end

288 Cy;

289 Cx;

290 %CALCULANDO X, Y Y ERROR LINEAL

291 X=X1+Cx;

292 Y=Y1+Cy;

293 %CALCULANDO ESTE Y NORTE DE LA POLIGONAL

294 %cordenada de uno de los Lados

295 %condicion

296 A2=get(handles.D_Coordenadas,’value’);

297 Coor=0;

Ingenierıa Civil33

Ing. Civil

Programacion Digital Codigo Fuente

299 for i=1:23

300 if A2==i

301 Coor=A2;

302 end

303 end

304 %Dato

305 D_Este=get(handles.C_Este,’string’);

306 D_Este=str2double(D_Este);

307 D_Norte=get(handles.C_Norte,’string’);

308 D_Norte=str2double(D_Norte);

309

310 EN=[D_Este,D_Norte];

311 X11=X(1,1);

312 Y11=Y(1,1);

313 X(1,1)=0;

314 Y(1,1)=0;

315 for i=1:n

316 D_Este(i,1)=D_Este(1,1)+X(i,1);

317 D_Norte(i,1)=D_Norte(1,1)+Y(i,1);

318 end

319 X11=cat(1,X11,zeros(n-1,1));

320 Y11=cat(1,Y11,zeros(n-1,1));

321 X=X+X11;

322 Y=Y+Y11;

323 %IMPRESION DE RESULTADOS

324 %Azimut en Grados Min Seg

325 AZ=[floor(AZ) floor((AZ-floor(AZ))*60) mod((AZ-floor(AZ))*60,1)*60];

326 %Concatenando los resulrtados horizontamente

327 Resultados=horzcat(AH,DH,AZ,X1,Y1,Cx,Cy,X,Y,D_Este,D_Norte,cota);

328 set(handles.R_Resultados,’Data’, Resultados)

329 set(handles.R_SumAH,’data’,S_AH)

330 set(handles.R_Ec,’data’,Ec)

331 C=C(1:1,1:3);

332 set(handles.R_C,’data’,C)

333 set(handles.R_Perimetro,’string’,P)

334 set(handles.R_Ex,’string’,Ex)

335 set(handles.R_Ey,’string’,Ey)

336 set(handles.R_E,’string’,E)

337 Pres=P/E;

338 set(handles.R_Pres,’string’,round(Pres))

339

340

341 %Pop Up Menu: Numero de Lados(N)

Ingenierıa Civil34

Ing. Civil

Programacion Digital Codigo Fuente

342 function N_CreateFcn(hObject, eventdata, handles)

343 if ispc && isequal(get(hObject,’BackgroundColor’), ...

344 get(0,’defaultUicontrolBackgroundColor’))

345 set(hObject,’BackgroundColor’,’white’);

346 end

347

348 % Creando Propiedades de la Tabla 1

349 function D_Angulos_CreateFcn(hObject, eventdata, handles)

350 columnwidth={40 25 24 40 25 24 40 40 40};

351 %dat=rand(9)

352 %columnformat={’numeric’ ,’numeric’, ’numeric’,’numeric’, ’numeric’,

353 %’numeric’, ’numeric’,’numeric’, ’numeric’};

354 columneditable=[true true true true true true true true true ];

355 cnames={’Grad’,’Min’,’Seg’,’Grad’,’Min’,’Seg’,’HI’,’HM’,’HS’ };

356 vnames={’AB’,’BC’,’CA’};

357 %set(hObject,’Data’,dat)

358 set(hObject,’ColumnName’,cnames) ;

359 set(hObject,’RowName’,[]) ;

360 %set(hObject,’ColumnFormat’,columnformat) ;

361 set(hObject,’ColumnWidth’,columnwidth) ;

362 set(hObject,’ColumnEditable’,columneditable) ;

363 set(hObject,’RowName’,vnames) ;

364 function D_Angulos_CellEditCallback(hObject, eventdata, handles)

365 function D_Angulos_CellSelectionCallback(hObject, eventdata, handles)

366

367

368

369 % Creando Propiedades de la Tabla 2

370 function GMS_Azimut_CreateFcn(hObject, eventdata, handles)

371 %dat={100, 59, 59 };

372 %columnformat={’numeric’,’numeric’, ’numeric’};

373 columneditable=[true true true ];

374 cnames={’Grados’,’Min’,’Seg’};

375 % set(hObject,’Data’,dat)

376 set(hObject,’ColumnName’,cnames) ;

377 set(hObject,’RowName’,[]) ;

378 %set(hObject,’ColumnFormat’,columnformat) ;

379 set(hObject,’ColumnEditable’,columneditable) ;

380 function GMS_Azimut_DeleteFcn(hObject, eventdata, handles)

381 function GMS_Azimut_CellEditCallback(hObject, eventdata, handles)

382

383

384 % --- Edit Text C_Este

Ingenierıa Civil35

Ing. Civil

Programacion Digital Codigo Fuente

385 function C_Este_Callback(hObject, eventdata, handles)

386 function C_Este_CreateFcn(hObject, eventdata, handles)

387 if ispc && isequal(get(hObject,’BackgroundColor’), ...

388 get(0,’defaultUicontrolBackgroundColor’))

389 set(hObject,’BackgroundColor’,’white’);

390 end

391

392

393 % --- Edit Text C_Norte

394 function C_Norte_Callback(hObject, eventdata, handles)

395 function C_Norte_CreateFcn(hObject, eventdata, handles)

396 if ispc && isequal(get(hObject,’BackgroundColor’), ...

397 get(0,’defaultUicontrolBackgroundColor’))

398 set(hObject,’BackgroundColor’,’white’);

399 end

400

401

402 % --- Edit Text cota

403 function cota_Callback(hObject, eventdata, handles)

404 function cota_CreateFcn(hObject, eventdata, handles)

405 if ispc && isequal(get(hObject,’BackgroundColor’), ...

406 get(0,’defaultUicontrolBackgroundColor’))

407 set(hObject,’BackgroundColor’,’white’);

408 end

409

410

411 % --------------------------------------------------------------------

412 function Ayuda_Callback(hObject, eventdata, handles)

413 function Ayuda_Acercadelautor_Callback(hObject, eventdata, handles)

414 function Ayuda_ABtopo_Callback(hObject, eventdata, handles)

415

416 function Exportar_Callback(hObject, eventdata, handles)

417 function Exportar_Puntos_Callback(hObject, eventdata, handles)

418 function Exportar_CuadroResultados_Callback(hObject, eventdata, handles)

419 global Resultados

420 xlswrite(’Datos de Poligono’,Resultados ,’Rocky Ayala’, ’A4’)

421 function Importar_Callback(hObject, eventdata, handles)

422 function Importar_Datos_Poligonal_Callback(hObject, eventdata, handles)

423 A1=xlsread(’Libro1’,’D15:P19’); % Angulo

424 set(handles.D_Angulos, ’Data’, A1);

425

426 function Importar_Puntos_Relleno_Callback(hObject, eventdata, handles)

Ingenierıa Civil36

Ing. Civil

Programacion Digital Codigo Fuente

428 function Calcular_Callback(hObject, eventdata, handles)

429 function Calcular_Poligonal_Callback(hObject, eventdata, handles)

430 function Calcular_Puntos_Relleno_Callback(hObject, eventdata, handles)

431

432 function Archivo_Abrir_Callback(hObject, eventdata, handles)

433 function Archivo_Guardar_Callback(hObject, eventdata, handles)

434 function Archivo_Salir_Callback(hObject, eventdata, handles)

435 function Archivo_Callback(hObject, eventdata, handles)

436

437

438 function figure1_CloseRequestFcn(hObject, eventdata, handles)

439

440 delete(hObject);

441

442

443 function pushbutton3_Callback(hObject, eventdata, handles)

444 function pushbutton4_Callback(hObject, eventdata, handles)

445

446

447

448

449 function R_Ec_Callback(hObject, eventdata, handles)

450 function R_Ec_CreateFcn(hObject, eventdata, handles)

451 if ispc && isequal(get(hObject,’BackgroundColor’), ...

452 get(0,’defaultUicontrolBackgroundColor’))

453 set(hObject,’BackgroundColor’,’white’);

454 end

455

456

457

458 function R_C_Callback(hObject, eventdata, handles)

459 function R_C_CreateFcn(hObject, eventdata, handles)

460 if ispc && isequal(get(hObject,’BackgroundColor’), ...

461 get(0,’defaultUicontrolBackgroundColor’))

462 set(hObject,’BackgroundColor’,’white’);

463 end

464

465

466 function R_Perimetro_Callback(hObject, eventdata, handles)

467 function R_Perimetro_CreateFcn(hObject, eventdata, handles)

468 if ispc && isequal(get(hObject,’BackgroundColor’), ...

469 get(0,’defaultUicontrolBackgroundColor’))

470 set(hObject,’BackgroundColor’,’white’);

471 end

Ingenierıa Civil37

Ing. Civil

Programacion Digital Codigo Fuente

472 function R_Ex_Callback(hObject, eventdata, handles)

473 function R_Ex_CreateFcn(hObject, eventdata, handles)

474 if ispc && isequal(get(hObject,’BackgroundColor’), ...

475 get(0,’defaultUicontrolBackgroundColor’))

476 set(hObject,’BackgroundColor’,’white’);

477 end

478

479

480

481 function R_E_Callback(hObject, eventdata, handles)

482 function R_E_CreateFcn(hObject, eventdata, handles)

483 if ispc && isequal(get(hObject,’BackgroundColor’), ...

484 get(0,’defaultUicontrolBackgroundColor’))

485 set(hObject,’BackgroundColor’,’white’);

486 end

487

488

489 function R_Precision_Callback(hObject, eventdata, handles)

490 function R_Precision_CreateFcn(hObject, eventdata, handles)

491 if ispc && isequal(get(hObject,’BackgroundColor’), ...

492 get(0,’defaultUicontrolBackgroundColor’))

493 set(hObject,’BackgroundColor’,’white’);

494 end

495

496

497 function R_Ey_Callback(hObject, eventdata, handles)

498 function R_Ey_CreateFcn(hObject, eventdata, handles)

499 if ispc && isequal(get(hObject,’BackgroundColor’), ...

500 get(0,’defaultUicontrolBackgroundColor’))

501 set(hObject,’BackgroundColor’,’white’);

502 end

Ingenierıa Civil38

Ing. Civil