www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Machbar?


Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Morgen,

ich habe mit einem µC zwei digitale Regler programmiert.

1. Positionsregelung
2. Nachfahren einer Ventilkennlinie

Mein µC besitzt folgenden Speicheraufbau:

Program Flash 128KB
Data Flash 8KB
Program RAM 4KB
Data RAM 8KB
Program Boot Flash 8KB

Für die Ventilkennline speichere ich mehrere Sollwerte ab, die ich dann 
zyklisch durchlaufe. Das sind nur 20 float Werte. Das ist alles kein 
Problem.

Aber für die Positionsreglung muss ich mehrere Werte einlesen.
Bei einer Abtastzeit von 1ms sind das 1000 float Werte pro Sekunde.
Wenn ich nun also eine Fahrkurve von 10 Sekunden fahren will, sind das 
10000 Werte. Bei einem Data Flash von 8KB -> 65536 Bit, dass ganze 
geteilt durch ein float mit je 32 bit -> macht nur 2048 Werte. Bitte 
berichtigt mich wenn ich mich verrechnet habe. Ich kann die Fahrkurven 
auch nicht mit Funktionen oder Taylorreihen oder Fourierreihen 
nachbilden da diese nicht periodisch und völlig willkürlich sind.

Also muss ein größerer Speicher her. Das ist für mich neu, was kann man 
da machen? Im Datenblatt steht das ich 32MB extern adressieren kann. Ich 
habe auch von SD Kartenlesern gehört. Bitte schreibt mir eure Ideen.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mein µC besitzt

Schön für dich. Und wir sollen anhand dieser Daten nun erraten, was das 
für ein Typ ist?

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Entschuldigung das hab ich vergessen. Freescale 56F8347.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat dein uC überhaupt eine FPU? Wenn nein dann unbedingt auf integer 
skalieren! Und glaubst du wirklich, dass es was bringt mit jedem Sample 
auch nen neuen Sollwert vorzugeben? So schnell kann die Position eh 
nicht angefahren werden...

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Google wirft mir dazu das Kürzel DSP aus. Und dazu gibt es eine eigene 
Ecke im Forum.

Autor: Pflorz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll float ?  Das sollte man am besten vermeiden. Zum Einen weil der 
dynamische Bereich eh nicht gebraucht wird, zum Anderen haben integer 
derselben Breite eine höhere Auflösung.

P.

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

das stimmt die Position kann nicht so schnell angefahren werden, aber 
sie kann schneller reagieren.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Trotzdem glaube ich nicht, dass 1000 neue Sollwertvorgaben / Sekunde 
Sinn machen. Solche Sachen am besten vor der Implementierung in Simulink 
simulieren. Ich weiß ja nicht, um was für ein System es sich handelt, 
aber vielleicht tuts ja auch ne kleinere Abtastrate.
Hast du denn schon ein Modell der Strecke? Ist der Regler schon 
implementiert und kalibriert?

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

also die Übertragungsfunktion für die Strecke ist wie folgt:

Drehzahl

G1(s)= 350/(0.000234*s^2+0.0253*s+1)

Position

G2(s)=G1(s)*5/60*1/s

Du hast ja recht ich könnte auch auf 10ms hochgehen, aber trotzdem hab 
ich dann immer noch ein Speicherproblem.

Autor: Christopher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Regler läuft schon. Hab halt nur noch das Sollwert Problem.

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.