|
Página 1 de 2
|
Autor |
Mensaje |
RIKL
Usuario
Registrado: May 2012
Mensajes: 12
Edad: 29 Ubicación: Barcelona
|
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)
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
|
#1 Lunes, 09 Julio 2012, 17:43 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#2 Lunes, 09 Julio 2012, 19:19 |
|
|
RIKL
Usuario
Registrado: May 2012
Mensajes: 12
Edad: 29 Ubicación: Barcelona
|
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
|
#3 Lunes, 09 Julio 2012, 20:05 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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
Descripción: |
Algoritmo de seguimiento solar |
Descargar |
Nombre del archivo: |
algoritme_de_seguiment_solar.pdf |
Tamaño: |
1.91 MB |
Descargado: |
60 veces |
Descripción: |
Algoritmo de seguimiento solar |
Descargar |
Nombre del archivo: |
algoritme_de_seguiment_solar.pdf |
Tamaño: |
1.91 MB |
Descargado: |
60 veces |
Descripción: |
Algoritmo de seguimiento solar |
Descargar |
Nombre del archivo: |
algoritme_de_seguiment_solar.pdf |
Tamaño: |
1.91 MB |
Descargado: |
60 veces |
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Lunes, 09 Julio 2012, 20:06 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Lunes, 09 Julio 2012, 20:18 |
|
|
RIKL
Usuario
Registrado: May 2012
Mensajes: 12
Edad: 29 Ubicación: Barcelona
|
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
|
#6 Lunes, 09 Julio 2012, 21:22 |
|
|
RIKL
Usuario
Registrado: May 2012
Mensajes: 12
Edad: 29 Ubicación: Barcelona
|
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
|
#7 Lunes, 09 Julio 2012, 21:51 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
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
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Martes, 10 Julio 2012, 21:30 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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
|
#9 Miercoles, 11 Julio 2012, 10:00 |
|
|
RIKL
Usuario
Registrado: May 2012
Mensajes: 12
Edad: 29 Ubicación: Barcelona
|
Re: Ayuda Con Un Fragmento
¿como sabes que el código es erróneo? ¿solo porque no da la solución esperada?
Si porque no coincide con el ejemplo.
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
|
#10 Miercoles, 11 Julio 2012, 10:34 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|