Stuurautomaat boot

EricP

mét CE

bijna alle kunnen zonder feedback werken. ze sturen dan alleen een analoog signaal naar het stuursysteem en daar zit dan een feedback in. hij kijkt dan zelf niet naar het roer. (maar weet inprincipe wel wat de roerstand is omdat hij dat analoog uitstuurt.

Waarom staat er dan in elke installation manual dat 'rudder feedback mandatory is for accurate steering'? Kun je me dat uitleggen? Of zouden ze gewoon graag rudder feedback sensors verkopen en daar hun brood mee verdienen??

heeft opzich niet zo heel veel met de kwaliteit te maken. ik heb het genoeg mee gemaakt dat als de kompassen te hoog geplaatst zijn ze hier zodanig last van hebben met sturen op de piloot dat het niet bij te regelen is. (maar ik kijk denk ik nu te veel naar de zeevaart)

Ik kijk uitsluitend naar de zeevaart. Op binnenwater is de hele discussie niet van toepassing - geen waterdiepte, dus geen zeegang (alhoewel sommige mensen 50cm golven op het IJsselmeer ook al 'zeegang' noemen :)). Die dingen zitten allemaal ter hoogte van de brug - en dat is al snel tussen de 5 en 15 meter boven water. Toegegeven, vaak een gyro kompas, GPS kompas zie je ook steeds meer, maar een fluxgate is niet zelden aanwezig als 'backup'. Die hangen dan wel in hun eigen dome cardanisch - iets met stabiel blijven in de veldlijnen van het aardmagnetisch veld. en ze krijgen het volgens de documentatie moeilijker op hogere breedte - wat op zich niet raar is.

en ook hier weer ben ik teveel zeevaart georiënteerd. ik kan als ik beneden op het stuursysteem direct de solenoids aanstuur terwijl de piloot aanstaat max 1 a 2 graden uitslaan en dan wordt die direct bijgeregeld.

Precies. Dan praat je dus over een bekrachtigd stuurwerk, wat op wat alles boven een meter of 40, 50 wel standaard is. En waarom wordt er bij geregeld? Omdat de stuurautomaat graag een bepaalde roerstand ziet - en weet dat het roer anders staat via z'n rudder feedback.

ook ik ken genoeg adaptive(zelf lerende) piloten en werk daar ook genoeg mee. maar die hebben eigenlijk allemaal ook nog de mogelijkheid om als pid regelaar te werken.
ik denk eerst dat je toch de PID regeling goed aan de gang moet hebben voordat je dan naar de adaptive mogelijkheid gaat kijken. dan kan je het best met de kalman filter werken (staat een stuk in het document). Maar dat is een stap verder

Adaptive is noodzakelijk om onder 'alle' omstandigheden redelijk te kunnen sturen. Ben het wel met je eens dat eerst eens op vlak water zonder wind recht uit varen noodzakelijk is.

Overigens is een 'Kalman filter' een dure naam voor een fatsoenlijke middeling van je input.

ik durf hier geen duidelijke uitspraken over te doen aangezien ik hier zelf software matig ook niet echt mee bezig ben geweest, maar denk dat je dit apart moet regelen ten opzichte van je koers. uiteindelijk moet je ze wel combineren. maar moet me daar ook nog weer eens goed op inlezen

Ik ben wel eens met een niet nader te noemen autopilot boer hierover in discussie geweest. Veel van geleerd, maar hoe ze het precies doen, daar kwam ik niet achter - werd erg omheen gepraat, blijkbaar werd het als 'bedrijfsgeheim' beschouwd. Gezien de openheid op andere vlakken, is te verwachten dat het bij hun ingewikkelder is dan een simpele PID regelaar.

Voor de TS niet zo zeer van toepassing: Met grotere roeren zie je ook regelmatig beperkingen in de roeruitslag afhankelijk van de snelheid (die input hebben die automaten ook, meer snelheid, minder roeruitslag nodig voor hetzelfde effect; dat is evt. voor een jacht wel interessant).
De beperking in de roeruitslag is noodzakelijk om te voorkomen dat de boel kapot gaat - je kunt je wellicht voorstellen hoe groot de krachten op een roerblad zijn als je 30 graden uitslag zou geven bij 25 knopen. Voor een jacht niet relevant.

Om overigens nog even op 'adaptive' terug te komen: je merkt dat ook als mensen op de hand staan te sturen onder wat moeilijkere omstandigheden: als ze er net staan, dan slingeren ze nogal. Dat wordt na 10 minuten beter - ze beginnen de beweging aan te voelen. Om na een half uur tot een uur weer te te nemen omdat ze hun concentratie beginnen te verliezen. Mensen met meer ervaring hebben meestal een kortere 'adaption time' dan relatief onervaren mensen.

Waarom staat er dan in elke installation manual dat 'rudder feedback mandatory is for accurate steering'? Kun je me dat uitleggen? Of zouden ze gewoon graag rudder feedback sensors verkopen en daar hun brood mee verdienen??

nu klopt het inderdaad dat een autopilot een feedback zou willen hebben van het roer(rond 80% van de gevallen is dat ook zo) nu zijn er een paar uitzonderingen.
voorbeeld is een thruster. die draaien 360 graden rond. en is dat niet met autopilot feedback terug te lezen. hier wordt dus een analoog signaal naar het stuursysteem gestuurd en die regelt dan het roer in zo'n bereik dat je er mee op de piloot kan sturen (zeg 35stb to 35port)

ander voorbeeld is een proportioneel roer. dit systeem zelf kijkt naar het roer en naar de inkomende roeruitslag gegeven door de autopilot/dp/hand order. is het verschil dusdaning groot dan gaat het systeem het roer sneller draaien en bouwt hem af op het moment dat het roer bij zijn ingestelde waarde is.
ook hier komt een analoog signaal vanaf de piloot omdat de piloot dit zelf niet regelt maar apart geregeld wordt.

dit zijn effe 2 voorbeelden.

het analoog signaal naar de roeren toe moet wel gekalibreerd worden. je kan dus eigenlijk zeggen dat de piloot dus wel een soort feedback terugkrijgt omdat hij zelf weet hoeveel hij uit wilt sturen.

kompas

hier kijk ik dan toch inderdaad naar de gyro en gps kompassen. tegenwoordig is het een stuk minder bij de gyro's dat ze echt op de waterlijn van het schip geplaats moeten worden. maar je ziet het vooral bij feederschepen (smalle schepen, relatief hoge opbouw) dat deze behoorlijk kunnen slingeren bovenin. daar moet het kompas toch echt zo laag mogelijk geplaats worden.

dan heb je het gps kompass. op grotere schepen mag dit alleen als backup gebruikt worden maar is niet verplicht om te hebben. zit je ook met het probleem dat als het te hoog geplaats is het behoorlijk kan slingeren. slepers hebben hier regelmatig last van. (ik krijg dan de piloot niet goed afgeregeld als ik niet een betrouwbare heading heb).

een magneet kompas is altijd aanwezig op schepen en die hangen inderdaad cardanisch maar ook daar zie je dat die op zulke hoogte met slinger gedrag niet altijd stabiel zijn(scheeps afhankelijk)

Precies. Dan praat je dus over een bekrachtigd stuurwerk, wat op wat alles boven een meter of 40, 50 wel standaard is. En waarom wordt er bij geregeld? Omdat de stuurautomaat graag een bepaalde roerstand ziet - en weet dat het roer anders staat via z'n rudder feedback.

dit hoeft niet uit de stuur automaat te komen (zie bovenstaande tekst)

Ik ben wel eens met een niet nader te noemen autopilot boer hierover in discussie geweest. Veel van geleerd, maar hoe ze het precies doen, daar kwam ik niet achter - werd erg omheen gepraat, blijkbaar werd het als 'bedrijfsgeheim' beschouwd. Gezien de openheid op andere vlakken, is te verwachten dat het bij hun ingewikkelder is dan een simpele PID regelaar.

ik heb zeer regelmatig contact met verschillende autopilot boeren en inderdaad heb ik nog nergens een zeer precieze formule van hun gekregen hoe zij het doen. maar ze werken wel allemaal volgens het zelfde principe. voor de adaptive mode gebruiken ze allemaal het kalman filter principe.
maar het verscheelt wel tussen de fabrikanten hoe een piloot stuurt.
punt is dat ze allemaal aan de IMO regels moeten voldoen dus niet heel veel van elkaar afwijken met betrekking tot het regelen hiervan.

Voor de TS niet zo zeer van toepassing: Met grotere roeren zie je ook regelmatig beperkingen in de roeruitslag afhankelijk van de snelheid (die input hebben die automaten ook, meer snelheid, minder roeruitslag nodig voor hetzelfde effect; dat is evt. voor een jacht wel interessant).
De beperking in de roeruitslag is noodzakelijk om te voorkomen dat de boel kapot gaat - je kunt je wellicht voorstellen hoe groot de krachten op een roerblad zijn als je 30 graden uitslag zou geven bij 25 knopen. Voor een jacht niet relevant.

dit klopt en 95% van de tijd wordt er op piloot ook niet verder dan 15 graden uitgestuurd. heeft er ook mee te maken om het schip rustiger te laten varen. afgezien van de krachten die bij 30 graden 25knopen op het materiaal komt vaart het een een stuk onrustiger.

over de adaptive mode heb je ook gelijk en het werkt ook zeker een stuk simpeler. maar als een autopiloot goed ingeregeld is dan kan je in PID mode met zwaar weer nog prima varen zonder al te veel rare dingen. (regelmatig meegemaakt)

hoe hoger in de mast aan het werk, hoe mooier het uitzicht

Door 2 regelkringen in cascade te plaatsen.

-1ste regelkring: Setpoint = gewenste koers, terugkoppeling = kompasuitlezing
-2de regelkring: Setpoint = gewenste stand roer, terugkoppeling = feedback roerstand

Uitgang 1ste regelkring => ingang 2de.

Begin eerst met de laatste zonder je iets aan te trekken van de rest maw maak een regelkring die het roer correct positioneert aan de hand van een setpoint, bv -45 tot +45 graden.

Dat betekend dus 2x een PID regelaar in Cascade? En hoe word dan de gewenste roerstand rekenkundig bepaald? Uiteraard proefondervindelijk, maar uiteindelijk zal het in een formule gegoten moeten worden. Uitgang eerste regelkring = gewenste koers, ingang tweede regelkring = gewenste roerstand, daar zit een significant verschil tussen.

Wat betreft roeruitslag op m'n 9 meter jachtje; Ik denk dat met rechtuitvaren op rustig water 2 graden roeruitslag niet gehaald word. Max. is overigens +/- 35 graden.

Gr.

Erik

als het goed is staat die formule in het document wat ik je heb gestuurd. moet je effe zoeken

hoe hoger in de mast aan het werk, hoe mooier het uitzicht
Lambiek

Special Member

@ leip11,

Zou je die ook naar mij willen sturen, ben daar zeer benieuwd naar.

Als je haar maar goed zit, GROETEN LAMBIEK.

dropbox link is nog steeds beschikbaar ergens in een bovenstaand bericht

hoe hoger in de mast aan het werk, hoe mooier het uitzicht
Lambiek

Special Member

Als je haar maar goed zit, GROETEN LAMBIEK.

Aan de slag gegaan met de PID library van Arduino. Hoewel het werkt op een breadbordje, 2 leds en een handbediende potmeter vrees ik toch dat dit projectje te hoog gegrepen gaat worden voor mij. De tijd tussen omschakelen stuurboord/bakboord is veel te kort, dat trekt die arme pomp niet. Ook word het setpoint nooit bereikt, er staat altijd 1 led/relais aan. Ik geef het nog niet op met de PID library en ga nog wel wat puzzelen ermee. Heb ook het ideetje om de relais-aan-tijd afhankelijk te maken van de afwijking, dat krijg ik met mijn steenkolenprogrammeerkunsten nog wel voor elkaar.

Gr.

Erik

begin is er :)

je kan het best met een hysterisch werken om het hunten tegen te gaan.

dat er nu een led aan blijft staan heeft dan waarschijnlijk ook te maken met je deadband die te laag is en je het niet fysiek stuurt. je geeft wel een feedback maar wordt nog niet aangestuurd door je piloot

hoe hoger in de mast aan het werk, hoe mooier het uitzicht
EricP

mét CE

Precies. Normaal heb je een 'seastate filter' achtig iets. Vrij vertaald, komt het er op neer dat de boel pas gecorrigeerd wordt als je meer dan een bepaalde afwijking (of een afwijking langer dan een bepaalde tijd) hebt. Het voorkomt dat een roer gaat staan klapperen op elke golf, hetgeen doorgaans overcorrigeren tot gevolg heeft.

Vrij vertaald komt het er op neer dat je rustig een paar graden van koers mag liggen (mits niet te lang) zonder dat er ingegrepen wordt.
Die 'dead band' (om de terminologie hierboven te gebruiken) is noodzakelijk. Anders zul je een erg zenuwachtig stuursysteem krijgen (wat waarschijnlijk ook niet tot rust gaat komen).

Voor wat betreft de IMO-eisen: ik weet er (in deze context) te weinig van om er een oordeel over te hebben. Meestal komt het er op neer dat je een stapel safeguards hebt om 'auto-pilot assisted accidents' in elk geval moeilijk te maken. Ik denk dat het min of meer op elkaar lijken van de algoritmes er meer mee te maken heeft dat ze allemaal een wiel uitgevonden hebben en dat al die wielen min of meer rond zijn...

Overigens bevestigt leip min of meer wat ik al eerder riep mbt. rudder feedback: de autopilot weet waar het roer staat. Toegegeven, dat hoeft niet altijd via feedback te zijn - al ken ik het uit de praktijk niet anders.

Voor wat betreft kompassen: Gyro moet inderdaad zo rustig mogelijk hangen - en heeft ook geen link met een magnetisch veld. Da's dus relatief 'eenvoudig' - hang dat ding op het punt waar het schip om draait (jammer dat zich dat met belading verplaatst, maar je kunt niet alles hebben :) ). Voor zover ik weet mag een GPS kompas ook als 'main' gebruikt worden (mits voorzien van wheelmark, uiteraard, want anders kan het nooit goed zijn...), maar moet er een backup zijn (met name om te voorkomen dat als GPS er mee stopt, je helemaal niks meer hebt). Dat als achtergrond informatie.

Voor wat betref het project van de TS: het is niet eenvoudig. Bootjes zijn nou eenmaal niet zo makkelijk in wiskunde te vatten. Ik denk dat je met die dubbele PID regeling wel een eind moet komen, maar je zult het ook 'self learning', zo je wilt 'adaptive' moeten maken om te voorkomen dat je continu parameters aan het tunen bent tijdens het varen - omdat de omstandigheden nou net weer iets anders zijn dan de vorige keer. Een 9m jacht is toch iets 'zenuwachtiger' dan een 200m vrachtschip. Een sleper is een verhaal apart.

//tell the PID to range between 0 and the full window size
* myPID.SetOutputLimits(0, WindowSize);

* Input: The variable we're trying to control (double)
* Output: The variable that will be adjusted by the pid (double)
* Setpoint: The value we want to Input to maintain (double)
* Kp, Ki, Kd: Tuning Parameters. these affect how the pid will chage the output. (double>=0)
* Direction: Either DIRECT or REVERSE. determines which direction the output will move when faced with a given error. DIRECT is most common.

* SetSampleTime()

Bovenstaand zijn de parameters die te beinvloeden zijn van deze Arduino library. Ik neem aan dat dat voldoende moet zijn.

Deadband had ik ook begrepen, maar ik dacht dat dat nu juist niet nodig zou zijn met PID met de juiste instellingen van Kp, Ki, Kd.

Alvast bedankt weer voor het meedenken, word zeer gewaardeerd.

Gr.

Erik

Roerstand kun je gewoon meenemen in de PID lus. Zou je PPID kunnen noemen: kompassignaal-PID + roerstand-P samen geven je stuursignaal naar de kleppen.
Flink deadband bij slecht weer kan geen kwaad, omdat de I-term uiteindelijk toch de gemiddelde koers steady gaat houden. Je ziet dan dat het roer een stukje verzet wordt en daar weer blijft staan; het schip gaat dan om de juiste koers verder gieren.
Het is maar wat voor yaw je zelf toelaatbaar vindt.

De P factor is gemakkelijk uit te vinden als je even met de hand stuurt: hoeveel neem je zelf? De D-tijdconstante ligt ergens in de seconden; die van de I enkele tientallen seconden, tot minuten voor grotere schepen.

Keramisch, kalibratie, parasitair: woordenlijst.org

Op 27 november 2013 22:15:56 schreef EricP:
Voor wat betreft de IMO-eisen: ik weet er (in deze context) te weinig van om er een oordeel over te hebben. Meestal komt het er op neer dat je een stapel safeguards hebt om 'auto-pilot assisted accidents' in elk geval moeilijk te maken. Ik denk dat het min of meer op elkaar lijken van de algoritmes er meer mee te maken heeft dat ze allemaal een wiel uitgevonden hebben en dat al die wielen min of meer rond zijn...

een vorm van safegaurds is de mogelijkheid om ten alle tijden het roer zelf te kunnen bedienen. dit houdt in dat er een NFU unit ergens staat die je ten alle tijden kan bedienen. hij gaat dan uit autopilot en schakelt hier als override naar over. ben je klaar zet je hem weer terug in pilot

Voor wat betreft kompassen: Gyro moet inderdaad zo rustig mogelijk hangen - en heeft ook geen link met een magnetisch veld. Da's dus relatief 'eenvoudig' - hang dat ding op het punt waar het schip om draait (jammer dat zich dat met belading verplaatst, maar je kunt niet alles hebben :) ). Voor zover ik weet mag een GPS kompas ook als 'main' gebruikt worden (mits voorzien van wheelmark, uiteraard, want anders kan het nooit goed zijn...), maar moet er een backup zijn (met name om te voorkomen dat als GPS er mee stopt, je helemaal niks meer hebt). Dat als achtergrond informatie.

je mag een gps kompas als main gebruiken tot een bepaalde grote schip(tonnage weet ik niet uit mijn hoofd) daarboven moet het een gyrocompass zijn

Voor wat betref het project van de TS: het is niet eenvoudig. Bootjes zijn nou eenmaal niet zo makkelijk in wiskunde te vatten. Ik denk dat je met die dubbele PID regeling wel een eind moet komen, maar je zult het ook 'self learning', zo je wilt 'adaptive' moeten maken om te voorkomen dat je continu parameters aan het tunen bent tijdens het varen - omdat de omstandigheden nou net weer iets anders zijn dan de vorige keer. Een 9m jacht is toch iets 'zenuwachtiger' dan een 200m vrachtschip. Een sleper is een verhaal apart.

ik zou denk ik nog wachten met een adaptive mode. het vaart inderdaad een stuk rustiger. maar let wel dat dit behoorlijk ingewikkeld in elkaar zit.

hoe hoger in de mast aan het werk, hoe mooier het uitzicht

Deadband zit al in de huidige code verwerkt. Omdat die PID toch erg moeilijk word voor mij besloten om een "poor man's PID" in te bouwen en kijken of het werkt. Volgende keer ga ik eerst maar eens hiermee testen, als het hoopvol stemt kan het misschien verbeterd worden.

relais tijd aan = abs(gewenste koers - gemeten koers) * correctietijd;

correctietijd kan "on the fly" aangepast worden.

Gr.

Erik

-Edit- Een mooi linkje van iemand gekregen over PID; http://www.inpharmix.com/jps/PID_Controller_For_Lego_Mindsto...obots.html Het P-gedeelte zit nu in ieder geval goed geimplementeerd in mijn code. Als er weinig wind staat de volgende proefvaart maken en kijken wat het doet en wat er verbeterd moet worden.

[Bericht gewijzigd door erik1234 op 1 december 2013 00:18:19 (28%)]

Inmiddels een poos verder en besloten eerst maar wat te gaan meten.

Onderstaand grafiekje is gemaakt terwijl er ouderwets met de hand werd gestuurd bij rechtuit varen. Om te beginnen rustig water, geen wind.

http://i59.tinypic.com/9s57a9.jpg

Bovenste lijntje - Gevaren koers
Middelste lijntje - Afwijking van het roer t.o.v. middenstand
Onderste lijntje - Afwijking van de actuele koers t.o.v. gewenste koers.

Ziet er dramatisch uit, maar het is allemaal sterk uitvergroot. Tussentijden van de log 200 ms. Dit is maar een deel van de grafiek (geimporteerd in Excel), totaal is er 8 minuten aan data. Duidelijk te zien is het verband tussen de onderste 2 grafieken.

Op welke manier kan ik een formule vinden tussen de onderste 2 grafiekjes? Gewenste roerstand = x * (afwijking koers). Ik ben al aan het stoeien geweest met trendlijnen in Excel maar kom daar niet echt verder mee.

Gr.

Erik

Hallo Erik,

Ik kan je wel helpen denk ik, maar niet met de grafieken en data die je nu hebt gemaakt. Ik zou je willen vragen het volgende te doen: pas je computerprogramma aan zodat jij de roerstand in kan toetsen. Ga dan varen en pas de roerstand enige keren handmatig aan. Wacht na elke roerstand een tijdje om het effect op de koers te zien. Sla vervolgens die data op in een Excel bestand en gebruik deze tool:
http://www.dotxcontrol.com/nl/downloads/software.html
Dan moet je computerprogramma wel een PID regelaar hebben, maar die is eenvoudig te programmeren. Als je P actie kan realiseren, kan de I and D actie ook. Ik help je graag als je er niet uitkomt.

Op 26 mei 2014 07:12:40 schreef regelspecialist:
Dan moet je computerprogramma wel een PID regelaar hebben,

Dat is nu juist waar het naartoe moet. Als ik het goed begrijp is dat programmaatje om een PID te tunen. Ik zoek juist de manier om daar te komen.

Gr.

Erik

Hallo Erik,

Waar zit em de kneep: weet je niet hoe de PID te programmeren? Of weet je niet welke stappen je moet ondernemen om em te tunen? In het eerste geval: kun je je code die je al hebt geschreven delen?