mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Regelkreis innerhalb CAN-Bus möglich?


Autor: Max Max (max_m1)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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!

: Bearbeitet durch User
Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt natürlich drauf an wie die Zeitkonstanten des Systems sind.
Wenn du deine Motoren mit 1 umin drehen lässt, sollte es wohl gehen.

Autor: Max Max (max_m1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Horst schrieb:
> Kommt natürlich drauf an wie die Zeitkonstanten des Systems sind.
> Wenn du deine Motoren mit 1 umin drehen lässt, sollte es wohl gehen.

mhm, kann man die Zeitkonstante des CAN-Bus irgendwie im vornherein 
abschätzen?

Autor: ягт ден троль раус (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ягт ден троль раус 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.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Möglich? Ganz klar ja.
Evtl gibt es Einschränkungen bzgl. Performance.

Autor: CanIO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Grafik zufolge ist es auch nur ein Sender und 3 Empfänger?

Sollte also ohne weiteres gehen.

Autor: karl (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
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.

Autor: ui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thorsten Ostermann (Firma: mechapro GmbH) (ostermann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

: Bearbeitet durch User
Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem dürfte in erster Linie nicht der Bus sein sondern der 
"Computer" Wenn das was PC mäßiges ist bei dem der CAN womöglich noch 
über USB angebunden ist würde ich mir eher darüber Sorgen machen.

Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.