kramann.info
© Guido Kramann

Login: Passwort:










Regelungssysteme
1 day_by_day
2 Heizregelkreis
3 Verzoegerungsglieder
4 Laplace
..4.1 Eigenwerte
..4.2 PT1
..4.3 PRegler
..4.4 Scilab
5 Regleroptimierung
..5.1 Guetefunktion
..5.2 Heuristiken
..5.3 Scilab
..5.4 Gradientenverfahren
..5.5 ModifizierteG
..5.6 Gleichstrommotor
..5.7 Stoerverhalten
6 Javaanwendung
..6.1 PIDgeregelterAntrieb
..6.2 RungeKuttaIntegrator
..6.3 Gradientenverfahren
7 Einstellregeln
..7.1 Totzeit
..7.2 Methode1
..7.3 Methode2
..7.4 Scilab
..7.5 Daempfungsgrad
..7.6 Uebung
8 Polvorgabe
9 Beobachter
10 AutonomerHackenprosche
..10.1 Herleitung
..10.2 Scilab
..10.3 Modellerweiterung
..10.4 Scilab
..10.5 Modellgueltigkeit
..10.6 java
11 Stabilitaet
..11.1 Beispiele
..11.2 Nyqusitkriterium
..11.3 Windup
..11.4 Bode
12 Adaptiv
..12.1 Definition
..12.2 Einachser
..12.3 Auswertung
..12.4 Identifikation
..12.5 Regleroptimierung
..12.6 Zustandsregler
..12.7 Beobachter
13 Analyse
..13.1 Linear
..13.2 Nichtlinear
14 Kalmanfilter
15 Ue_04_2014
..15.1 Geschwindigkeit
..15.2 Richtung
..15.3 Gesamtsystem
..15.4 RiccatiUSW
..15.5 TdOT
16 Inverses_Pendel
17 Einachser
..17.1 Mechanik
..17.2 Uebung8
18 Fuzzy
..18.1 Fuzzylogik
..18.2 FuzzyRegler
..18.3 Uebung9
..18.5 Softwareentwicklung
....18.5.1 AgileSoftwareentwicklung
....18.5.2 FuzzyRegler
....18.5.3 Uebung
..18.6 Umsetzung
....18.6.1 FuzzyRegler
....18.6.2 Simulation
....18.6.3 Optimierung
....18.6.4 Uebung
..18.7 Haengependel
....18.7.1 Haengependel
....18.7.2 Simulation
....18.7.3 FuzzyRegler
....18.7.4 Optimierer
....18.7.5 Genetisch
..18.8 Information
..18.9 Energie
21 Beispiel1
98 day_by_day_WS2021_SoSe21
99 day_by_day_SoSe2018
kramann.info
© Guido Kramann

Login: Passwort:




Modellierung der Regelstrecke des Heizreglers als Verzögerungsglied zweiter Ordnung

Übertragungsglieder

  • In obigem Schaubild tauchen Blöcke mit Ein- und Ausgängen auf.
  • Diese Komponenten eines Regelkreises werden Übertragungsglieder genannt.
  • Sie wandeln das Eingangssignal in spezifischer Weise um und liefern in eindeutiger Kausalität dazu ein Ausgangssignal.
  • Das Hintereinanderschalten zweier solcher Übertragungsglieder würde dem Ersetzen der Eingangsvariablen des Nachfolgegliedes durch die Gleichung des Vorgängers entsprechen.
  • Wir werden dies noch anhand des Beispiels der Raumtemperaturregelung sehen.
  • Es ist leicht einsehbar, dass das Hintereinandereschalten mehrerer solcher Übertragungsglieder schnell zu sehr komplexen Gleichungen führt.
  • Das Hintereinanderschalten zweier Übertragungsglieder kann aber auf eine einfache Multiplikation der Übertragungsgleichungen miteinander reduziert werden, wenn man die Gleichungen in den so genannten Frequenzbereich transformiert, dort die Verknüpfungen vornimmt und sie anschließend wieder zurücktransformiert.
  • Hierbei wird die Laplacetransformation benutzt.
  • In Form der Fouriertransformation und der DFT haben Sie bereits kennengelernt, wie eine solche Transformationsvorschrift aussehen kann.
  • Im Unterschied zu den damals behandelten Beispielen, bei denen Meßreihen tranjsformiert werden, in denen alle Werte bekannt sind, werden bei der Laplacetransformation in der Regelungstechnik Variablen transformiert.
  • Ist eine Gleichung im Zeitbereich von der Zeit t abhängig, so hängt die mit ihr korrespondierende Variable der Transformierten von der Frequenz, bzw. der Kreisfrequenz &#omega; ab.
  • Die Transformationen werden zudem nicht für jedes Element neu berechnet, sondern man greift dabei auf Tabellen mit Funktionen und ihren laplace-Transformierten zurück und bestimmter Kombinationsregeln, vergleichbar mit den Ihnen bekannten Integrationstabellen.
  • Für das vorgestellte Beispiel bestünde die Beaufschlagung mit dem Sprung am Eingang einfach das Einschalten der Heizung.
  • Erfahrungsgemäß steigt dann nicht auch die Raumtemperatur sprunghaft an, sondern nähert sich immer langsamer einem bestimmten Grenzwert.
  • Man kann sich leicht klar machen, dass es hier zwei verzögernde Glieder gibt:
  • Die Heizwendel benötigt einige zeit zur Aufwärmung.
  • Die vom Heizstrahler ausgesandte Wärme benötigt einige Zeit, bis sie sich im Raum verteilt hat.
  • Unter Verzicht einer physikalischen Modellbildung kann hier als Näherung für das Verhaslten der Regelstrecke ein Verzögerungsglied zweiter Ordnung angesetzt werden.
  • Dieses so genannte PT2-Glied besteht aus zwei hintereinander geschalteten Verzögerungsgliedern 1. Ordnung.

Das Verzögerungsglied erster Ordnung: PT1

Diese PT1-Glieder wiederum lassen sich nun folgendermaßen beschreiben:

  • Das P in PT1 rührt daher, dass ein gewisser Anteil des Ausgangssignals y proportional zum Eingang u ist:
P-Glied im Zeitbereich.

Bild 0-1: P-Glied im Zeitbereich.

  • Eine zeitliche Verzögerung ergibt sich, wenn das Ausgangssignal y das Eingangssignal u integriert.
  • Oder anders herum betrachtet: Das Eingangssignal u entspricht der Ableitung des Ausgangssignals y.
  • Somit ergibt sich folgende Differentialgleichung für das mit PT1 bezeichnete Übertragungsglied:
PT<sub>1</sub>-Glied im Zeitbereich.

Bild 0-2: PT1-Glied im Zeitbereich.

  • Setzt man zum Zeitpunkt t=0s für u(t) einen konstanten Wert u0 ein, so liefert die Lösung dieser Differentialgleichung den Zeitverlauf der Sprungantwort:
PT<sub>1</sub>-Glied, Lösung der Differentialgleichung bei u=u<sub>0</sub>=constd.

Bild 0-3: PT1-Glied, Lösung der Differentialgleichung bei u=u0=constd.

  • Üblicherweise wird das PT1-Glied anders parametrisiert.
  • In der folgenden Schreibweise ist T ein Maß für die Zeitverzögerung des Übertragungsgliedes.
  • K ist der Wert, gegen den y asymptotisch strebt.
PT<sub>1</sub>-Glied neu parametrisiert, Lösung der DGL bei Sprungantwort und DGL.

Bild 0-4: PT1-Glied neu parametrisiert, Lösung der DGL bei Sprungantwort und DGL.

  • In folgendem Schaubild ist abzulesen, wie sich die Parameter eines PT1-Übertragungsgliedes aus Messungen bestimmen lassen.
  • Die Tangente im Ursprung schneidet die Höhe K bei t=T.
Graph zu einem PT<sub>1</sub>-Übertragungsglied.

Bild 0-5: Graph zu einem PT1-Übertragungsglied.

Regelstrecken mit Ausgleich

  • Wenn eine Regelstrecke bei Beaufschlagung mit einem endlichen Sprung am Eingang sich gegen einen Grenzwert asymptotisch nähert, so spricht man von einer Regelstrecke mit Ausgleich.
  • Ein solches Verhalten ist günstig für die Installation eines Reglers, da sich die Strecke selber stabilisiert.
  • Instabiles Verhalten würde dazu im Gegensatz eine Regelstrecke aufweisen, deren Zustand sich einmal durch einen Sprung von außen angeregt immer weiter von ihrem Ursprungswert entfernt.

Beispiele für Regelstrecken mit Ausgleich

  • Drehzahl eines Elektromotors in Abhängigkeit der Eingangsdspannung
  • Winkelposition eines Pendels in Abhängigkeit eines Eingangsmomentes
  • Raumtemperatur in Abhängigkeit der Wärmezufuhr

All diese Beispiele für Regelstrecken mit Ausgleich zeichnen sich dadurch aus, dass sich gegen eine Veränderung immer ein gegenläufiger Einfluß aufbaut. Beim Elektromotor ist das die größer werdende Reibung, beim Pendel die Rückstellkraft in Form der Gravitation, bei der Raumheizung die Veränderung des Temperaturgradienten zwischen Innen- und Außentemperatur und damit ein größerer Wärmeabfluß über die Raumgrenze hinweg bei Temperaturanstieg, bzw. ein kleinerer bei Temperaturverminderung.

Beispiele für Regelstrecken ohne Ausgleich

  • Fahrtrichtung eines Schiffes in Abhängigkeit der Ruderstellung
  • Winkel eines invertierten Pendels in Abhängigkeit der Kräfte an der Pendelbasis
  • Pegelstand eines Wasserbeckens ohne Abfluß in Abhängigkeit des zugeleiteten Volumenstroms
  • Position eines Sateliten in Abhängigkeit der Rückstoßkraft der Steuerraketen

All diese Beispiele zeichnen sich dadurch aus, dass dem äußeren Einfluß nichts entgegenwirkt und eine einmal begonnene Veränderung nur dann nicht weiter fortschreitet, wenn eine gegenläufige Aktion erfolgt. Eine Gegenaktion wäre beim Schiff, das Ruder herumzuwerfen, beim invertierten Pendel, die Vorzeichen der wirksamen Kräfte umzudrehen, beim Wasserbecken die Richtung des Volumenstroms umzukehren, beim Sateliten Gegenschub mit anders orientierten Steuerraketen zu erzeugen.

Übung: Überlegen Sie sich weitere Beispiele für Regelstrecken mit und ohne Ausgleich.

Bedenken Sie dabei, dass es bei dieser Klassifizierung nicht nur auf das zugrundeliegende System ankommt, sondern auch darauf, welche Größe als Eingang und welche als Ausgang betrachtet werden.

Das Verzögerungsglied zweiter Ordnung: PT2

  • Verzögerungsglieder zweiter Ordnung genügen folgender linearer Differentialgleichung:
Lineare Differentialgleichung des PT<sub>2</sub>-Übertragungsgliedes.

Bild 0-6: Lineare Differentialgleichung des PT2-Übertragungsgliedes.

  • Solche Differentialgleichungen zweiter Ordnung haben Sie bereits bei der Modellierung mechanischer Systeme in der Vorlesung Simulationstechnik kennengelernt.
  • Ein Beispiel hierfür stellt der mechanische lineare Feder-Masse-Schwinger dar.
  • Sie wissen bereits, dass das dynamische Verhalten dieses Systems stark variieren kann, je nachdem, wie seine Parameter gewählt werden.
  • Sie wissen ebenfalls, wie der Zusammenhang zwischen dem dynamischen Verhalten dieses Systems und seiner Eigenwerte ist.
  • PT2-Übertragungsglieder können somit schwingen, können aber auch Kriechverhalten aufweisen, sie können stabil, instabil oder grenzstabil sein.

Übung1: Konkrete Umsetzung der Temperaturregelung

Hintereinanderschaltung zweier PT<sub>1</sub>-Glieder ergeben ein PT<sub>2</sub>-Glied.

Bild 0-1: Hintereinanderschaltung zweier PT1-Glieder ergeben ein PT2-Glied.

  • Bedeutung der in obigem Schaubild auftretrenden Variablen:
  • u1 - Versorgungsspannung der Heizwendel
  • y1 == u2 - Wärmestrom dq/dt der dem Raum von der Heizwendel zugeführt wird.
  • y2 - sich ergebende Raumtemperatur
  • Zugunsten einer vereinfachten Rechnung wird ein nicht ganz realistisches Beispiel herangezogen:
  • Heizwendel und Raum sollen beide dem gleichen PT1-Übertragungsglied entsprechen, bei dem gilt: T=K=1.
  • Bei Hintereinanderschalten beider Glieder muß der Eingang des Übertragungsgliedes des Raumes u2 mit dem Ausgangswert des Übertragungsgliedes der Heizwendel y1 gleichgesetzt werden.
  • In den folgenden Umformungen wird y1 und dessen Ableitungen eliminiert, um am Ende nur noch einen direkten Zusammenhang zwischen u1 und y2 zu haben.
Lineare Differentialgleichung des PT<sub>2</sub>-Übertragungsgliedes.

Bild 0-2: Lineare Differentialgleichung des PT2-Übertragungsgliedes.

Übung 1
schwinger.zip - Material zu Übung1
schwinger_knoppix7_scilab522.zip - Material zu Übung1 angepaßt für Knoppix 7 mit Scilab 5.2.2 (fscanfMat verlangt hier Komma statt Punkt als Dezimaltrenner. Diese Umwandlung wurde im C++-Simulator ergänzt.)

Aufgabe 1

  • Erstellen Sie ein Simulationsprogramm für den Heizregler unter Verwendung obiger Übertragungsfunktion.
  • Der Regler soll folgendermaßen arbeiten:
  • WENN y2<0.7 DANN u1=1, sonst u1=0.
  • y2(t=0s)=0, y2'(t=0s)=0, y2''(t=0s)=0.
  • Als Hilfestellung ist nachfolgend ein komplettes Simulationsprogramm in C++ gegeben, das einen Runge-Kutta-Integrator verwendet.
  • Allerdings ist das hier simulierte Modell ein einfacher linearer Masseschwinger.
#include<iostream>
#include<fstream>
#include<vector>
#include<stdlib.h>
using namespace std;
\\Modell eines Linearen Schwingers.
\\y[0] entspricht der Auslenkung x.
\\y[1] entspricht der Geschwindigkeit v.
\\Umgesetztes Modell:
\\mx'' = -Cx-Dx'
\\m=1kg, C=1N\m, D=0.5Ns\m
\\dx\dt = v
\\dv\dt = -x -0.5v
class Modell
{
    private:
        int anzahl;
        double* f;
    public:
        Modell()  
        {
            anzahl=2;
            f=new double[anzahl];
        }
        double rechteSeite(double* y, int zeile)
        {
            switch(zeile)
            {
                case 0:
                     return y[1];
                break;
                case 1:
                     return -y[0]-0.5*y[1]; 
                break;                    
                default:
                     return 0.0;
                break;                                                                                            
            }               
        }
        int holeAnzahlGleichungen()
        {
            return anzahl;
        } 
}; 
\\Integrator, der ein Runge-Kutta-Verfahren verwendet.
\\Bei Aufruf des Konstruktors wird ein Zeiger auf das zu integrierende Modell im 
\\Integrator-Objekt gespeichert.
class Integrator
{
    public:
        Integrator(Modell* modell)
        {
            this->modell = modell;
            yneu = new double[modell->holeAnzahlGleichungen()];
            yhilf = new double[modell->holeAnzahlGleichungen()];
            k1 = new double[modell->holeAnzahlGleichungen()]; 
            k2 = new double[modell->holeAnzahlGleichungen()]; 
            k3 = new double[modell->holeAnzahlGleichungen()]; 
            k4 = new double[modell->holeAnzahlGleichungen()]; 
        }
        double* zeitschritt(double* yalt,double dt)
        {
            for(int i=0;i<modell->holeAnzahlGleichungen();i++)
            {
                k1[i] = modell->rechteSeite(yalt,i);
                yhilf[i] = yalt[i] + 0.5*dt*k1[i];
            }                
            for(int i=0;i<modell->holeAnzahlGleichungen();i++)
            {
                k2[i] = modell->rechteSeite(yhilf,i);
                yhilf[i] = yalt[i] + 0.5*dt*k2[i];
            }                
            for(int i=0;i<modell->holeAnzahlGleichungen();i++)
            {
                k3[i] = modell->rechteSeite(yhilf,i);
                yhilf[i] = yalt[i] + dt*k3[i];
            }                
            for(int i=0;i<modell->holeAnzahlGleichungen();i++)
            {
                k4[i] = modell->rechteSeite(yhilf,i);
            }                
            for(int i=0;i<modell->holeAnzahlGleichungen();i++)
            {
                yneu[i] = yalt[i] + (dt\6.0)*(k1[i]+2.0*k2[i]+2.0*k3[i]+k4[i]);
            }                
            return yneu;
        } 
    private:
        Modell* modell;
        double* yneu;
        double* yhilf;
        double *k1,*k2,*k3,*k4;
}; 
\\Durchführen einer Simulation von 30 Sekunden und einer Schrittweite von 0,01 Sekunden.
\\Anfangsbedingungen:
\\x0=1.0m
\\v0=0.0m\s
int main()
{
    Modell* modell = new Modell();
    Integrator* integrator = new Integrator(modell);
    double y[2] = {1.0,0.0};
    double* yneu;
    double dt  = 0.01;
    double  t  = 0.0;
    ofstream datei("data.txt");
    while(t<=30.0)
    {
        \\Speichern der entstehenden Daten in der Datei "datei.txt"
        datei<<t<<" "<<y[0]<<" "<<y[1]<<endl;
        yneu = integrator->zeitschritt(y,dt);
        y[0]=yneu[0];
        y[1]=yneu[1];
        t+=dt;
    }
    datei.close();
    \\Der nachfolgende Aufruf von Scilab funktioniert nur, wenn 
    \\der Ort an dem Scilab liegt in der Umgebungsvariablen PATH eingetragen wurde.
    system("scilab -f datashow.sce");
}

Code 0-1: Simulationsprogramm pt2.cpp für einen Linearen Masseschwinger mit Dämpfung.

m=fscanfMat('data.txt');
plot(m(:,1),m(:,2));
\\plot(m(:,1),m(:,2),m(:,1),m(:,3));
\\siehe help axes_properties:
a = gca();
a.x_label.text = 't\s';
a.y_label.text = 'x\m';
a.title.text = 'Linearer Schwinger';

Code 0-2: Visualisierungsprogramm datashow.sce in Scilab für die von pt2.exe produzierten Daten.

Grafikausgabe des obigen Programms.

Bild 0-3: Grafikausgabe des obigen Programms.

Aufgabe 2

  • Wenn Sie Aufgabe 1 richtig gelöst haben, werden Sie feststellen, dass bei dem hier simulierten Regelvorgang Schwingungen auftreten.
  • Überprüfen Sie, ob die Regelstrecke schwingungsfähig ist.
  • Was schließen Sie aus Ihrem Ergebnis?

Aufgabe 3

  • Schaltende Regler, wie in dieser Übung, haben üblicherweise ein Hysteresekennlinie.
  • D.h. sie schalten ein bei Unterschreiten der Temperatur y1 und schalten aus bei Überschreiten der Temperatur y2, wobei gilt: y2>y1
  • Modifizieren Sie die Simulation mit y1=0.5 und y2=0.7
  • Beobachten Sie genau in welchem Intervall die nun entstehende Temperaturschwankung liegt.