WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Laufzeitoptimierung: Timermodel eines Mikrocontrollers

 

Atrun92
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2016, 09:09     Titel: Laufzeitoptimierung: Timermodel eines Mikrocontrollers
  Antworten mit Zitat      
Guten Morgen Zusammen,

Ich benötige in Simulink ein Modell eines einfachen Timers zur Erzeugung eines PWM-Signals.
Dieser erhält zu Beginn einer PWM-Periode zwei Vergleichswerte a und b(Wertebereich (uint32) 0-10000).
Die Vergleichswerte werden mit der Zeitbasis verglichen. Wenn der erste Wert erreicht wird soll das Signal gesetzt, beim zweiten Wert resetet werden.

In Simulink habe ich dies über zwei Vergleichsoperatoren implementiert, welche das Signal a bzw. b mit dem Block "Repeating Sequence", welcher pro PWM-Periode(100µs) von 0 bis zum PWM-Endwert(10000) läuft, vergleichen.
Diese Signal gehen dann auf den setzt bzw. Rücksetzteingang eines S-R FlipFlops.
(Bild im Anhang)

Dies funktioniert auch soweit, jedoch musste ich hierzu eine Sample time von 1e-8(Mikrocontrollertakt) für die Vergleichsoperatoren verwenden, damit diese jeden "Treffer" erkennen.

Leider wirkt sich diese hohe Abtastrate auf die Laufzeit des Modells aus. Ist es möglich dies mit einer variablen Schrittgröße zu implementieren, sodass nur in dem Bereich in dem der Vergleichswert liegt mit 1e-8, abgetastet wird?

Über Hilfe und Anregungen wäre ich dankbar

Grüße

Timer-Modell.PNG
 Beschreibung:

Download
 Dateiname:  Timer-Modell.PNG
 Dateigröße:  20.17 KB
 Heruntergeladen:  349 mal
Private Nachricht senden Benutzer-Profile anzeigen


SimulantX

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2016, 13:38     Titel:
  Antworten mit Zitat      
Mir würde jetzt einfallen, dass Du die Zeit nicht als diskrete Indizes modellierst, sondern als kontinuierlich, die PWM durch herkömmliche Diskontinuitäten darstellst und dann einen variable-step-solver verwendest. Dann müsste er pro Periode nur zweimal in der Nähe der Schaltpunkte die step-größe reduzieren und noch einmal am Anfang für jede Periode um die Sollwerte zu bestimmen. Aber das ist nur so geraten.
 
Atrun92
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 12.01.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.01.2016, 14:22     Titel:
  Antworten mit Zitat      
Vielen Dank

Habe es mittlerweile, wie von dir Vorgeschlagen mit dem variable-step solver + dem Block "Intervall Test Dynamic" als Ersatz für die Vergleichsoperatoren hinbekommen.

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.