Gana 1 Etabs y 1 GStarCAD - Concurso Internacional CSI Ashraf Habibullah
Entra para más información

Dudas de programacion hp48g+

Responder

Topic author
magme182
Usuario Principiante
Usuario Principiante
Mensajes: 4
Registrado: Jue Mar 15, 2007 9:26 am
Ubicación: Cancun

#1

Jue Mar 15, 2007 9:42 am

Que tal?

Bueno tengo una hp-48g+ y necesito aprender a programarla ya que estudio ing civil. y he tratado con los manuales pero no me parecen muy claros.

A ver si me pueden ayudar, lo que quiero hacer es un programa para calcular propiedades geometricas de secciones de canales para hidraulica, tengo estas ecuaciones para un canal trapezoidal simetrico:

A = bd - zd^2
P = b + 2d √(1 + z^2)
R = A/P
V = 1/n * R^(2/3) *(1/2)
Q = A * V

donde:
A= area mojada
b = base del canal
d = Tirante
P = perimetro mojado
z = talud
R = radio hidraulico
V = velocidad
Q = gasto
n = coef de friccion de manning
S = pendiente


Ahora quiero que mi programa me pida todos estos datos, y yo pueda dejar uno de incognita, que sería el valor a encontrar, y luego que resuelva el sisetma de ecuaciones para poder encontrar el valor!!

Muchas gracias por sus respuestas!!!!

Avatar de Usuario

Jega
Usuario Intermedio
Usuario Intermedio
Mensajes: 83
Registrado: Jue Nov 03, 2005 3:13 pm
Ubicación: Bogotá

#2

Vie Mar 16, 2007 11:41 pm

hola, Quisiera saber si usted alguna vez a utilizado las equaciones de libreria que trae incorporada la calculadora, pues le cuento que tambien uno puede difinir ese tipo de formato para solucionar ecuaciones multiple, en el archivo adjunto le envio dos programas de canales uno para uno trapezoidal con diferente pendiente en los taludes y otro para un canal circular, solo tiene que ver que parametros defino dentro del programa para que usted se de cuenta de como se manejan ese tipo de programas.

si tiene alguna duda estare pendiente

Saludos y buena suerte
Adjuntos
geometria.zip
directorio donde se encuentran los dos programas
(1.18 KiB) Descargado 85 veces


Topic author
magme182
Usuario Principiante
Usuario Principiante
Mensajes: 4
Registrado: Jue Mar 15, 2007 9:26 am
Ubicación: Cancun

#3

Dom Mar 18, 2007 8:34 am

Muchas gracias por tu respuesta Ing. Gonzalez,

Bajé el archivo con tu sugerencia pero el problema es que no tengo el cable de conexión calculadora/computadora.

El ultimo avance que he tenido es el siguiente, utilizando el Multiple Equation Solver:

<<
{'A = bd + 1/2 d^2 (z1 + z2)'
'P = b + d √((1 + z1^2) + √(1+z2^2))'
'R = (bd + 1/2 d^2 (z1 + z2))/(b + d √((1 + z1^2) + √(1+z2^2)))'
'V = 1/n * R^(2/3) * S^(1/2)'
'Q = A * V'}
'EQ' STO MINIT MSOLVR
>>

Que son las ecuaciones para uno trapecial con diferentes taludes (no simetrico), y luego tengo otro programa para eliminar las variables utilizadas:
<<A>>

Pero tengo un problema, ya que le doy valores a b, Q, z1, z2, s y n, y me da un mensaje de TOO MANY UNKNOWNS, pero este problema con esos datos lo puedo solucionar despejando equaciones manualmente, quisiera saber si existe otro comando que pueda ejecutar para que realice este problema, además nose si exista una forma mas sencilla de hacer lo que tengo, gracias por sus respuestas!

Avatar de Usuario

Jega
Usuario Intermedio
Usuario Intermedio
Mensajes: 83
Registrado: Jue Nov 03, 2005 3:13 pm
Ubicación: Bogotá

#4

Dom Mar 18, 2007 9:03 am

Hola, te cuento que te falta una parte ya que necesitas definir tanto el nombre general de las ecuaciones como las variables, por eso te sale ese error despues de MINIT debes definir los nombres de las variables, el programa quedaria asi
<<
{'A = bd + 1/2 d^2 (z1 + z2)'
'P = b + d √((1 + z1^2) + √(1+z2^2))'
'R = (bd + 1/2 d^2 (z1 + z2))/(b + d √((1 + z1^2) + √(1+z2^2)))'
'V = 1/n * R^(2/3) * S^(1/2)'
'Q = A * V'}
'EQ' STO MINIT "REL. HIDRAULICAS SECCION TRAPEZOIDAL"
{Y b z1 z2 t A Pm Rh Dh K Zc } MITM
MSOLVR
>>

No se si el resto el programa esta bien, es decir las ecuaciones, pero trata de revizarlo porque cualquier error... otra cosa, al definir las variables debes tener mucho cuidado de las mayusculas y minusculas ya que la calculadora las consideraria como una variable diferente

Saludos y Suerte


Topic author
magme182
Usuario Principiante
Usuario Principiante
Mensajes: 4
Registrado: Jue Mar 15, 2007 9:26 am
Ubicación: Cancun

#5

Dom Mar 18, 2007 1:58 pm

Hola!, muchas gracias Jega, ya pude obtener el resultado sin problema alguno!, sòlamante tengo una duda, al introducir "REL. HIDRAULICAS SECCION TRAPEZOIDAL", es lo que debe salir de titulo al ejecutar el MSOLVR??, porque no me apareció, tal vez porque es un titulo muy largo.

Ahora ya que hice eso quisiera saber si hay alguna forma de hacer lo siguiente:
Para el canal tipo herradura existen 3 series de ecuaciones para 3 relaciones de llenado diferente, me gustaría poder hacer un programa donde le introduzca el nivel de llenado y el diámetro y ya decida cual serie de ecuaciones utilizar para hacer los cálculos de las propiedades geométricas. Otra opción que tengo es programar las 3 series de ecuaciones en 3 programas diferentes y decidir yo cual de los 3 utilizar, pero me gustaría hacerlo que el programa lo decida por mi.

Muchas gracias!! Has sido de gran ayuda!!

Avatar de Usuario

Jega
Usuario Intermedio
Usuario Intermedio
Mensajes: 83
Registrado: Jue Nov 03, 2005 3:13 pm
Ubicación: Bogotá

#6

Dom Mar 18, 2007 4:41 pm

Hola, respecto al titulo este solo aparece al principio en la parte superior, pero me parece que una vez uno empieza a asignar los valores este ya desaparece...

Para ese tipo de canal seria mucho mas complicado de programar, ya que tendria que primero pedir algunos datos para poderle hacer escoger la serie de ecuaciones apropiadas y tendrias que tener cuidado ya solo podria servir para un punto y tendrias que ejecutar nuevamente el programa para otro punto pues al cambiar el punto donde evaluas puede que ya no te sirva y te de un valor erroneo, la otra forma seria utilizar una condicional en la misma ecuacion, eso es posible mediante la funcion IFTE esto se podria hacer asi
'IFTE(A>B,B^2+A,A^2+B)' esta funcion necesita tres parametros y cada parametro se separa mediante "," comas la primera es la condicional la segunda se aplica si la comparacion es verdadera y la tercera si la condicional es falsa, para evaluar las tres condiciones seria un poco mas complicado tal vez tendrias que utilizar un par de IFTE en la misma ecuacion, igual no se si haya algun problema ya que yo solo he probado este tipo de condicional para graficar funciones definidas por partes y no para solucion de ecuaciones, pero igual le recomiendo que solo utilice un grupo de ecuaciones asi sean mas largas de definir ya que se puede incurrir en errores que luego pueden ser muy graves. La otra es que utilice un programa que diseñé para canales irregulares y que lo puede descargar aqui http://foros.construaprende.com/1-vt769 ... sc&start=0
el unico inconveniente seria definir los puntos que necesita el programa, y lo mejor seria hacer un programa para generar una buena cantidad de puntos para ese tipo de canal, en ese mismo tema hay un buen manual de programacion y aunque es para hp49g igual sirve ya que las calculadoras se programan igual

Saludos


Topic author
magme182
Usuario Principiante
Usuario Principiante
Mensajes: 4
Registrado: Jue Mar 15, 2007 9:26 am
Ubicación: Cancun

#7

Dom Mar 18, 2007 8:25 pm

Hola!, con lo del titulo sólo lo reduje a SECCION TRAPEZOIDAL y ya lo menciona al ejecutarlo, y efectivamente desaparece al empezar a introducir los valores.

Con lo de herradura, pensé que podría hacer lo siguiente:
Luego de darle los valores de d (tirante) y D (diámetro) haga lo siguiente:

IFTE(0<=d/D<=0.0886, 1er sist d ecuaciones ejecutando MSOLVR, IFTE(0.0886<=d/D<=1/2, 2do sist de ecuaciones ejecutando MSOLVR, 3er sist de ecuaciones ejecutando MSOLVR))

Me parece que es posible pero tengo dudas al principio para darle los datos al programa de d y D al principio, me gustaría que le pudiera escribir: "d en m:" y "D en m:", pero no tengo muy claro como hacerlo.

Muchas gracias, has sido de gran ayuda!

Avatar de Usuario

Jega
Usuario Intermedio
Usuario Intermedio
Mensajes: 83
Registrado: Jue Nov 03, 2005 3:13 pm
Ubicación: Bogotá

#8

Lun Mar 19, 2007 8:52 am

Hola si quieres puedes descargar el manual que te indique, ahí explican muy bien como pedir datos y como usar otros comandos de programacion...

para hacer lo que quieres necesitas IF THEN END y no IFTE ya que este ultimo sirve para funciones y el primero sirve para sentencias multiples es decir solo puedes hacer procedimientos con las secuencia IF THEN END, la otra, IFTE, solo te arroja valores como una ecuacion cualquiera.

Lo que yo te queria explicar es que con IFTE puedes definir el area, el perimetro mojado, el borde libre, etc., mediante una sola ecuacion, calro utilizando el IFTE y por lo tanto solo necesitarias un grupo de ecuaciones, por ejemplo que el area fuera
'A=IFTE(Y>D/2,(PI*D^2/4)/2+(Y-D)*T,TETA*D/2*Y/2)'
'T=IFTE(Y>D/2,2*(seno(TETA/2)*D/2),D)'
'TETA=IFTE(Y>D/2,.....

Y asi para cada una de las ecuaciones...

Saludos


vegaz
Usuario Principiante
Usuario Principiante
Mensajes: 1
Registrado: Lun Mar 08, 2010 10:58 pm

#9

Lun Nov 15, 2010 3:04 pm

al igual ke el pata ke te pregunta sobre komo programar un canal, te hago la misma pregunta pero lo mio es ke no se usar los komandos IF THEN.. etc etc ya me he elaborado algunos programas komo son para el kaso de analisis estructural, koncreto entre otros pero sin esos komandos resultandome la programacion mas dificil, ... en fin no se si me puedes ayudar o en todo kaso enseniar a usar esos komandos ke los nesesito apra diseniar un kanal revestido trapezoidal ke de una lista de valores me eskoja el ams apropiado y me resuelva el kanal u.u, y si despues de eso lo puedo pasar a una planilla excel ... hice el intento de pasar de excel a hp, pero algunos valores no me salieron ( usando el programa excel de la hp )

PD: uso la hp 50g y para programar uso el HPedit... saludos!

Avatar de Usuario

Jega
Usuario Intermedio
Usuario Intermedio
Mensajes: 83
Registrado: Jue Nov 03, 2005 3:13 pm
Ubicación: Bogotá

#10

Lun Nov 15, 2010 3:58 pm

Pues la verdad hace mucho que no programo con la HP48g y menos conozco el lenguaje HPedit el que manejo es el RPL pero busca en el manual que seguramente ahí te indican como usar las condicionales en tu lenguaje, para el RPL seria:
If a b > then
a b * 'C' STO
else
a b + 'C' STO
end if

lo que hace el programa es poner el valor de a en la pila luego el de b y compararlo, otra opcion seria
'a>b' EVAL lo que da como resultado de 0 o 1 que es el valor que toma el then y segun ese valor multiplica a y b o los suma.

Segun lo que me acuerdo porque como te dije hace mucho que no programo ahí.
Lamento no poderte ayudar mas, tal vez otro compañero te pueda ofrecer una mejor ayuda. Saludos

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje

Volver a “Hp”

  • Información