Ayuda Con Un Fragmento


Ir a la página 1, 2  Siguiente

Objetivo: Ayuda Con Un Fragmento
Estoy realizando un proyecto para un seguidor solar i para ello necesito programar un algoritmo que me proporcione ciertos angulos de inclinación para poder orientar correctamente el seguidor. Pero parece que me he quedado estancado en una parte del programa y por mas vueltas que le doy no consigo ver el error (conozco el resulatado gracias a un ejemplo y en este punto deja de coincidir con mi programa).
En esta parte se trata de hacer unos calculos que indica el siguente archivo (Enlace).
La parte que interesa concretamente es la siguiente: (esta imagen corresponde a la s paginas 12 y 13 del pdf)
424323423

Y mi codigo para este calculo es este:

PUBLIC SUB longitud_latitud_geocentria()
DIM cc AS Float
DIM bb AS String
DIM Ba AS String
DIM x0 AS String
DIM x1 AS String
DIM x2 AS String
DIM x3 AS String
DIM x4 AS String
DIM X AS String
DIM xm AS Float[5]
DIM matriz AS NEW Float[63, 9]
DIM a AS Integer
DIM b AS Integer
DIM contingut AS String
DIM lineas_del_fichero AS String[]
DIM columnas AS String[]
DIM THa AS String
DIM THb AS String
DIM THc AS String
DIM THd AS String
DIM THY AS String
DIM Bi AS NEW Float[]
DIM Ci AS NEW Float[]
DIM Ai AS NEW Float[]
DIM i AS Integer
DIM n AS Float
DIM j AS Integer
DIM zz AS Float

cc = L + 180
REPEAT
IF cc > 360 THEN
cc = cc - 360
ENDIF
UNTIL cc < 360

'TextArea3.text = cc
bb = - B

'3.4. Calculate the nutation IN longitude AND obliquity()R AND )g):

xm[0] = 297.85036 + 445267.111480 * JCE - 0.0019142 * JCE * JCE + ((JCE * JCE * JCE) / 189474)
xm[1] = 357.52772 + 35999.050340 * JCE - 0.0001603 * JCE * JCE - ((JCE * JCE * JCE) / 300000)
xm[2] = 134.96298 + 477198.867398 * JCE + 0.0086972 * JCE * JCE + ((JCE * JCE * JCE) / 56250)
xm[3] = 93.27191 + 483202.017538 * JCE - 0.0036825 * JCE * JCE + ((JCE * JCE * JCE) / 327270)
xm[4] = 125.04452 - 1934.136261 * JCE + 0.0020708 * JCE * JCE + ((JCE * JCE * JCE) / 450000)

'CALCULAR Ayi i AEi amb les taules

contingut = TaulaYs.Text
lineas_del_fichero = Split(contingut, "\n")
FOR a = 0 TO lineas_del_fichero.count - 1
columnas = Split(lineas_del_fichero[a], " ") ' por ejemplo si los numeros de las columnas se separan por un espacio (Truco: con gedit es muy facil buscar y reemplazar varios espacios y sustituirlo por uno solo ;) )
FOR b = 0 TO columnas.count - 1
matriz[a, b] = CFloat(columnas[b]) ' la matriz[a,b], continea fila y columna el numero (con val(), convertimos el texto en numero.....
NEXT
NEXT

DWF$ = 0
Da$ = 0
j = 0
DWF = 0
i = 0
zz = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 5] + matriz[i, 6] * JCE) * Sin(zz)
DWF = DWF + Dw
i = i + 1
UNTIL i = 62

j = 0
Dw = 0
i = 0
zz = 0
Da = 0
REPEAT
zz = 0
FOR j = 0 TO 4
zz = zz + xm[j] * matriz[i, j]
NEXT
Dw = (matriz[i, 7] + matriz[i, 8] * JCE) * Cos(zz)
Da = Da + Dw
i = i + 1
UNTIL i = 62

DWF$ = DWF / 36000000
Da$ = Da / 36000000
END


Muchas gracias por su ayuda.

última edición por RIKL el Lunes, 09 Julio 2012, 20:00; editado 3 veces
Objetivo: Re: Ayuda Con Un Fragmento
La imagen no se ve bien, y el link no llega a ninguna parte, a ver si lo puedes corregir para que te podamos ayudar.

¿Exactamente que error te da?

Nota:
Un usuario de este foro estuvo haciendo practicamente el mismo programa, Oleguer , mirate este hilo: Enlace

última edición por jsbsan el Lunes, 09 Julio 2012, 19:27; editado 1 vez
Objetivo: Re: Ayuda Con Un Fragmento
Creo que ya he solucionado lo del link aunque lo de la imagen sigue sin verse muy bien pero corresponde a las paginas 12 i 13 del pdf (punto 3.4).

Te agradezco mucho tu ayuda.

PD: Si, tienes razon yo y Oleguer estamos haciendo el mismo trabajo, de hecho el programa es parte de un trabajo que tenemos que hacer en baxillerato.
De nuevo queremos darte las gracias por tu ayuda.

última edición por RIKL el Lunes, 09 Julio 2012, 20:08; editado 2 veces
Objetivo: Re: Ayuda Con Un Fragmento
Hola

He podido recuperar el documento pdf y lo subo como adjunto:

Por cierto, RIKL, he editado tu código indentándolo y encerrándolo entre las etiquetas code para que se resalte la sintaxis. En adelante puedes hacerlo tu mismo usando el botón que hay en el editor de mensajes de foro con el simbolo [C#], el segundo por la izquierda.

Saludos


algoritme_de_seguiment_solar.pdf
Descripción: Algoritmo de seguimiento solar 
Descargar
Nombre del archivo: algoritme_de_seguiment_solar.pdf
Tamaño: 1.91 MB
Descargado: 63 veces
algoritme_de_seguiment_solar.pdf
Descripción: Algoritmo de seguimiento solar 
Descargar
Nombre del archivo: algoritme_de_seguiment_solar.pdf
Tamaño: 1.91 MB
Descargado: 63 veces
algoritme_de_seguiment_solar.pdf
Descripción: Algoritmo de seguimiento solar 
Descargar
Nombre del archivo: algoritme_de_seguiment_solar.pdf
Tamaño: 1.91 MB
Descargado: 63 veces

Perfil MP  
Objetivo: Re: Ayuda Con Un Fragmento
Otra cosa. Veo que hay variables que no están declaradas a nivel local o de procedimiento (JCE, xm[], DWF, etc). Supongo que las tendrás declaradas a nivel de clase, como Private, no? Si puedes, coloca el código completo para poder probarlo.

Saludos

Perfil MP  
Objetivo: Re: Ayuda Con Un Fragmento
Si, estan declaradas como private. (tambien hay algunas variables que sobran de las muchas pruebas que hemos intentado)


Adjunto el programa entero (por terminar)
Enlace

PD:He intentado pegar el codigo entero pero no se pega entero asi que dejo el programa para descargar por si os resulta mas comodo.
PD2:Vereis que apartir de de la linea 688 no es correcto. Pero no quiero aprovecharme y pedirles que lo arreglen, de eso me ocuparé yo pero me he quedado atrapado en el punto 3.4.
Gracias

última edición por RIKL el Lunes, 09 Julio 2012, 21:36; editado 5 veces
Objetivo: Re: Ayuda Con Un Fragmento
Bueno ahora que les he enviado el codigo para que lo prueben tienen un ejemplo con soluciones en la pagina 38. Asi podran comprovar que efectivamente el codigo es erroneo desde "PUBLIC SUB longitud_latitud_geocentria()".
Ya me diran si pueden encontrar el error. Yo voy a seguir buscando mas errores.

Muchas gracias

Objetivo: Re: Ayuda Con Un Fragmento
No puedo abrirlo en Gambas3, no termina de hacer la conversión. ¿Alguien ha podido hacerlo?

Es que ya no uso Gambas2 y tampoco quiero instalarlo.

Saludos

Perfil MP  
Objetivo: Re: Ayuda Con Un Fragmento
jguardon:

Citar:
No puedo abrirlo en Gambas3, no termina de hacer la conversión. ¿Alguien ha podido hacerlo?

La conversion la hace mal, yo lo he tenido que abrir con gambas2.

RIKL
He mirado el codigo, pero sigo no me salta ningun error de sintaxis.
Citar:
es erroneo desde "PUBLIC SUB longitud_latitud_geocentria()".

¿como sabes que el codigo es erroneo? ¿solo porque no da la solucion esperada?

Creo recordar que en el manual venia el programa escrito en C, puede ser interesante que veas como esta hecho en C (que funciones tiene, como realiza la tarea) y luego lo compares con el codigo que has escrito en gambas, por que el algoritmo debe de ser igualmente válido, aunque sean los lenguajes diferentes.

última edición por jsbsan el Miercoles, 11 Julio 2012, 10:01; editado 1 vez
Objetivo: Re: Ayuda Con Un Fragmento
jsbsan escribió: [Ver mensaje]

¿como sabes que el código es erróneo? ¿solo porque no da la solución esperada?

Si porque no coincide con el ejemplo.
jsbsan escribió: [Ver mensaje]

puede ser interesante que veas como esta hecho en C (que funciones tiene, como realiza la tarea) y luego lo compares con el código que has escrito en gambas, por que el algoritmo debe de ser igualmente válido, aunque sean los lenguajes diferentes.

Lo he intentado pero no entiendo mucho de C i no estoy seguro de entenderlo bien. También podría buscar un compilador en C y probar haber si les da el mismo error, de ser así el error estaría en el ejemplo. Aunque si no hay error estaré en las mismas.

Gracias por vuestra ayuda.

última edición por RIKL el Miercoles, 11 Julio 2012, 10:36; editado 1 vez
Ir a la página 1, 2  Siguiente

Página 1 de 2


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.453s (PHP: -53% SQL: 153%)
Consultas SQL: 52 - Debug off - GZIP Activado