Jump to content
Usertreffen 2024: 29.5.-2.6. | Anmelden bitte bis 30.4. ×
Schiffsmodell.net

Lösungsansatz 360° Schottelsteuerung


Torsten

Recommended Posts

Für das Projekt könnte ich mich schon erwärmen, allerdings habe ich eigentlich kaum Zeit dafür und es fehlt mir auch eine passende Anwendung...

 

@U-Jäger D185:

Bist Du auch SPS-Programmierer?

Dann mal unter uns Kollegen, mit einem Risc-Prozessor kannst Du Dinge zaubern, die Du auf einer SPS so schnell nicht hinbekommst - z. B. Zeitmessungen und Impulszählungen im Mikrosekunden-Bereich. Allein der Programmzyklus ist um ein Vielfaches schneller. Probier´s mal mit den Dingern - gar nicht schwer, und Du wirst echt begeistert sein! :that:

 

Ich versuche mal einen groben Ansatz, um das Problem des Nulldurchgangs in den Griff zu kriegen, vielleicht könnt ihr die Sache ja weiterspinnen.

 

Die Definitionen:

"Encoderperiode" oder "Periode" ist die Anzahl der Schritte/Umdrehung, die der Positionsgeber am Schottel liefert. Wer mag, kann versuchsweise mit 360 rechnen.

 

"Neuposition" kommt vom Sender, bleiben wir der Einfacheit halber bei der Annahme, 1...2ms Puls entsprechen der Encoderperiode im Modell.

 

"Istposition" beschreibt die gerade anliegende Position des Schottels im Modell, auch wieder als Encoderwert.

 

Zunächst der einfache Fall, die Werte bleiben zwischen 0 und der Encoderperiode:

 

Distanz = Neuposition - Istposition

 

Das Ergebnis ist der Abstand, das Vorzeichen gibt die Richtung an. Aber es wird nicht immer der kürzeste Weg in die Neuposition geliefert, denn vielleicht ist der Weg durch den Nulldurchgang ja kürzer?

 

Das ist immer dann der Fall, wenn die Distanz absolut größer als die halbe Encoderperiode ist, und danach kann man den Prozessor ja einfach mal fragen:

 

> IF ABS(Neuposition - Istposition) > (Periode / 2) THEN

> Distanz = Periode - Istposition + Neuposition

> ELSE

> Distanz = Neuposition - Istposition

> END IF

 

Recht nett, dummerweise funktioniert das aber jetzt nur von z.B. 350° nach 10° und nicht umgekehrt. Somit muß eine Fallunterscheidung her, die man über die Istposition herleiten kann:

 

> IF ABS(Neuposition - Istposition) > (Periode / 2) THEN

> IF Istposition >= (Periode / 2) THEN

> Distanz = Periode - Istposition + Neuposition

> ELSE

> Distanz = Neuposition - Periode - Istposition

> END IF

> ELSE

> Distanz = Neuposition - Istposition

> END IF

 

(Dummerweise kann man nicht mit Tabs arbeiten, daher sind die zusammengehörigen IF-THEN`s farblich markiert)

 

Gleich mal ausprobiert, Beispiele für eine Encoderperiode von 360 (weil´s so schön anschaulich ist):

 

Istposition: 350 Neuposition: 15 -> Differenz: -335

 

Absolutdifferenz ist >180 und Istposition ist >Periode / 2, somit

 

Distanz = Periode - Istposition + Neuposition

Distanz = 360 - 350 + 15

Distanz = 25 -> 25 Schritte in positive Richtung fahren

 

 

Istposition: 25 Neuposition: 280 -> Differenz: 255

 

Absolutdifferenz ist >180 und Istposition ist <Periode / 2, somit

 

Distanz = Neuposition - Periode - Istposition

Distanz = 280 - 360 - 25

Distanz = -105 -> 105 Schritte in negative Richtung fahren

 

 

Istposition: 25 Neuposition: 170 -> Differenz: 145

 

Absolutdifferenz ist <180, somit

 

Distanz = Neuposition - Istposition

Distanz = 170 - 25

Distanz = 145 -> 145 Schritte in positive Richtung fahren

 

 

Istposition: 140° Neuposition: 85° -> Differenz:-55°

 

Absolutdifferenz ist <180, somit

 

Distanz = Neuposition - Istposition

Distanz = 85 - 140

Distanz = -55 -> 55 Schritte in negative Richtung fahren

 

Hm... scheint ja zu funktionieren! :mrgreen:

 

Ich habe im Übrigen bewusst auf Gradangaben verzichtet. Wwenn man mit Hall-Sensoren oder anderen Encodern arbeitet, kann man damit in der direkten Auswertung meist nichts anfangen. Recht üblich sind 1024 Schritte/Umdrehung, zumindest in der Industrie.

 

Grüße

 

Torsten

Edited by Torsten
Link to comment
  • Replies 179
  • Created
  • Last Reply

Top Posters In This Topic

  • hoppppla

    19

  • xoff

    15

  • Torsten

    13

  • BlueWater

    13

Top Posters In This Topic

Posted Images

Und da kommt mir grade beim Rauchen noch eine Idee für die Positionsgeber...

 

Bei der Lösung bräuchte man im Sender nur die kleine Mechanik (mit dem Poti direkt auf den Kanal-Eingang), im Modell könnte man die Auswertung wieder mit einem Prozessor machen, die haben ja auch Analogeingänge.

 

Mensch, möglicherweise reicht sogar schon eine blöde Servoelektronik... kann das echt so einfach sein?? :ohno:

 

Ich suche den Haken und finde ihn nicht... helft mir mal!

 

Grüße

 

Torsten

SIMPEL.JPG

Edited by Torsten
Link to comment

Ja, Axel... das Problem hat eigentlich ohnehin nicht wirklich existiert! :mrgreen:

 

Davon ab, gehe ich grade mit der Schiebepoti-Pleuel-Lösung schwanger... wenn das funzen sollte, lässt sich das Problem mit einfachsten Mitteln lösen.

 

Kein Prozessor, keine wilde Rechnerei... ich LIEBE einfache Lösungen! Mal sehen, was die anderen meinen.

 

Grüße

 

Torsten

Link to comment

:lovl::lovl::lovl:

 

Richtig, da war der Haken... Danke, Falko! :that:

 

Also können wir das wohl auch vergessen.

 

@AvS: Hattest Du das auch gemeint? Ich dachte, Deine Frage hätte sich auf die Hall-Sensoren bezogen.

 

Grüße

 

Torsten

Link to comment
Guest Marc-Hamburg

Guten Morgen zusammen,

 

Am Sender :

 

Inkremental-Drehgeber, (Ole hatte da einen rausgesucht) D/A Wandler und dann senden. Ich würde nicht mit 360 Schritten sondern nur mit 180 oder 120 arbeiten, weil ich nicht glaube das die 360 geschaft werden.

 

Am Empfänger :

 

Empfänger , A/D Wandler, Prozessor. Am Prozessor wird ein Inkremental-Drehgeber angeschlossen um die Position abzufragen. Fehlt nur noch der Motor zum drehen.

 

in den Prozessor kürzesten Weg mit einbauen...

 

Ich glaube das man um diese Inkremental-Drehgeber nicht rum kommt und die sind nicht gerade billig, jedenfalls habe ich keine billigen gefunden...

 

gruß Marc

Link to comment

Hallo Torsten,

 

Ich versuche mal einen groben Ansatz, um das Problem des Nulldurchgangs in den Griff zu kriegen, vielleicht könnt ihr die Sache ja weiterspinnen.

Torsten

Programmtechnisch hast das ja gelöst.

Ich mache es eigentlich genauso in meinem Kompaßmodul.

 

Ich kapiere immer noch nicht, wie ihr das mit der Hardware lösen wollt.

Wie wird das Signal generiert, wenn es über eine volle Umdrehung geht?

Bislang haben wir ja nur das PWM-Signal von 1-2ms ...bleiben wir mal dabei mit den Wertzuweisungen.

Noch eine Frage, was passiert wenn das Signal zum Empfänger mal eine Störung hat und irgendwas an Werten empfängt?

Wie synchronisiert sich dann der Schottel wieder?

 

Ich seh im Moment noch keine Lösung für die Hardware.

Oder sehe ich vor lauter Bäume den Wald nicht mehr?

 

Gruss

 

Gerd

Link to comment
Guest TeKieler

Wie wird das Signal generiert, wenn es über eine volle Umdrehung geht?

Bislang haben wir ja nur das PWM-Signal von 1-2ms ...bleiben wir mal dabei mit den Wertzuweisungen.

Ich habe schonmal einen Inkremental Drehgeber vorgeschlagen, diesen hier.

Jetzt schreien wieder viele, dass die unbezahlbar sind, aber man kann da ein Sample ordern, meist kostenlos. Außerdem kostet der, wenn man den da bestellt, etwas über 10.-$

Liegt auf jeden Fall im Rahmen denke ich.

 

Noch eine Frage, was passiert wenn das Signal zum Empfänger mal eine Störung hat und irgendwas an Werten empfängt?

Wie synchronisiert sich dann der Schottel wieder?

Deshalb der Inkrementaldrehgeber.

Bei dem vorgeschlagenen ist eine Nullstelleninitialisierung dabei.

Und deshalb möchte ich auch gerne die Absolut-Werte mit dem 12KMS übertragen! Bei einem möglichen Fehler gibts alle 240ms einen neuen Wert.

Link to comment
Ich habe schonmal einen Inkremental Drehgeber vorgeschlagen, diesen hier.

Jetzt schreien wieder viele, dass die unbezahlbar sind, aber man kann da ein Sample ordern, meist kostenlos. Außerdem kostet der, wenn man den da bestellt, etwas über 10.-$

Liegt auf jeden Fall im Rahmen denke ich.

 

Hab mal 3 Stück geordert ..mal kucken.

Wenn es mit dem Baustein wirklich realisiert wird, ist es ja relativ einfach.

Für meinen, viel späteren Einsatz, ist dann ideal, denn ich fahre schon ab Sender (40MHz) mit reinen digitalen Werten, wahrscheinlich alles seriell mit Manchestercodierung.

An meiner Drehbank und Bohrmaschine kann ich den Chip auch noch gut gebrauchen, ersetzt dann den derzeitigen mechanischen Geber:D

 

Hast schon einen geeigneten Magneten dafür gefunden?

 

Gruss

 

Gerd

Link to comment

...

Ich kapiere immer noch nicht, wie ihr das mit der Hardware lösen wollt.

Wie wird das Signal generiert, wenn es über eine volle Umdrehung geht?

Bislang haben wir ja nur das PWM-Signal von 1-2ms ...bleiben wir mal dabei mit den Wertzuweisungen.

...

 

Hallo Gerd,

 

ich stelle mir das so vor:

 

1. Die Encodersignale werden ja inkrementell erfasst, wir müssen also immer munter zählen, wenn sich ein Encoder - egal ob im Sender oder Modell - dreht. Da geht kein Weg dran vorbei, Absolutpositionen liefern ja leider nur Multiturn-Geber, aber das sprengt dann sicher jeden preislichen Rahmen.

 

2. Wir zählen im Sender und Modell die Impulse immer nur bis zur Encoder-Periode und fangen dann bei 0 wieder an. 0 = 1ms .... Periode = 2ms. Im Grunde übertragen wir so direkt und fortlaufend den aktuellen Encoder-Wert als Pulslänge. Der Prozessor im Modell wandelt diese Pulslänge wieder in den Encoder-Wert zurück.

Eine Syncronisation auf den Sender ist eigentlich genauso unnötig wie bei den normalen Knüppeln, wenn der Sender-Encoder "dran" ist, wird einfach der dann grade aktuelle Wert hergenommen. Ohnehin folgt 20ms später der nächste...

 

3. Wir wissen die aktuelle Position des Schottel-Encoders, haben die neue Position per Pulslänge erhalten, somit können wir Richtung und Distanz berechnen, wie weiter oben beschrieben.

 

4. Failsafe dürfte möglich sein, wenn ein neuer Wert eine zu große Abweichung zur Istposition oder zwei hintereinander empfangene Werte zu große Differenzen zeigen, wird die aktuelle Schottel-Position gehalten, bis wieder gültige Signale eintreffen. Es dürfen sich nur die Prozessoren bei ihren Encodern nicht verzählen, dann ist auch eine Neusynchronisation im laufenden Betrieb unproblematisch.

 

@Marc:

Von der Auflösung her packt der Prozessor auch deutlich größere Wertebereiche in einen 1...2ms-Puls. Die Grenze setzt möglicherweise der Sender, wenn er das Analog-Signal digitalisiert, eine 255er Auflösung traue ich ihm aber jederzeit zu. Da selbst Segelwinden über 5 Umdrehungen damit feinfühlig zu steuern sind, dürfte das auch für unseren Schottel reichen.

 

Viele Grüße

 

Torsten

Link to comment

Hallo Torsten,

 

Es dürfen sich nur die Prozessoren bei ihren Encodern nicht verzählen, dann ist auch eine Neusynchronisation im laufenden Betrieb unproblematisch.

 

Genau da liegen meine Befürchtungen, lasse mich aber gerne vom Gegenteil überzeugen.

Ein Versuch ist es allemal wert.

Meine Erfahrungen mit dem Kompaß zeigten mir, dass ich so gut wie nie zwei gleiche Messwerte erhalten habe obwohl alles statisch auf dem Tisch lag. Die Kommastelle vom Kompasswert war nie stabil.

 

Also machen wir dann Nägel mit Köpfen?

 

Gruss

 

Gerd

Link to comment

Hallo Gerd,

 

wenn sich die µC`s bei den Encodern verzählen, sind wir eh verratzt, weil die Positionen immer nur inkrementell weitergekoppelt werden können.

 

Eine Hilfestellung könnte die Nullmarkierung eines Encoders liefern, an der Stelle lässt sich ein fester Wert als Referenz schreiben, auch im laufenden Betrieb.

 

Oder wir nehmen uns mal die von TeKieler vorgeschlagenen Hall`s näher unter die Lupe, wenn ich die Beschreibung richtig verstanden habe, liefern diese über eine Umdrehung die Absolutposition mit 12 Bit Auflösung (4096 Schritte). Damit brauchen wir nicht zählen und sind immer auf der sicheren Seite.

 

Wann da jemand loslegt, überlasse ich euch... von meiner Seite aus werde ich ein solches Projekt sicher mit Interesse verfolgen, aber mangels Zeit und Anwendung nicht selbst realisieren.

 

Grüße

 

Torsten

Link to comment

Wann da jemand loslegt, überlasse ich euch... von meiner Seite aus werde ich ein solches Projekt sicher mit Interesse verfolgen, aber mangels Zeit und Anwendung nicht selbst realisieren.

 

Ich schliesse mich dem an:D

 

Zuerst werde ich mal mein U-Boot in den nächsten 2-3 Jahren fertig bauen.

Im Moment ist der Turm in GFK fertig und der Rumpf als Gips-Urmodell fast fertig geschliffen.

Wenn er den Umzug gut übersteht werde ich ihn wohl im Frühjahr abformen.

Das Urmodell ist nur ca. 3,8m (kein Schreibfehler) lang.

Einige mechanische und elektronische Komponenten sind auch schon in Arbeit.

 

Danach ist eine rein technische Arbeitsplattform geplant.

Erst dann brauche ich dafür 4 Schottelantriebe und natürlich das bereits erwähnte Navigationsmodul.

 

Also dann viel Erfolg beim Realisieren der Steuerung

 

Gerd

Link to comment
  • 1 month later...

Ahoi zusammen

 

Da ich mich auch mit der Thematik auseinandersetze hänge ich mich hier nochmals rein. Dabei möchte ich eine generelle Frage klären.

 

Jedes Jahr mache ich an einem Fahrgastkurs mit. Schiff mit Schottel, ABER konventionelles Steuer-Rad (wegen der Optik).

 

Steuer-Rad hat eine Marke, wenn oben = Voraus

1 volle Rad-Drehung (nach links oder rechts) dreht den Schottel um 180 °

 

Soweit so gut. Drehe ich 4 Umdrehungen so dreht der Schottel 4 x 180°

 

 

Nun war ich wieder in Hamburg und auf der Brücke eines HADAG-Bügeleisens. Hier wird Weg-Optimiert, will heissen, drehe ich vier mal in eine Richtung, und schneller als der Schottel drehen kann, macht es nur die Drehungen, bis er seine Position wieder finden kann.

 

Aber nicht alle HADAG-Schiffe haben die gleichen Funktionen (Schottel oder AquaMaster). Es gibt auch Systeme, welche sich den kürzesten Weg suchen, d.h. der Schottel dreht u.U. nach links, obwohl der Steuermann nur rechts vorgegeben hat. EDIT: Das wurde auch im Eintrag 23 von diesem System angesprochen.

 

Bei den Schleppern (z.B. Wilhelmine) kann man die Art des Ablaufes umschalten.

 

Die neuen Erkenntnisse haben mich nun ins Grübeln gebracht, da ich bis jetzt davon ausgegangen bin, dass wenn ich vier Mal drehe, der Schottel auch vier Mal die Runde macht, was dann eben dauert.

 

Wie geht Ihr hier vor, Weg- oder Zeit-Optimierung?

Edited by Guest
Link to comment
...

 

Bei den Schleppern (z.B. Wilhelmine) kann man die Art des Ablaufes umschalten.

...

 

Hallo,

 

ich habe momentan leider nicht die Zeit mich um die praktische Umsetzung zu kümmern, aber wenn man schon einen Mikroprozessor einbaut, könnte man über einen einen einfachen Schalter diese Funktion auch mit einbauen, oder? Das wäre dann glaube ich das Non-Plus der Steuerung ...

Das würde mich am meisten reizen..

 

Viele

grüße,

Fabian

Link to comment
Guest Marc-Hamburg

Hallo Hans,

 

um Deine Frage zu beantworten : dreht man am "drehrad" eine volle Umdrehung, so dreht auch der Antrieb eine volle Umdrehung, soll heißen 1:1.

 

Die neueren Modelle haben die Funktion, kürzesten Weg nicht mehr, dieser kann aber auf Wunsch mitbestellt werden.

Die Wilhelmine von P&A hat den kürzesten Weg. Meines Wissens hat die Wilhelmine keinen Umschalter. Sollte der Schipper mal schneller drehen als der Antrieb hinterher kommt, nimmt der Antrieb den kürzesten Weg. Der Antrieb braucht für eine 360 Grad Drehung, nun muß ich lügen.... ca 20 Sekunden.

 

schöne Grüße Marc

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.