Forum: Mikrocontroller und Digitale Elektronik Echtzeitregelung Matlab Simulink - Arduino ?


von Patrick (Gast)


Lesenswert?

Hallo Leute,

ich würde mich gerne in das Thema Regelung einer Synchronmaschine 
einarbeiten. Die Theorie ist kein Problem, ein Modell in Simulink habe 
ich bereits erstellt.

Was mich jetzt noch interessiert:

Kann ich mein Arduino Uno Board für die Echtzeitregelung verwenden ?

Ganz wichtig:

Welches Voraussetzung müssen von solch einem Board erfüllt werden, damit 
eine Echtzeitregelung möglich ist?

Danke für die Hilfe.

von Patrick (Gast)


Lesenswert?

Hat keiner Erfahrungen mit ?

von Mitleser (Gast)


Lesenswert?

Patrick schrieb:
> Arduino

Wenn du mit Arduino auch dessen "Betriebssystem" meinst (nicht
die IDE) dann hast du keine guten Bedingungen für Echtzeit.

Wenn du allerdings alles selbst schreibst und keine irgendwie
dazwischenfunkende Interrupts programmierst dann ist eine
Echtzeitanforderung wohl erfüllt wenn dir der verwendete
Prozessor und die Sensoren/Aktuatoren schnell genug ist/sind.
Diese Anforderungen gilt es aber noch zu erarbeiten.

von Jan K. (jan_k)


Lesenswert?

Willst du mit Simulink den Kram regeln oder nur mit dem Arduino?

Falls mit Simulink brauchst du eine Schnittstelle, die echtzeitfähig ist 
und eine der Echtzeit Simulink Toolboxen, also XPC Target und windows 
realtime target. Sind beide nicht ganz günstig.

von Patrick (Gast)


Lesenswert?

Jan K. schrieb:
> Falls mit Simulink brauchst du eine Schnittstelle, die echtzeitfähig ist
> und eine der Echtzeit Simulink Toolboxen, also XPC Target und windows
> realtime target

Also ich habe vor, den gesamten Regler zuerst zu simulieren und 
anschließend auf den µC zu spielen, jedoch sollte das ganze unter 
Echtzeit sein.

Ist es mit Arduino möglich ?

also Simulink Realtime Box habe ich drauf.

von noti (Gast)


Lesenswert?

Wir haben mit folgendem System sehr gute Erfahrungen gemacht: Matlab / 
Simulink mit Blocksets von ST oder Wajung und dem STM32F407 Eval Kit 
(ARM Cortex M4, kostet ~15€).
Regler mit > 10kHz mit doch recht aufwendigem Aufbau und "hässlichen" 
Datentypen sind kein Problem, Zicken machen nur "Unsauberkeiten" der 
verwendeten Blocksets.

Frühere Versuche mit Arduino sind kläglich gescheitert, da dessen 
Betriebssystem dem eigentlichen Regelungs-Task zu wenig Ressourcen ließ.

von Patrick (Gast)


Lesenswert?

noti schrieb:
> Wir haben mit folgendem System sehr gute Erfahrungen gemacht: Matlab /
> Simulink mit Blocksets von ST oder Wajung und dem STM32F407 Eval Kit
> (ARM Cortex M4, kostet ~15€).
> Regler mit > 10kHz mit doch recht aufwendigem Aufbau und "hässlichen"
> Datentypen sind kein Problem, Zicken machen nur "Unsauberkeiten" der
> verwendeten Blocksets.
>
> Frühere Versuche mit Arduino sind kläglich gescheitert, da dessen
> Betriebssystem dem eigentlichen Regelungs-Task zu wenig Ressourcen ließ.

Super, das wäre für mich auch eine Alternative.

Hast du vll. sowas als Mail bzw. hast du einen Link, wie man mit dem STM 
eine Echtzeitregelung hinbekommt ? Ganz einfaches Tutorial oder 
ähnliches.

So ne Art Step-to-Step Erklärung, da die im Internet von STM naja 
sind...

Der Name Wajung habe ich auch schon gehört, wozu brauch ich das für 
Simulink?

Danke für die Antrwort.

von noti (Gast)


Lesenswert?

Zur aktuellen Umsetzung mit eigenen Blöcken + Hardware darf ich nichts 
sagen, wir haben aber unsere ersten Schritte und ein "proof of concept" 
mit dem Standard-Board STM32F407 und den erwähnten Blocksets gemacht.

Hilfe und Tutorials findest du z.B. unter http://waijung.aimagin.com/
Sie bieten auch komplette Kits an: 
https://www.aimagin.com/products/lab-kit.html

Unsere Erfahrung war sehr gut, die Module im Kit können eine große Hilfe 
bei Einstieg / debuggen sein. Dennoch hat das Blockset ein paar 
Eigenheiten, die kritisch werden wenn die Performance hoch sein soll. 
Z.B. kann die SD-Karte oder eine UART den Controller kurz blockieren...

von Patrick (Gast)


Lesenswert?

Danke für die Antwort zunächst !

Kurze Frage aber:

Bei Arduino musste ich das Support Package für Simulink und Matlab 
downloaden, damit ich die Schnittstelle schaffe zwischen Arduino und 
Matlab.

Wie geht das mit dem STM32f4?

von noti (Gast)


Lesenswert?

Melde dich an, dann kann ich dir den Kontakt unseres Regelungstechnikers 
zukommen lassen. Ich denke dass die Blocksets nur auf Matlab / Simulink 
laufen, wir haben aber auch den Embedded Coder u.a. Module im Einsatz.

Lade dir am besten beide Blocksets:
- Waijung: http://waijung.aimagin.com/
  Gute Tutorials, freie Testversion ladbar, zumindest kommerziell 
kostenpflichtig (wenn auch recht günstig)

- ST: 
http://www.st.com/web/catalog/tools/FM147/CL1794/SC961/SS1533/PF258513?sc=stm32-mat-target
frei verfügbar, nach unserem letzten Stand weniger Peripherie 
eingebunden als Waijung

von noti (Gast)


Lesenswert?

Kleine Korrektur:
Damit die Blocksets laufen sind alle 3 Coder nötig: Simulink Coder, 
Matlab Coder und Embedded Coder.

von Patrick (Gast)


Lesenswert?

noti schrieb:
> Kleine Korrektur:
> Damit die Blocksets laufen sind alle 3 Coder nötig: Simulink Coder,
> Matlab Coder und Embedded Coder.

Hallo noti, ich habe dazu noch eine Frage, bist du noch online, wenn ich 
mich anmelde ? WIe kann ich dich dann kontaktieren?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.