ESTE BLOG COMENZÓ A PUBLICARSE EN 2008, POR LO TANTO MUCHOS DE LOS TEMAS HAN QUEDADO DESACTUALIZADOS U OBSOLETOS. LOS LECTORES QUE DESEEN UTILIZAR ALGUNO DE LOS ELEMENTOS AQUI DESCRITOS DEBERÏAN ASEGURARSE DE BUSCAR LAS REFERENCIAS MAS MODERNAS DE LOS TEMAS DE SU INTERÉS. EL BUSCADOR INCLUIDO SERÄ UNA AYUDA PARA ESA BÚSQUEDA

martes, 2 de noviembre de 2010

Acantonamiento electrónico.



En mi último artículo esbozaba las ideas que me habían surgido como consecuencia de las posibilidades que aporta la tarjeta de Welleman. Todo ello se refiere al control de tracción de los trenes, un tema que hasta ahora apenas había esbozado en este blog. Así que ahora que me he calentado el coco con este asunto , conviene dejarlo por escrito, en primer lugar para mi mismo.

La idea inicial, ha sido siempre dividir toda la maqueta en sectores aislados. con la condición de que sólo puede haber una locomotora moviéndose en cada uno de esos sectores. (Puede haber más. pero necesariamente estarán "aparcadas" en una vía de estacionamiento, que tiene abierto el circuito de alimentación) Como el concepto de estos sectores coincide con la definición de cantones, yo les llamo cantones, pero hay que entender que no solo me refiero a los cantones del circuito principal que permiten la circulación de varios trenes en dicho circuito, sino que hay otros cantones más, en concreto dos más que corresponden a la estación principal (dibujado en violeta en el proyecto) y al taller de vapor (dibujado en gris).

El primer esquema de este artículo corresponde a esta solución: He dibujado dos cantones contiguos cualesquiera, a los que he llamado Cantón 1 y Cantón 2 y el circuito se recorre en el sentido de la flecha.

Las líneas de puntos indican las conexiones con el ordenador

Como se ve, hay una alimentación unida a cada cantón de forma fija, de modo que A alimenta el cantón 1 y B alimenta el cantón 2.

He colocado, cerca del final de cada cantón un contacto (tipo reed) y otro al principio. El situado al principio, como son los marcados como 2 y 4 están situados a solo unos pocos centímetros del principio del cantón y tienen la misión de detectar que un tren ha entrado en el cantón. El situado al final de cada cantón (como 1 y 3) está sin embargo a una cierta distancia. Esta distancia permite que un tren que circule por ese punto, se pueda detener de manera progresiva sin llegar a salirse del cantón. Obsérvese que no hay un trozo de vía aislado para detener el tren al final del cantón de salida o al principio del cantón de entrada para que allí se detengan los trenes, como es habitual en los sistemas analógicos. Los trenes se paran y arrancan suavemente porque son comandados desde la correspondiente alimentación, y no porque se queden en un carril aislado.

Así que el funcionamiento es como sigue: Mientras el tren está en el cantón 1, todos los controles que el usuario maneja en el ordenador referidos a la locomotora, se dirigen a la alimentación A que es la que maneja el cantón por el que circula esa locomotora. Cuando un tren se aproxima a un cambio de cantón y cierra el contacto 1. el programa de ordenador sabe si el cantón siguiente está libre o está ocupado. Si está ocupado, actúa sobre la alimentación A, para reducir progresivamente la velocidad del tren y que éste frene antes de llegar al final del cantón.

Obsérvese que cuando el tren queda frenado al final del cantón, todo el cantón tiene la alimentación a cero. Así que si por accidente se había metido otro tren en el cantón también quedará parado, de manera que nunca puede llegar a chocar con el tren parado al final.

Cuando el cantón siguiente queda libre, lo que hace el programa es "poner en paralelo" la alimentación B con la A (es decir a partir de este momento ambas funcionan al unísono) y hacer una arrancada suave del tren actuando simultáneamente sobre las dos alimentaciones. Cuando la locomotora pasa del cantón 1 al 2, pasa de recibir corriente de la alimentación A a hacerlo de la B, pero como ambas están actuando al unísono, en principio no debería notarse ninguna transición en el movimiento. Una vez que toda la locomotora está ya en el segundo cantón, el tren pasa por el contacto 2. Este contacto le indica al ordenador que el cantón 2 ha quedado ocupado y el cantón 1 ha quedado libre. Entonces ambas alimentaciones se dessincronizan, pasando a ser entonces la alimentación B la que pilota el tren. Evidentemente el programa de ordenador debe actuar en consecuencia, de modo que los controles del programa que se refieren a la locomotora deben pasar a actuar sobre la alimentación B en lugar de hacerlo sobre la A.

Desde luego, si cuando el tren llega al contacto 1, el cantón siguiente está libre, no se ordena ningún frenado sino que se pasa directamente a la sincronización de ambas alimentaciones.

Este fue mi pensamiento inicial, y en realidad es una solución posible, aunque tiene dos inconvenientes: En primer lugar el software resulta complicado, porque esa operación de "sincronizar" dos fuentes de alimentación, requiere un programa que no es tan fácil de hacer, sobre todo si se están considerando temas como la simulación de inercia, frenado, peso del tren, etc.

Sin embargo hay un problema más grave y es que la locomotora pasa de una alimentación a otra al pasar el corte de los carriles, por lo que en un momento dado puede estar recibiendo corriente sumada de las dos fuentes (tomada una por las ruedas delanteras y la otra por las traseras. Como ya demostró Ángel en su blog (Transiciones I) esto puede producir una irregularidad en el movimiento, ya que no se puede garantizar la coincidencia de fases entre las dos alimentaciones.*

Basándome en la solución aportada en el blog de Ángel (Transiciones II) tenía pensado ir a un esquema del tipo siguiente:

El esquema es similar, pero se añaden dos elementos SA y SB que son relés, por supuesto también comandados desde el programa. La variación estriba en que cuando el cantón está libre o se libera, no sólo se sincronizan ambas alimentaciones A y B, sino que el conmutador, en este caso SB conmuta la alimentación del cantón 2 para que sea también alimentado (todo el cantón) desde la alimentación A. Por ello el tren pasa por el corte de los carriles sin la menor afectación, porque ambos lados del corte están alimentados`por la misma alimentación.

Al llegar al contacto 2, el programa actúa sobre el relé SB cambiando instantáneamente la alimentación desde la fuente A a la fuente B. Ya no se produce la posibilidad de que la locomotora reciba la corriente sumada de las dos fuentes, y la conmutación es rapidísima,así que si las dos fuentes estaban bien sincronizadas no se debe notar ningún salto.

Obsérvese que excepto en unos intervalos muy cortos, se sigue manteniendo el esquema de que cada cantón es alimentado por su propia fuente de alimentación, por lo que sigo necesitando ocho alimentaciones. El programa sigue manteniendo la dificultad de conseguir la sincronización entre dos fuentes y el control necesario para que las instrucciones destinadas a cada locomotora vaya a parar a la alimentación que la controla en cada momento.

Como he comentado siempre he pensado en los conmutadores SA y SB como relés, precisamente por el motivo de que deben conmutar la corriente de tracción, y por lo tanto por el mismo motivo ya explicado para los interruptores de las vías de apartadero

La nueva idea, mantiene un esquema similar, pero los conmutadores ahora son múltiples, y están colocados al revés: En vez de permitir que un cantón se alimente desde una u otra fuente de alimentación, lo que hacen es que cada fuente de alimentación se pueda llevar a uno cualquiera de los 8 cantones. De hecho, aunque no está así dibujado, cada fuente de alimentación se puede llevar a dos cantones cualesquiera, a uno solo o a ninguno.

El funcionamiento es entonces como sigue. Suponiendo que la alimentación A está unida al cantón 1, cuando el tren llega al detector 1, el programa comprueba si el cantón 2 está libre. Si lo está dirige el conmutador de la alimentación A de modo que alimente simultáneamente al cantón 1 y al cantón 2 (si no está detiene el tren antes de que salga del cantón como en los casos anteriores) El tren pasa entonces el corte de carriles sin ningún problema puesto que ambos cantones están alimentados desde la fuente A. Al cerrar el segundo contacto, 2, la alimentación A se desconecta del cantón 1, pero continúa conectada al cantón 2, donde ahora está la locomotora.

Las ventajas son muy importantes: En primer lugar, la locomotora no ha cambiado de alimentación, de modo que no hay nada que sincronizar ni hay posibilidad de ninguna irregularidad en el funcionamiento. En segundo lugar el programa no tiene que ocuparse de cambiar los controles de esa locomotora a otra alimentación, ya que la alimentación no ha cambiado. Ambas cosas simplifican tremendamente el programa de control,

Y como tercera ventaja, si se observa el razonamiento, la alimentación 2 no ha hecho falta para nada. Así que con este sistema se puede funcionar sólo con cuatro o cinco alimentaciones. El número de alimentaciones no tiene relación con el número de cantones sino con el máximo número de trenes que queramos rodar de forma simultánea.

La complicación de este tercer método a ido a parar al hardware ya que esos conmutadores son complicados de hacer. Hacerlos con relés sería muy complicado ya que se requiere un número muy grande. Por eso me propongo intentar realizarlos con conmutadores estáticos (multiplexores analógicos) como el 74HC4051. Hay además una dificultad adicional, y es que la situación de estos conmutadores debe mantenerse indefinidamente en el tiempo (hasta que se reciba una orden para cambiar su estado) lo cual parece apuntar a la necesidad de utilizar circuitos de enclavamiento como el 74HC373.

Y por supuesto, soy consciente de que con este tipo de dispositivos sólo puedo manejar tensiones de 5V y corrientes de microamperios con una polaridad dada**, de modo que la parte de amplificación, inversión y por supuesto los Gaugemasters, deben quedar "aguas abajo" y asociarse a los cantones y no a las alimentaciones.

No se si he explicado suficientemente el tema, porque yo mismo tengo todavía algunas vacilaciones, pero creo que esta última vuelta de tuerca ha sido muy positiva. He podido comprobar por las estadísticas de este blog que todos los temas relacionados con el control de los cantones, son de los que más lecturas acumulan. Espero que este novedoso método de acantonamiento basado en ordenador no provoque más dudas que soluciones.

Una cosa: El tren puede estar funcionando en "automático" o en "manual". La diferencia está simplemente en que en automático, si el tren se puede mover se moverá y lo hará a una velocidad programada. En cambio en modo manual, el tren no se mueve hasta que el operador actúa sobre el control en el ordenador, y puede ajustar la velocidad. Sin embargo, aunque el operador pretenda saltarse una señal y entrar en un cantón cerrado, el programa frenará el tren automáticamente, como si estuviera en modo automático.

A lo mejor esto parece poco real, pero el sistema que he descrito, incluyendo los detectores situados uno de ellos con tiempo para el frenado y el otro junto al punto de parada, y el hecho de que si pretendo saltarme una señal el tren se frena solo reproducen casi exactamente el sistema ASFA que es el empleado normalmente en las líneas férreas reales. Véase este vídeo:



* Contando con dos alimentaciones conectadas a dos salidas PWM de la misma placa Welleman, dado que ambas provienen del mismo microcontrolador me sorprendería que no estuvieran en fase. Sin embargo cuando se trata de alimentaciones de placas distintas, no creo que haya forma de sincronizarlas

** En realidad podría manejar la corriente como positiva o negativa ya que este multiplexor es analógico, pero a base de una dificultad en la alimentación que no me compensa.

2 comentarios:

  1. Navegando por la red he encontrado una universidad que utiliza una maqueta analógica en H0 para hacer las prácticas de programación de sistemas simultaneos en tiempo real.
    Me ha llamado la atención la forma en la que controlan los cantones, es algo parecido a lo que comentabas de tener varias alimentaciones con un conmutador (sección: Control block):

    http://www.stsc.hill.af.mil/crosstalk/2000/08/mccormick.html

    Creo que es una muy buena solución si utilizas varias señales PWM asíncronas.

    Más links relacionados:
    http://www.cs.uni.edu/~mccormic/RealTime
    http://isa.uniovi.es/docencia/TiempoReal/trenes_wq/trenes_wq.html

    Saludos.

    ResponderEliminar
  2. ¡Cielos! El párrafo titulado "Block Control" de ese primer artículo describe exactamente lo que yo he pensado. Exactamente, cuatro señales digitales distribuyen la alimentación analógica (PWM) a ocho cantones mediante un multiplexor analógico como el 74HC4051

    Da gusto ver que estoy al nivel de una universidad americana!!

    ResponderEliminar

Gracias por expresar tus opiniones.

Los comentarios aparecerán en el blog normalmente en unos pocos segundos