24-10-2025, 08:58 PM 
      
    
    
      Debo hacer una puntualización.
La referencia de rumbo magnético no se compara directamente con el rumbo actual, ya que durante las maniobras que comporten grandes variaciones de angulo, se producirían transiciones muy bruscas.
Es por tanto necesario disponer de una nueva referencia magnética móvil que vamos a llamar referencia de piloto (En los listados de programa: NAVDAT.plt), y que es la que aparece tanto en la pantalla del mando como en el teclado Web.
Operativa WIND/VANE (Viento / veleta):
- Imaginemos una virada de +100° partiendo de un rumbo de 40°. La nueva referencia magnética será de 140° pero la consigna o referencia de rumbo para el piloto irá variando desde 40° a 140° progresivamente durante la maniobra y siempre limitada a la velocidad máxima de giro permitida.
Entonces, es esta referencia de piloto NAVDAT.plt la que va a ser modificada por las correcciones cuando varíe el angulo de viento navegando en modo WIND/VANE, y la referencia magnética inicial servirá para avisar al usuario cuando la rolada sea tal que nos obligue a apartarnos demasiado de ese rumbo inicial.
- El piloto avisará con un pitido corto por cada grado que deba modificar el rumbo para mantener constante el ángulo de viento; y con pitidos largos y el mensaje WIND SHIFT en la pantalla, cuando ese ángulo sea mayor del máximo permitido introducido en el setup de usuario.
De hecho esta operativa es exactamentente la que siguen los pilotos Raymarine que conozco. Como me gusta, pues he escrito el software para que haga lo mismo.
- El piloto aceptará correcciones de ángulo de viento y rumbo final durante las maniobras TACK / GYBE (virada y trasluchada) y fuera de ellas. Los ángulos de referencia de la incidencia del viento aparente (-) y del rumbo magnético (+) se modificarán en consonancia con el signo de la corrección.
Un ejemplo: Ceñimos con AWA de estribor de 30º y a rumbo magnético de 100º. Si pulsamos -10, le estamos indicando al piloto que queremos arribar 10º virando a babor. Lo que dará como resultado que la nueva referencia de AWA será de 40º y el nuevo rumbo HDG será de 90º. Aquí el signo de la corrección es (-), así que la modificación del ángulo de referencia del viento es (+), que pasa a 40º, y la nueva de heading es (-), que pasa a 90º.
Para los masoquistas, aquí el listado donde se prepara la maniobra de TACK / GYBE:
Y aquí la ejecución del modo viento:
    
    
    
La referencia de rumbo magnético no se compara directamente con el rumbo actual, ya que durante las maniobras que comporten grandes variaciones de angulo, se producirían transiciones muy bruscas.
Es por tanto necesario disponer de una nueva referencia magnética móvil que vamos a llamar referencia de piloto (En los listados de programa: NAVDAT.plt), y que es la que aparece tanto en la pantalla del mando como en el teclado Web.
Operativa WIND/VANE (Viento / veleta):
- Imaginemos una virada de +100° partiendo de un rumbo de 40°. La nueva referencia magnética será de 140° pero la consigna o referencia de rumbo para el piloto irá variando desde 40° a 140° progresivamente durante la maniobra y siempre limitada a la velocidad máxima de giro permitida.
Entonces, es esta referencia de piloto NAVDAT.plt la que va a ser modificada por las correcciones cuando varíe el angulo de viento navegando en modo WIND/VANE, y la referencia magnética inicial servirá para avisar al usuario cuando la rolada sea tal que nos obligue a apartarnos demasiado de ese rumbo inicial.
- El piloto avisará con un pitido corto por cada grado que deba modificar el rumbo para mantener constante el ángulo de viento; y con pitidos largos y el mensaje WIND SHIFT en la pantalla, cuando ese ángulo sea mayor del máximo permitido introducido en el setup de usuario.
De hecho esta operativa es exactamentente la que siguen los pilotos Raymarine que conozco. Como me gusta, pues he escrito el software para que haga lo mismo.
- El piloto aceptará correcciones de ángulo de viento y rumbo final durante las maniobras TACK / GYBE (virada y trasluchada) y fuera de ellas. Los ángulos de referencia de la incidencia del viento aparente (-) y del rumbo magnético (+) se modificarán en consonancia con el signo de la corrección.
Un ejemplo: Ceñimos con AWA de estribor de 30º y a rumbo magnético de 100º. Si pulsamos -10, le estamos indicando al piloto que queremos arribar 10º virando a babor. Lo que dará como resultado que la nueva referencia de AWA será de 40º y el nuevo rumbo HDG será de 90º. Aquí el signo de la corrección es (-), así que la modificación del ángulo de referencia del viento es (+), que pasa a 40º, y la nueva de heading es (-), que pasa a 90º.
Para los masoquistas, aquí el listado donde se prepara la maniobra de TACK / GYBE:
Código:
  case 5: case 6:                           // Tack and gybe Port / Starboard
    if (ChangeSteps) break;                 // Manouver is running
    if (NAVDAT.autom == AUTO) {             // AUTO Mode
      if (CourseDelta == 0) {
        if (keytmp == 5) CourseDelta = -Setup.TackAngle;    // Tack to port
        else             CourseDelta = Setup.TackAngle;     // Tack to starboard
      }
      ang_add(&BOATDATA.HdgRef, CourseDelta);
      NavControl(0x04);                             // To Init strong corr. (NavControl task)
    } else if (NAVDAT.autom == WIND) {      // WIND mode:
      BOATDATA.HdgRef = BOATDATA.Plt;       // New heading reference: Present Pilot angle
      WRefTmp = BOATDATA.Twa;               // Reference for Tack/Gibe. True wind
      MType = 0x04;                         // Prepare for TACK
      if (WRefTmp <= 6000) {                // TACK to Starboard      
        CourseDelta = 2 * WRefTmp;
      } else if (WRefTmp >= 30000) {     // TACK to Port
        CourseDelta = -2 * (36000 - WRefTmp);
      } else if ((Setup.Gybing == 1) || ((Setup.Gybing == 2) && (BOATDATA.Tws < 150))) {
        MType = 0x0c;                    // Motor speed limitation when gyving
        if ((WRefTmp >= 15000) && (WRefTmp < 18000)) {  // GYBING to Port
          CourseDelta = -2 * (18000 - WRefTmp);
        } else if ((WRefTmp > 18000) && (WRefTmp <= 21000)) {  // GYBING to Starboard
          CourseDelta = 2 * (WRefTmp - 18000);
        }
      } else {                      // else, No change
        beep(500);
        break;
      }
      BOATDATA.WindRef = 36000 - BOATDATA.Awa;   // New Reference: Opposite to initial Apparent wind angle
      ang_add(&BOATDATA.HdgRef, CourseDelta);
      NavControl(MType);
    } else beep(500);                                // Other modes: No change
    break;Y aquí la ejecución del modo viento:
Código:
    case WIND:                // WIND mode
      if ((BOATDATA.Awa == 0xffff) || (NAVDAT.aws < 40)) {
        alarm_sttb(3) = 1;             // Wind Shift alarm
        PilotChangeMode(AUTO);         // Low wind speed or no wind -> AUTO
        break;
      }     
      if (Navtask_action & 0x06) {     // If Modify or Init user maneuver
        ChangeSteps = 1;
        break;
      }
      if (ChangeSteps) {         // If maneuver is running (heading control):
        i32tmp = ang_subs(BOATDATA.HdgRef, BOATDATA.Hdg);
        CorrectStep = AvgError(&LpassError, i32tmp);
        if (absol(CorrectStep) < 500) ChangeSteps = 0;   // If heading error < 5º, switch to wind control
        else {                 // Executing maneuver
          int32_t hdg_err = absol(ang_subs(HdgInit, BOATDATA.Hdg));
          if ((++ChangeSteps > 3) && (hdg_err < Setup.TurnRateLim)) {
            alarm_sttb(2) = 1;        // Off Course Alarm
            PilotChangeMode(NFU);     // (STBY);
          }
        }
        break;
      }
      // Maneuver finished or permanent state, adapting course:
      i32tmp = ang_subs(BOATDATA.HdgRef, BOATDATA.Hdg_Average);     // Normal steering
      if (absol(i32tmp) > Setup.OffCourseLim) {                 // Off Course Limit      
        alarm_sttb(3) = 1;        // Wind Shift alarm
        PilotChangeMode(AUTO);
      } else CorrectStep = AvgError(&LpassError, ang_subs(BOATDATA.Awa, BOATDATA.WindRef));
      break;Si sientes que te duele Gaza, aunque estés a miles de kilómetros, es porque tu corazón está haciendo justo lo que tiene que hacer: sentir.


![[Imagen: Ruta.jpg]](https://i.postimg.cc/7Ps5CsqT/Ruta.jpg)