jueves, 1 de noviembre de 2012

El controlador de rotor que no controla de LU7HZ

Un poco contra reloj antes del concurso CQ WW SSB, y en el escasisimo tiempo que me dejan las obligaciones, traté de terminar el controlador de rotor e integrarlo con el rotor Walmar para el que está diseñado.
Si bien las pruebas de banco fueron exitosas, la integración con el rotor mismo no funcionó debidamente; ni en el modo semi-automático  ni en el modo automático.
El controlador en si implementa, y hasta donde puedo probar lo hace correctamente, las distintas funciones necesarias.
Es decir, si en el banco de prueba coloco un reóstato que simule el rotor, al poner una referencia en modo semi-automático los actuadores correctos aplican cierran los contactos correctos (aplicando tensión) hasta que la lectura del rotor (controlada manualmente) iguala a la de la referencia dentro un margen de tolerancia (arbitrariamente definido en 5 a 10 grados, sujeto a una experimentación que requiere una estabilidad que no he conseguido aún).
El puerto serie, uno de los puntos mas dificiles de implementar en los muy limitados recursos del controlador PIC 12F675 utilizado curiosamente anda muy bien, los comandos "AI1;" (reportar posición del rotor) y "AP1nnn;" (establecer la posición destino en la dirección nnn) son recibidos y procesados correctamente, generandose como en el caso semi-automático las respuestas de los controladores en la dirección correcta y deteniendose cuando el rotor (simulado) marca las tensiones objetivo. También la integración con el programa N1MMRotor.exe (parte del logger N1MM) funciona correctamente, los comandos que éste envía son procesados y las respuestas mostradas correctamente.
Pero al integrarlo con el rotor "verdadero" (un Walmar de servicio pesado) nada parece andar bien; para una prueba rápida integré el controlador automático en paralelo con el manual; pero ahi descubrí que el manual tenía un notorio ripple en la fuente de "continua" que alimentaba el reóstato de referencia del rotor, sobre todo en las posiciones de menor valor de resistencia (mas corriente), como resultado la lectura del procesador era absolutamente errática (si lograba sensar en un pico marcaba una cosa y en los valles otra), lecturas sucesivas daban diferencias de hasta 90 grados en la posición (tanto como para confundir Oeste con Norte, por ejemplo). El controlador manual, con un lector analógico de baja resolución muestra alguna oscilación, pero es un eficaz "integrador" de pulsos.
Corregido ese problema, o mitigado al menos, con un mejor diseño de la fuente, la lectura sigue errática y es muy dificil calibrar la lectura con la posición real. El principal problema viene del hecho que la lectura del reóstato muestra una resistencia marcadamente alineal con la posición, en principio pensé que el reóstato era en realidad logarítmico y ajusté la matemática del controlador para tener en cuenta el desvío. Pero si bien las lecturas mejoraron la oscilación de la marcación es enorme. Lecturas de otros rotores similares que me pasó gentilmente Jorge Viaña (LU1DA) en el foro LU-Técnica muestra que, además, la lectura del rotor debería ser muy próxima a una relación lineal con la posición.
Es evidente que hay algún problema en el rotor, tan simple como suciedad y tan complicado como un daño en el reóstato, que hace que las lecturas sean marcadamente erráticas y que el comportamiento no sea lineal.
Mientras no se solucione ese problema no puedo continuar con las pruebas ni con el desarrollo, y subir a la torre no es algo que yo pueda hacer así que pasará algún tiempo antes que alguien que me pueda dar una mano lo haga por mi.
Los valores erráticos y los "picos" de ruido que recibe hacen que el controlador funcione pero no sea efectivo; por un lado no puede leer con ningún grado de exactitud la posición y por el otro las funciones de rotación automática y semi-automática no terminan de llegar al acimut objetivo que algún ruido lo interrumpe; como el error puede ser amplio esto hace que en la práctica se detenga mucho antes de lo que debería.
Las pruebas de banco me llevan a tener confianza en el controlador; sin embargo creo que una vez que esté reparado el rotor hay que abordar como filtrar las oscilaciones y "latigazos" que vá dando el rotor mientras gira, sin ese ajuste aunque todo funcione bien igual tendrá lecturas erroneas. Quizás es parte del mismo problema y la limpieza que haya que hacer para que la lectura sea correcta haga que gire con mas "suavidad". Mientras tanto el estado actual del esquema (sujeto a modificaciones) puede obtenerse aqui y el microcódigo en su versión actual escrito en Pascal aqui o en Hex aqui.
El duro negocio de experimentar y que los experimentos den pelea.... ¿o es diversión?

1 comentario:

  1. Una de las soluciones que yo he encontrado es eliminar las antenas con rotor y hacerlas conmutadas por adiccion capacitiva o inductiva ( Recortandolas o alargandolas por reactancia)

    ResponderEliminar

Buscar este blog

Páginas vistas en total