mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP MATLAB (digitaler Regler)


Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich möchte mit MATLAB und SIMULINK einen DIGITALEN- Regler
realisieren.

Prozess: K1/(S*T1+1)

Stellglied: K2*(1/s)

Wie kann man dies mit MATLAB und SIMULINK realisieren?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In diesem Beispiel will ich den digitalen PID Reglern aus einzelnen 
Blöcken aufbauen. Ohne Verwendung von PID Block in SImulink.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das musst du in simulink malen und dann kannst du simulieren.
aber das was du als prozess.. angibst ist nicht digital, sondern ein 
kontinuierliches verhalten.
in dein bild gehört aber hinter die summationsstelle noch der (digitale) 
regler. der fehlt bisher, wenn die beiden blöcke stellglied und strecke 
sein sollen.
den regler muss du in der kontinuierlichen welt ermittteln und dann in 
den diskreten bereich transformieren, dann kannst ihn eingeben und 
simulieren.

achja, die rückführung der ausgangsgröße wird abgezogen!!

Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich habs mal in SIMULINK folgendermaßen eingegeben:
siehe Bild

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauche ich da wirklich ein DISCRETE FILTER, oder reicht da das ZERO 
ORDER GLIED?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so wie ich dich verstanden habe, willst du deine strecke (beide oben 
gegebenene glieder in reihe) als analoge regelstrecke mit nem digitalen 
regler simulieren? werde mal was in matlab vorbereiten damit ich das 
zeigen kann

Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So würde ich das simulieren.
Die beiden hinteren Blöcke müssen mit exakten Werten deiner 
Strecke/Stellglied hinterlegt werden.
Vorne da ist der PID-regler diskret aufgebaut und muss noch mit werten 
hinterlegt werden(deshalb steht jetzt irgendwas drin)
diese werte musst du mit der z-transformation deines exakten 
anaolgen(PID)Reglers ermitteln!!

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Matthias.

Warum ist bei dir der I-Anteil sowie der D-Anteil gleich?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
weil ich keine werde für deinen regler habe:
also werte für dort auszurechnen, brauch man die 
intragtionszeitkonstante, die vorhaltezeitkosntante sowie die abtastzeit 
des reglers.
die werte in der strecke sind ja auch gleich, weil ich keine konkreten 
angaben habe. du hast sie ja nur mit K1,K2,T1 bezeichnet.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Werte würdest du mal so benutzen um mal einen digitalen PID 
Regler zum laufen zu bringen, so dass er auch stabil ist?

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht man diesen digitalen PID Regler genau so?

Welche werte könnte man für die PID Glieder verwenden?

Autor: Mike (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hab mal noch einwenig experimentiert.
So könnte man doch auch einen digitalen PID Regler aufbauen oder?
Durch das ZERO ORDER GLIED und das DISCRETE FILTER Glied macht man doch 
das digitale Signal, oder?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz.
Um aus einem anaolgen Signal ein digitales zu machen, braucht man einen 
Abtaster gefolgt von einem Halteglied. Das zusammen nennt man "Sample 
and Hold"-Stufe. Dadurch wird das analoge Signal zu exakten Zeitpunkten 
(Abtastfrequenz fa) "eingefangen". Das brauchst du bei Matlab nicht 
extra in Form von Blöcken berücksichtigen. Du kannst einfach, wie in 
meinem Bild, eine "diskrete transfer function" vor eine kontinuierliche 
Übertragungsfunktion (transfer function) setzen. In den anzugebenden 
Koeffizienten bei der discrete transfer function ist die Abtastfrequenz 
SOWIE die Form des Übertragungsverhaltens (P, PI, PID...) enthalten.

Zu deiner Frage bzgl. der Werte für eine stabile Arbeitsweise:
Das kommt auf die Übertragungsfunktion der Strecke und den Anforderungen 
an die Regelung an. Da du eine IT1-Strecke hast, reicht es aus, einen 
P-Regler zu verwenden, um KEINE bleibende Regelabweichung zu bekommen. 
Würdest du hier  einen PI-Regler verwenden, so entsteht eine instabile! 
Struktur..

Und der D-Anteil eines Reglers wird nur bei ganz bestimmten 
Streckentypen/Anforderungen eingesetzt, da dieser Differenzierende 
Anteil hochfrequente Störungen erzeugen kann...

Autor: Timo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe ein ähnliches Problem!

Meine Strecke hat leider mit einer Totzeit von 30 Samples.

Hab schon mit der Sprungantwort die Parameter für nen PID ermittelt.

Wie kann ich es in Simulink hinbekommen, das er den PID nur alle 30 
Samples einsetzt? ich kann ja immer nur Sample 1 & 30 und 30 und 60 
vergleichen am PID!

also den Sollwert und das was 30 Samples später rauskommt!

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Err, wie wärs mit einem guten Buch?
Generell kann man digitale regler auf zwei Arten auslegen:

1. Quasikontinuierlich: Auslegung eines kont. Reglers und anschließende 
Diskretisierung. Vorsicht: Zusätzliche Totzeit von Ts/2

2. Diskret: diskretisierung der Strecke und anschließende Auslegung des 
reglers im z-Bereich, z.b. durch das Kompensationsverfahren.

Das Totzeitproblem wirst Du so nicht in den Griff bekommen. Einfach 
jedes sample verwursten und den Regler entsprechend parametrieren. Was 
du da vorzuhaben scheinst, ist doch etwas, ääähmm, unkonventionell. Du 
würdest praktisch mit der 30-Fachen Abtastzeit rechnen.

Autor: ebookaktiv (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
siehe eBook "Grundlagen digitale Regelung mit SCICOS/SCILAB" auf 
www.ebookaktiv.de

SCILAB und SCICOS sind Open-Source Matlab/Simulink

Autor: criss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hello, ich hätte gern eine Frage. Und zwar das Problem mit der Totzeit 
und Sample habe ich und möchte wissen ob jemand vielleicht mir ein Tip 
geben kann?

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.