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

Regelalgorithmus in Mikrocontroller-Projekt einbinden

 

Jimmy
Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.12.2010, 22:43     Titel: Regelalgorithmus in Mikrocontroller-Projekt einbinden
  Antworten mit Zitat      
Hallo zusammen,

ich bin noch recht neu im Bereich embedded Codegenerierung und versuche gerade einen Einstieg zu finden Smile

Was ich machen will:
Zunächst soll in Simulink ein Regelkreis simuliert werden. Wenn ein geeigneter Regler gefunden wurde, soll der Regler in C-Code übersetzt werden, und dieser Code in ein Mikrocontroller-Projekt (IDE des uC-Herstellers) eingebunden werden.

Ich stelle mir das so vor, dass ich den Regler in ein Subsystem packe, von diesem Subsystem mit dem Embedded Coder den C-Quellcode erstelle und die so generierten Dateien einem Mikrocontroller Projekt hinzufüge. Der Regelalgorithmus wird dann in der Interrupt-Service-Routine eines Timers aufgerufen, um die Regelung in Echtzeit laufen zu lassen.

Nun benötigt der Regelalgorithmus natürlich Zugriff auf die Prozessorperipherie (z.B. AD-Wandler, Quadrature Encoder, PWM, ...) und da frage ich mich wie man das am besten umsetzen könnte.

Hat sowas schonmal jemand gemacht, bzw. gibts zu diesem Thema gute Literatur?
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 20.12.2010, 21:39     Titel:
  Antworten mit Zitat      
Hallo Jimmy,

ich denke das dies über die Möglichkeiten dieses Forums hinausgeht. Trotzdem: "Ja, das haben schon viele vorher gemacht".

Je nach Rahmenbedingung ein paar Vorschläge:

Bei Testinstallation oder Erstanwendung in Hochschule oder Unternehmen -> MathWorks-Vertrieb kontaktieren und Beratung eines Applikationsingenieurs anfragen. Dies gibt genug Starthilfen.

Training oder Coaching bei MathWorks erfragen. Das stellt Effizienz und Erfolg sicher.

Bei konkreten Problemen mit konkreten Modellen und Codes -> MathWorks Technischer Support

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
ppirokke
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 19.11.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 21.12.2010, 06:06     Titel:
  Antworten mit Zitat      
Hi Jimmy,

ich denke nicht, dass Simulink den von dir genutzten µC bezüglich Kompilierung unterstützt. Du kannst dir ja mal ein erzeugtes C-File anschauen, da siehst du recht gut wie der Code zusammengeschustert wird, was recht speicheraufwendig geschieht.
Ich vermute, dass gerade wenn du nur einen Regler realisieren willst, die beste Idee ist, wenn du den Regler diskretisierst und dann selber mit C oder Assembler programmierst. Zu der Programmierung selber kann ich nur http://www.mikrocontroller.net/ empfehlen, da wird dir zügig geholfen wenn du Fragen hast. Wink


Gruß ppirokke
Private Nachricht senden Benutzer-Profile anzeigen
 
Jimmy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2010, 15:16     Titel:
  Antworten mit Zitat      
ppirokke hat Folgendes geschrieben:
Hi Jimmy,

ich denke nicht, dass Simulink den von dir genutzten µC bezüglich Kompilierung unterstützt.


Der Realtime Workshop Embedded Coder unterstützt eigentlich die gängisten µC. Kompiliert wird der Code ja vom Compiler des Prozessorherstellers.

Im Moment schaue ich mir gerade die s-Functions an. Damit lässt sich ja c-Quellcode in die Simulation einfügen und wenn ich das richtig verstehe auch hardwarespezifischer Code einfügen, der bei der Code-Generierung verwendet wird.
Private Nachricht senden Benutzer-Profile anzeigen
 
ppirokke
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 64
Anmeldedatum: 19.11.10
Wohnort: ---
Version: R2010a
     Beitrag Verfasst am: 23.12.2010, 16:08     Titel:
  Antworten mit Zitat      
Hi,

kommt ganz drauf an was du verwendest. AVR und PIC werden denke ich nicht unterstützt, sobald du leistungsfähigere µC nutzt könnte es klappen, aber ob es sich wirklich rentiert wage ich zu bezweifeln, ein einfacher Regelalgorithmus lässt sich prima von Hand programmieren. Sobald man aber DGLs einbindet um beispielsweise Smith Predictor zu realisieren oder eine GUI zu nutzen, ist es sicherlich intressanter das ganze von realtime umsetzen zu lassen.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Jimmy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2010, 09:22     Titel:
  Antworten mit Zitat      
PICs und dsPICs werden unterstützt. Zumindest was die Datentypen angeht.

Ansonsten hast du natürlich recht, allerdings gehen die Regelanwendungen schon über das bloße Einstellen von ein paar PI-Reglern hinaus (Zustandsrückführung, Zustandsbeobachtung, usw).
Private Nachricht senden Benutzer-Profile anzeigen
 
vega1013
Forum-Century

Forum-Century


Beiträge: 162
Anmeldedatum: 26.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.12.2010, 22:23     Titel:
  Antworten mit Zitat      
Hy Jimmy,

bin in diesem Zusammenhang mal auf die folgende Seite gestoßen:

http://www.kerhuel.eu/wiki/Simulink_-_Embedded_Target_for_PIC

Die solltest du dir mal anschauen. Das müsste doch das sein was du möchest?!?

Gruß Vega
Private Nachricht senden Benutzer-Profile anzeigen
 
Jimmy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 17
Anmeldedatum: 18.12.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.12.2010, 00:42     Titel:
  Antworten mit Zitat      
Jepp, auf das Projekt bin ich auch schon gestoßen. Ich werde mir das demnächst mal näher anschauen, allerdings bin ich mir noch nicht ganz sicher wie man bei diesem Blockset für die Echtzeitfähigkeit sorgen kann. Dort wird ja direkt aus Simulink heraus das hex-file generiert, das dann auf den Controller geladen wird.

Der Ansatz eine vom RTW generierte C-Funktion in die ISR eines Timers zu packen würde mir nach wie vor am besten gefallen.
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.