Zum Inhalt springen

Algorithmus für Positionssteuerung


nelson1234

Empfohlene Beiträge

Hallo Leute,

ich hoffe ihr könnt mir helfen. Mir als Masch.-Bauer fehlt anscheinend das Informatik-Verständnis für solche sachen.

Folgendes Problem:

Ich habe einen Kreis mit 13 gleich geteilten Positionen. Die Nummerierung der Positionen ist leider nicht aufsteigend, sondern wie folgt. 1,8,2,9,3,10,4,11,5,12,6,13,7. Dann wieder vorne beginnend. Nun suche ich einen Algorithmus, der mir abhängig von der aktuellen Position und der anzufahrenden Position die Schritte (1 Schritt entspricht von einer zur unmittelbar nächsten Position) berechnet. Das in beide Richtungen um den kürzeren Weg zu bestimmen. Also um von bspw Pos 1 auf 2 oder von 2 auf 3 ist es ka klar. Immer 2 Schritte im UZS drehen. Will ich aber von bspw Pos 13 auf Pos 2 drehen, soll der Algorithmus mir die Schrittdifferenz bestimmen und den Kreis auf dem kürzeren Wege an die gewünschte Position fahren. Die Kommunikation für die Steuerung ist kein Problem, sondern die Berechnung der Schritte. Mit ner Zahlenfolge klappts halt nicht, da mathematisch ja nach der 7 die 14 kommen würde.

Ich hoffe Ihr habt eine Lösung für mich.

Gruss nelson1234

Bearbeitet von nelson1234
Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist die Anordnung der Proben immer gleich oder ist sie willkürlich? Eine Möglichkeit, die auch bei willkürlichen Anordnungen funktioniert: Die Anordnung in einem Ringpuffer ablegen und in beide Richtungen suchen. Dabei die Schritte zählen.

Wenn zur Laufzeit nicht gesucht werden soll und die Anzahl der Proben nicht zu groß ist, könnte man auch alle Kombinationsmöglichkeiten vorab in einer Tabelle ablegen und zur Laufzeit darin nachsehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das ganze soll in Basic geschrieben werden.

Also wenn ich das richtig verstanden habe, lege ich ein Array an:

ARRAY position(13) OF BYTE (12 oder 13?? beginnt mit 0 oder mit 1??)

Dann mit einer Laufvariablen und geeigneter Formel die Positionen in das Array schreiben.

Hoffe das stimmt so. Aber wie zähl ich dann in beide Richtungen? Mit i=1 to 13 und i=13 to 1 ????

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn die Anordnung immer die oben angegebene ist, dann kann man es auch ohne Suchen bestimmen.

Die Positionen werden von 0 bis 12 Durchnummeriert. Probe 1 liegt dann auf Position 0, Probe 8 auf 1, usw.

Die Prosition jeder Probe ergibt sich bei der oberen Anordnung aus pos(n)=(2*n - 2) mod 13. Der Abstand (entspricht der Schrittzahl) beträgt pos(Ziel)-pos(Start). Ist der Betrag vom Abstand größer als 7, dann ist es günstiger in die andere Richtung zu laufen. Also entsprechend der bisherigen Richtung 14 addieren (bei bisher negativer Schrittzahl) oder subtrahieren (bei bisher positiver Schrittzahl), alternativ mod 6 rechnen.

Eigentlich doch gar nicht so schwer, darauf zu kommen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke ich habs verstanden. ;)

Du hast meinen Freitag abend gerettet, sollte es klappen. Wenn nicht, liegts glaub ich nicht an dir ;)

hast ja recht, eigentlch nicht so schwer, aber wenn man sich den ganzen tag mit Konstruktionen beschäftigt, dann bleibt sowas halt auf der Strecke. Also erstmal vielen Dank. Falls sich noch Fragen auftun sollten, scheue ich moch nicht zu fragen ;)

Gruss nelson1234

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...