Forum: Digitale Signalverarbeitung / DSP / Machine Learning MATLAB (digitaler Regler)


von Mike (Gast)


Angehängte Dateien:

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?

von Mike (Gast)


Lesenswert?

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

von Matthias (Gast)


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!!

von Mike (Gast)


Angehängte Dateien:

Lesenswert?

Ok ich habs mal in SIMULINK folgendermaßen eingegeben:
siehe Bild

von Mike (Gast)


Lesenswert?

Brauche ich da wirklich ein DISCRETE FILTER, oder reicht da das ZERO 
ORDER GLIED?

von Matthias (Gast)


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

von Matthias (Gast)


Angehängte Dateien:

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!!

von Mike (Gast)


Lesenswert?

Danke Matthias.

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

von Matthias (Gast)


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.

von Mike (Gast)


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?

von Mike (Gast)


Lesenswert?

Macht man diesen digitalen PID Regler genau so?

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

von Mike (Gast)


Angehängte Dateien:

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?

von Matthias (Gast)


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...

von Timo S. (Gast)


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!

von Frank (Gast)


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.

von ebookaktiv (Gast)


Lesenswert?

siehe eBook "Grundlagen digitale Regelung mit SCICOS/SCILAB" auf 
www.ebookaktiv.de

SCILAB und SCICOS sind Open-Source Matlab/Simulink

von criss (Gast)


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?

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
Noch kein Account? Hier anmelden.