Does anyone have any ideas for a control strategy for a sailboat autopilot ?
I have a 28X interfaced to a GPS and can download the yachts track every few seconds (thanks Hippy and others on forum for parsing help). The output system is a reversible DC motor which via a mechanical reduction drives a ballscrew that moves the rudder. If power is applied the rudder moves and stays in that position until the next time the motor is energised. This drive system works well and earlier this year I fixed the mechanical and drive bugs.
The control strategy tried so far is to compute the error between desired and actual track, to multiply this error by a gain factor to give a correction time and then to actuate the drive motor in the correct sense for this time. The cycle is then repeated. The result is a gradually increasing series of oscillations (about the desired heading) and there appears to be no gain factor that will provide stability and control even in calm motoring conditions where little correction should be needed.
Next I tried modifying the correction time by adding a term proportional to how much the error had changed since the last read but this strategy has not helped either. Does anyone have any ideas on how to approach the problem ? I think I will have to incorporate some data logging system to allow proper analysis but still need to come up with a workable control method
Dennis
Â
I have a 28X interfaced to a GPS and can download the yachts track every few seconds (thanks Hippy and others on forum for parsing help). The output system is a reversible DC motor which via a mechanical reduction drives a ballscrew that moves the rudder. If power is applied the rudder moves and stays in that position until the next time the motor is energised. This drive system works well and earlier this year I fixed the mechanical and drive bugs.
The control strategy tried so far is to compute the error between desired and actual track, to multiply this error by a gain factor to give a correction time and then to actuate the drive motor in the correct sense for this time. The cycle is then repeated. The result is a gradually increasing series of oscillations (about the desired heading) and there appears to be no gain factor that will provide stability and control even in calm motoring conditions where little correction should be needed.
Next I tried modifying the correction time by adding a term proportional to how much the error had changed since the last read but this strategy has not helped either. Does anyone have any ideas on how to approach the problem ? I think I will have to incorporate some data logging system to allow proper analysis but still need to come up with a workable control method
Dennis
Â