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)