- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Hilfe bei Einstellung Regelparameter (Tempregelung) mit PIC

  1. #1

    Hilfe bei Einstellung Regelparameter (Tempregelung) mit PIC

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Ich bin ein ziemlicher Neuling auf dem Gebiet der dig. Regelungstechnik, habe mich aber trotzdem an einer Temperaturregelung versucht.
    Folgendes Stück Code ist dabei raugekommen:

    Code:
    	#define I_BEGR			3000	// I-Anteil begrenzen
    	#define TA				4	// Sek.
    
    	float pAnteil = 0;		
    	static float iAnteil = 0;	
    	float e = 0;			// Regelabweichung
    	static float esum = I_BEGR;	// Integral (Summe der Regelabweigungen)
    	char outputPower = 0;		// Leistung, die auf die Heizung gegeben wird (per PWM)
    	float Ta = TA;			// Abtastrate (Zeit in Sek.)
    		
    	e = (float) (presetTemp - currentTemp);
    
    	// P-Anteil
    	pAnteil = (e * Kp);
    
    	if (pAnteil > 100)		{ pAnteil = 100; }
    	
    	if (TIMER_REGLER >= (char) (10*Ta))   // Der Timer wird alle 100ms aufgerufen
    	{
    		// I-Anteil
    		esum = esum + (e * Ta);
    		if (esum > I_BEGR)	{ esum = I_BEGR; }
    		else if (esum < 0)	{ esum = 0; }
    		
    		iAnteil = esum * Ki;
    		
    		TIMER_REGLER = 0;
    	}
    						
    	outputPower = (int) (pAnteil + iAnteil);

    Das zu regelnde System ist ziemlich langsam. Die Einheit der X-Achse ist Minuten.

    Meine Frage jetzt: Wie bekomme ich den Unterschwinger weg? (Siehe Anhang) Der Überschwinger ist sogar gewollt.

    Vielen Dank schonmal im Voraus!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken f02.gif  

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    04.09.2008
    Beiträge
    31
    Servus!

    Die Sprungantwort Deiner Temperatur hat PT2-Charakter. Um das Schwingen weg zu bekommen, musst Du die Dämpfung erhöhen, d.h. die Verstärkung Kp kleiner machen. Sieht man auch schön an der Leistungskurve, die zwei Mal in die Begrenzung läuft (-> Verstärkung zu groß).

    Schön wäre es natürlich, wenn man die Sprungantwort Deiner Strecke kennen würde, dann könnte man ein wenig analytisch an die Reglerberechnung rangehen:
    Kompensation der Streckenzeitkonstante mittels der PI-Regler Zeitkonstante und Kp so wählen, dass die Dämpfung des Gesamtsystems (PT2) etwa d=1/sqrt(2) ist. Dann bekommst Du einen minimalen Überschwinger (ohne Unterschwingen). Besonders schnell wird der Regelkreis dadurch aber nicht! Willst Du deutlich schneller werden, als es Deine Strecke allein vorgibt, dann solltest Du vielleicht auf einen PID-Regler ausweichen.

  3. #3
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Im Prinzip sind Über- und Unterschwinger symetrisch, solange das System linear ist. Man könnte die Über- und Unterschwinger wegkriegen wenn man die Regelparameter anders abgleicht. Meistens reicht weniger Verstärkung, also Ki und Kp kleiner. Dadurch wird der Regler aber auch eher langsamer. An sich sieht die Reglereinstellung schon gar nicht so schlecht aus. Wenns schneller gehen soll, dann hilft eventuell ein PID Regler.

    Beim I-Anteil sollte man das Aufintegrieren weglassen, wenn die Stellgröße am Anschlag ist. Dann paßt der Fehler nicht zum linearem Modell und der I Anteil wird nur unnötig groß werden.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    04.09.2008
    Beiträge
    31
    Zitat Zitat von Besserwessi
    Im Prinzip sind Über- und Unterschwinger symetrisch, solange das System linear ist.
    Nö, wieso das denn?
    Das ist eine gedämpfte Schwingung. Die klingt langsam ab, wie soll da die Amplitude symmetrisch sein? Das einzige was konstant bleibt, ist die Schwingungsdauer, die interessiert hier aber nicht.

    Meistens reicht weniger Verstärkung, also Ki und Kp kleiner. Dadurch wird der Regler aber auch eher langsamer.
    Ja, hab ich ja schon gesagt.

    Wenns schneller gehen soll, dann hilft eventuell ein PID Regler.
    Hmm, ja... hab ich auch schon gesagt.

    Beim I-Anteil sollte man das Aufintegrieren weglassen, wenn die Stellgröße am Anschlag ist.
    Macht er im Prinzip auch schon durch I_BEGR!

  5. #5
    Vielen Dank für eure Antworten.
    Den Regler langsamer zu machen ist nicht erwünscht. Er kann auch ruhig 10% überschwingen.
    Ich hab die Lösung auch jetzt: I_BEGR um Faktor 3 nochmal erhöhen: auf 12000 und Ki auf 0,0021.
    Jetzt gibt's einen Überschwinger und dann geht's zur Solltemp.
    Die Verstärkung hab ich auch noch ein wenig gedrosselt.
    Also, es klappt jetzt, super!

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    41
    Beiträge
    760
    hi,
    freut miach, dass es funktioniert.
    aber mal noch paar fragen. warum darf dein i-anteil nicht negativ werden, und warum begrenzt du den p-anteil?
    Zitat Zitat von bb_stefan

    Beim I-Anteil sollte man das Aufintegrieren weglassen, wenn die Stellgröße am Anschlag ist.
    Macht er im Prinzip auch schon durch I_BEGR!
    nicht wirklich. diese begrenzung ist ja nur sinnvoll, damit der zahlenbereich der variable nicht überschritten wird und dadurch dann ein falscher wert(inkl. falsches vz) in der variable steht. allerdings sollte man eben den integrator dann anhalten, wenn die stellgröße die beschränkung überschreitet, und nicht dann, wenn der i-anteil einen maximalwert erreicht.

    mfg jeffrey

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    41
    Beiträge
    760
    hi,
    freut miach, dass es funktioniert.
    aber mal noch paar fragen. warum darf dein i-anteil nicht negativ werden, und warum begrenzt du den p-anteil?
    Zitat Zitat von bb_stefan

    Beim I-Anteil sollte man das Aufintegrieren weglassen, wenn die Stellgröße am Anschlag ist.
    Macht er im Prinzip auch schon durch I_BEGR!
    nicht wirklich. diese begrenzung ist ja nur sinnvoll, damit der zahlenbereich der variable nicht überschritten wird und dadurch dann ein falscher wert(inkl. falsches vz) in der variable steht. allerdings sollte man eben den integrator dann anhalten, wenn die stellgröße die beschränkung überschreitet, und nicht dann, wenn der i-anteil einen maximalwert erreicht.

    mfg jeffrey

  8. #8
    Hi!

    Zitat Zitat von jeffrey
    aber mal noch paar fragen. warum darf dein i-anteil nicht negativ werden, und warum begrenzt du den p-anteil?
    Wie gesagt, ich bin Anfänger auf dem Gebiet.
    Also: keine Ahnung, mir erschien es sinnvoll.
    Dehalb hab ich ja hier gefragt, um nochwas zu lernen.
    Die drei Sachen werde ich noch ändern und ausprobieren:
    - Integrieren anhalten, wenn Stellgröße (Ausgangsleistung) am Anschlag (100%)
    - I-Anteil auch negativ werden lassen (also neg. esum ?!)
    - P-Anteil auch nach oben hin nicht begrenzen

    Da es jetzt erstmal auch ohne diese Änderungen funktioniert, werde ich mit den Änderungen und Tests warten müssen, bis ich Zeit habe.

    Aber diese wertvollen Tipps werde ich mir für die nächste Regelung merken.

    Danke nochmal

    Gruß
    Kai

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test