Hallo, ich habe in Simulink ein Modell aufgebaut, was ich nun auf mein Arduino DUE mit einer Taktfrequenz von 84MHz implementieren will. Wenn ich in Simulink Fixed-Step auf Auto setze, so sind die Ergebnisse noch recht ungenau. Daher muss ich Fixed-Step sehr klein wählen. Meine Frage daher: Welche min. Fix Step Size ist erlaubt bzw. wie ermittelt man die oder erhält man die ? Wenn die Frage euch Profis einfach erscheint, es tut mir leid, bin noch sehr neu in dieser Materie...
Hallo Dimitrie, Der Fixed Step stellt deine Berechnungsschrittweite dar. An was für einem Modell arbeitest du, bzw. wie umfangreich? Die Frage wird deshalb wichtig, da dein Mikrocontroller in jedem Berechnungsschritt das komplette Modell berechnen muss. Du brauchst also möglicherweise viel mehr Prozessortakte um einen Schritt des Modells zu berechnen. D.h. die eingestellte Schrittweite im Simulink müsstest du dann über eine Ausführungsschleife mit der selben Schrittweite auch im Mikrocontroller ausführen. Die gewünschte Genauigkeit deiner Berechnung legt, wenn du zeitabhängige Größen betrachten willst, auch die Schrittweite fest. Zusätzlich musst du natürlich auch die, für die Berechnung nötige Zeit, einplanen (der µC ist evtl. nicht so schnell wie dein PC). Hoffe das hilft dir, ist schon eine Weile her bei mir.
Bodo schrieb: > Der Fixed Step stellt deine Berechnungsschrittweite dar. > An was für einem Modell arbeitest du, bzw. wie umfangrei Hallo Bodo, danke für deine Antwort. mein Modell ist aus einem sehr kleinen Stateflow-Chart mit vier Zuständen, wobei dort nur Variablen gesetzt werden, entweder ein oder aus. Weiterhin sind vier PID-Regler implementiert im Zustandsraum. Bodo schrieb: > Der Fixed Step stellt deine Berechnungsschrittweite dar. D.h., dass wenn ich 1e-6 als Schrittweite eingebe, jede Mikrosekunde das Modell neu berechnet wird, oder ? Woher weiß ich jedoch, ob das der µC schafft, oder nicht ? Bodo schrieb: > Du brauchst also > möglicherweise viel mehr Prozessortakte um einen Schritt des Modells zu > berechnen. Kann man das irgendwie abschätzen wie viel Prozessortakte man benötigt?
Dimitrie schrieb: > D.h., dass wenn ich 1e-6 als Schrittweite eingebe, jede Mikrosekunde das > Modell neu berechnet wird, oder ? Woher weiß ich jedoch, ob das der µC > schafft, oder nicht ? Am PC nicht, da berechnet er so schnell wie er kann, aber er simuliert sozusagen die Schrittweite. Also wenn du 10 als Schrittweite angibst dauert es keine 10s für einen Schritt. Die Schrittweite ist ja ohnehin dimensionslos, d.h. für Simulink macht es erstmal keinen Unterschied welcher Wert da drin steht. Der ist nur wichtig, wenn du ihn in der Berechnung verwendest bspw. in einem Integral des PID. Wenn du das tust, müsstest du ihn dann (damit das Integral richtig integriert -- richtige Integrationszeitkonstante) im µC aller 1µs ausführen. Sicherlich gibt es Methode mit denen man die Berechnungszeit im µC abschätzen kann, leider bin ich da überfragt. Aber du kannst es einfach testen. Ich denke mit einer µs wirst du evtl. schon Schwierigkeiten bekommen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.