Regelkreis innerhalb CAN-Bus möglich?

OP #4679927
Hallo,

Ich möchte einen CAN-Bus in einen Regelkreis integrieren und wollte 
fragen ob das überhaupt geht.

Kurze Erklärung:
Mittels einem Joystick soll die x,y und z-Koordinate vorgegeben werden 
können (Sollwert).

Dieser Sollwert geht dann in einem Computer (PID-Controller). Dieser 
PID-Controller empfängt die aktuelle x,y und z-Position und gibt dann 
entsprechende Verstärkungswerte für den x,y und z-Motortreiber auf einen 
CAN-Bus aus.

Die Motortreiber hängen auf einen gemeinsamen CAN-Bus zusammen mit dem 
PID-Controller. Die Motortreiber empfangen somit über den CAN-Bus die 
Verstärkungswerte.
Dabei muss aber jeder Motortreiber (x,y,z) darauf achten, dass er den 
für sich relevanten Verstärkungswert herausfiltert:
Motortreiber für die x Achse muss aus dem CAN-Signal den 
Verstärkungswert für die x-Achse bekommen und Motorcontreiber für die y 
Achse muss aus dem CAN-Signal den Verstärkungswert für die y-Achse 
bekommen usw...

Die aktuelle Winkelposition jeder Achse wird zudem dem Computer 
(PID-Controller) direkt als Istwert geliefert.

Zur besseren Veranschaulichung habe ich euch noch eine kleine 
Prinzipskizze angehängt. Bei Unverständnis bitte Nachfragen :-)

So, was meint ihr, kann man einen CAN-Bus in einem Regelkreis mit 
einbinden oder ist das zuviel Totzeit und der Regler wäre instabil?

Bzw. wird sowas vielleicht sogar in der Praxis gemacht? Wenn ja, wie 
sieht es mit funktionaler Sicherheit aus?

Viele Grüsse und besten Dank!
Angehängte Dateien:
Gast #4679947
Die Totzeit des Busses ist in der Groessenordnung vom 
Meldungslaenge/Baudrate und die sollte einiges Schneller wie die 
Zeitkonstante des zu regelnden Systems sein.

.. so nebenbei wird das ABS & das ESP in Auto mit diesem Bus geregelt.
Gast #4680013
Lothar schrieb:
> Das sind aber separate CAN-Busse mit nur 1 Master 1 Slave und damit
> deterministisch.

Ob das auf einem Bus mit mehr Teilnehmern genauso funktioniert, kommt 
doch wohl auf die Priorisierung der Nachrichten an.
Gast #4680027
CanIO schrieb:
> Der Grafik zufolge ist es auch nur ein Sender und 3 Empfänger?

Dem Text zufolge kommen die ist Werte von den Aktoren.

Wie dem auch sei.  Bei 1 Mbit/s bekommt man knapp 8 Nachrichten in 1 ms 
unter. Das reicht für die meisten Anwendungen einer Positionsregelung 
aus.
Gast #4680030
karl schrieb:
> Dem Text zufolge kommen die ist Werte von den Aktoren.
>
> Wie dem auch sei.  Bei 1 Mbit/s bekommt man knapp 8 Nachrichten in 1 ms
> unter. Das reicht für die meisten Anwendungen einer Positionsregelung
> aus.

Das denk ich auch.
Du musst dir halt über die Priorisierung der Nachrichten Gedanken 
machen. Also evtl. die Prioritäten in Abhängigkeiten von den Regelwerten 
dynamisch verändern.
Alternativ (dann kannst du das ganze recht deterministisch machen) 
festlegen, dass die Reihenfolge der Nachrichten immer N1,N2,N3 ist, egal 
ob N1,N2 geregelt werden müssen oder nicht. Dann hast du zwar nicht die 
schnellsten Nachrichten zu N3, zum testen ist es aber definitiv 
einfacher. Also quasi Zeitslots einführen.
(Firma: mechapro GmbH) Persönliche Seite #4680035
Hallo Lothar,

> ягт ден троль раус schrieb:
>> so nebenbei wird das ABS & das ESP in Auto mit diesem Bus geregelt
>
> Das sind aber separate CAN-Busse mit nur 1 Master 1 Slave und damit
> deterministisch.

Da hängen auch bei ESP inzwischen mehr als zwei Teilnehmer am Bus...

Im Bereich Motorsteuerung reicht die Bandbreite von CAN inzwischen z.T. 
nicht mehr aus, da setzt sich Flexray mehr und mehr durch. Aber für 
Regler mit mittleren Anforderungen sollte das schon gehen. Immerhin gibt 
es mit CANopen einen eigenen Standard für die Automatisierungstechnik, 
incl. Profilen für Antriebe.

Mit freundlichen Grüßen
Thorsten Ostermann

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.