WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Wie diese Leistung begrenzen?

 

Blackeagle
Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 15.07.2013, 13:49     Titel: Wie diese Leistung begrenzen?
  Antworten mit Zitat      
Hallo!

Ich habe ein eher allgemeines regelungstechnisches Problem, was im ersten Sinne weniger mit Matlab/Simulink zu tun hat, als vielmehr mit Logik. Daher schon mal shame on me, falls das hier so gar nicht reinpasst.
Zum Problem:

Ich simuliere derzeit eine Brennstoffzelle. Die Leistung der Brennstoffzelle hängt vom Massenstrom des zugeführten Brennstoffes ab. Der Verlauf der Leistung über der Brennstofzufuhr sieht so aus wie eine nach unten geöffnete Parabel (siehe Anhang für qualiativen Verlauf).

Wie bringe ich dem System nun bei, dass der höchste Punkt nicht überschritten werden soll?
Ich denke, es ist ganz gut vorstellbar, dass ein derzeit eingesetzter PT1-Regler damit völlig überfordert ist, da dieser ja denkt: Je höher die Zufuhr, desto höher die Leistung. Sobald diese aber über den höchsten Punkt kommt, wird die Brennstoffzufuhr natürlich dauerhaft erhöht, bis die Leistung völlig im Keller ist.

Meine erste Idee war, einfach vor jeder Simulation einen kleinen Testlauf zu machen und darin den höchsten Punkt (P_max) zu bestimmen und dann den zugehörigen Grenzwert (m_H2,max) zu benutzen. Dies ist allerdings nicht gerade sinnvoll, da man bei jeder Parameteränderung diesen Test laufen lassen müsste. Das könnte für den Anwender nervig werden.

Zweite Idee war: Im obersten Punkt ist die Steigung =0, müsste sich abfangen lassen. Allerdings trifft die Simulation kaum exakt den obersten Punkt, es müsste also eher abgefragt werden, ob die Brennstoffzufuhr sich zwar erhöht, aber die Leistung trotzdessen sinkt. Blöderweise kamen bei Tests auch im erlaubten Bereich Situationen auf, in welchen die Brennstoffzufuhr erhöht wurde, die Leistung aber (noch) am fallen war. Beispielsweise, wenn die Leistung runtergefahren wird, aber sofort danach wieder erhöht werden soll.

Meine Frage lautet also: Gibt es eine Möglichkeit das System auch im laufenden Betrieb daran zu hindern, den (unbekannten) Maximalwert zu überschreiten?

Vielen Dank schon mal für eure Tipps und
beste Grüße!

Leistungsverlauf BSC.png
 Beschreibung:
Prinzipzeichnung Leistung über Brennstoffzufuhr einer PEMFC

Download
 Dateiname:  Leistungsverlauf BSC.png
 Dateigröße:  43.28 KB
 Heruntergeladen:  1235 mal
Private Nachricht senden Benutzer-Profile anzeigen


Zack

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2013, 16:37     Titel:
  Antworten mit Zitat      
Hi,
erster Schritt ist meiner Meinung nach immer ein Blockschaltbild der Regelstrecke anzufertigen. Hier gibts jedoch nur die Ausgangskurve.. So wie ich das verstanden habe hast du zwei Stellglieder und eine Ausgangsgröße!??! Da kann eine Mehrgrößenregelung im Zustandsraum in Frage kommen. Dazu gehört dann wieder eine Systemidentifikation im Mathematischen Sinne.
Tipp: Mach erst ein Blockschaltbild mit Führungs, Stell und Regelgrößen etc poste es hier dann gibts mehr Hilfe..
gruß zack
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 15.07.2013, 16:57     Titel:
  Antworten mit Zitat      
Hi!

Ok, sry, das kam etwas falsch rüber! Es gibt nur die beiden Größen, die auch im Diagramm zu sehen sind. Mit dem Massenstrom lässt sich die Leistung einstellen. Problematisch wird es nur, wenn man den höchsten Punkt der Leistung erreicht, da diese danach wieder sinkt, obwohl man den Massenstrom (=Brennstoffzufuhr) erhöht.
Wäre also ein simpler Regelkreis mit Führungsgröße=Sollleistung, Stellgröße=Brennstoffmassenstrom und Regelgröße=Istleistung.

Hoffe, nun ist es klarer.

Nochmals danke und beste Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
controlnix
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 10.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2013, 19:19     Titel:
  Antworten mit Zitat      
Hallo Blackeagle,

da der Maximalwert unbekannt ist und zudem eine Mehrdeutigkeit zu verarbeiten ist, würde ich wie folgt vorgehen:
1) Mit mp = mPunkt, setze dP(t)/dt = dP/dmp * dmp/dt, und löse nach dP/dmp auf. Dies ist dann Deine Regelgröße!
2) a) Bilde die zeitliche Ableitung der Leistung,
b) Bilde die zeitliche Ableitung des Massenstroms.
Evtl jeweils mit einem D-T1, damit Rauschen ausreichend abgedämpft wird.
c) Berechne gemäß Gleichung in (1) dP/dmp
3) Der Sollwert für dP/dmp im Regelkreis ist dann 0. Ich würde da eine gewisse Toleranz (Totband um 0 herum) einbauen. Du musst dann den Maximalwert selbst und den zugehörigen Mengenstrom gar nicht kennen.
4) Während die Regelung läuft musst Du das Totband um 0 zu jedem Zeitschritt hinsichtlich Eintreten und Austreten sehr genau analysieren. Dies ist notwendig, damit Du die erforderliche Fallunterscheidung (auf welcher Seite der Parabel Du bist) für die Regelung korrekt durchführen kannst.

Etwas ungewöhnlich, aber damit sollte es funktionieren.

Hinsichtlich Simulation würde ich bei variabler Schrittweite die Maximalschrittweite fixieren, damit das Durchlaufen durch 0 auch wirklich auftritt und analysiert werden kann. Alternative ist natürlich eine feste, hinreichend kleine Schrittweite.

Viele Grüße
ControlNix
Private Nachricht senden Benutzer-Profile anzeigen
 
Zack

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2013, 07:50     Titel:
  Antworten mit Zitat      
hä warum so kompliziert einfachen p regler(bei PI & PIDT1 Regler muss der integrale Anteil berücksichtigt werden, da ist die Stellgrößen begrenzung etwas kompliziertet mit Intergration Windup und deadband)
Quelle:
Code:

function u = fcn(w,y,upperlimit,lowerlimit,Kr)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                            P Regler                                                                      %
%   w = Sollwert                                                                                        %
%   y = Aktueller Wert                                                                               %
%   lowerLimit = Untergrenze der Stellgröße                                             %
%   upperLimit = Obergrenze der Stellgröße                                             %
%   Kr = Verstärkungsfaktor                                                                      %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    if ( abs(Kr) <= 1e-20)
        d0 = 1e-10;
    else
        d0 = Kr;
    end;
   
    ek = w-y;
    uk = d0*ek;
   
    if uk > upperlimit
        uk = upperlimit;
   
    elseif uk < lowerlimit
        uk = lowerlimit;
    end
   
    u = uk;
 

[/code]
 
Zack

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2013, 07:57     Titel:
  Antworten mit Zitat      
Ah falsch verstanden... in diesem Fall wäre ein Überschwingen an der Istgröße und das war nicht gewünscht oder?
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 16.07.2013, 10:04     Titel:
  Antworten mit Zitat      
Hi!
Danke für eure Antworten.

@zack: Also ein einfacher P-Regler kennt die Maximalleistung nicht und würde auf der rechten Seite der Parabel den Massenstrom erhöhen, um die Leistung zu erhöhen. Hier hätte dies aber den gegenteiligen Effekt.

@controlnix: Zunächst einmal, ich habe das nicht in vollem Umfang verstanden Embarassed
Unter (1) erweiterst du mit dmp/dmp. Ok. Dann willst du sowohl von mp als auch von P die Ableitung bilden, ok. Hier dann meine erste Frage: wenn ich Gl. (1) nach dP/dmp auflöse, steht dort einmal dP/dt, ok, aber dann noch dt/dmp. Ist das dann der Kehrwert der Ableitung dmp/dt?
Dann geht es weiter, indem ich aus beiden nach der Zeit abgelittenen Größen die Ableitung dP/dmp bilde. So, diese soll dann möglichst immer 0 sein? Wie erhöhe/verringere ich dann noch die Leistung? Dazu muss ich doch an mp drehen, was wiederum P verändert und somit hätte ich auch eine Steigung in meinem Verlauf? Question Crying or Very sad
Im Anhang mal alles, was ich bis hierhin verstanden habe Smile

Clipboard01.png
 Beschreibung:

Download
 Dateiname:  Clipboard01.png
 Dateigröße:  249.69 KB
 Heruntergeladen:  1093 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
controlnix
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 10.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2013, 15:12     Titel:
  Antworten mit Zitat      
Hallo Blackeagle,

@Blackeagle:
Deine handschriftliche Darstellung ist soweit schon richtig. Am Reglerausgang, nach mp, geht's nach rechts noch weiter mit 'Regelstrecke' und dort sollte einer der Ausgänge dann P(t) sein, womit sich der Kreis schliesst.

Die Berechnung von dmp/dt kann sich ggf einfach gestalten, wenn im Regler aufgrund dessen Struktur bereits die Ableitung gebildet wird. Der Regler muss allerdings auch die von mir angesprochene Analyse durchführen, um die Mehrdeutigkeit zu behandeln !! Dies bedeutet, dass es sich nicht um einen Standardregler handeln kann, sondern um einen nichtlinearen, der durch ruckfreie Umschaltung berücksichtigen muss, auf welcher Seite der Parabel man sich befindet.
Als Sollwert für dP/dt habe ich 0 gewählt, weil ich aus Deinen Ausführungen entnommen habe, dass Du den Regelkreis am Leistungsmaximum betreiben möchtest.

@Zack:
1) "hä" ist etwas für den Jahrmarkt, aber nicht wenn es um qualifizierte Äußerungen gehen soll.
2) den Rest kommentiere ich nicht weiter.

Grüße
ControlNix
Private Nachricht senden Benutzer-Profile anzeigen
 
Blackeagle
Themenstarter

Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 21.01.10
Wohnort: Hamburg
Version: R2011b
     Beitrag Verfasst am: 17.07.2013, 10:56     Titel:
  Antworten mit Zitat      
Hi ControlNix!

Denke mal, ich habe das Blockschaltbild nun komplett. Allerdings geht die Reglerauslegung deutlich über meine Kompetenzen hinaus. Meine Aufgabe ist eigentlich nur die funktionale Modellierung und ich habe ein paar simple Regler eingefügt, um überhaupt sinnvoll simulieren zu können. Hätte nicht gedacht, dass sich dieses Nichtüberschreiten der Maximalleistung als so schwierig erweist.
Achso, es ging mir wirklich nur darum, die Maximalleistung nicht zu überschreiten. Sie muss keineswegs gehalten werden (außer man will tatsächlich mal Maximallast fahren).
Ich werde deine Ideen wohl als eine Art Ausblick oder Ähnliches mit aufnehmen oder zu mindest darauf hinweisen, dass es an dieser Stelle Handlungsbedarf gibt.

Vielen Dank für deine Tipps,
beste Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
controlnix
Forum-Century

Forum-Century


Beiträge: 106
Anmeldedatum: 10.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2013, 20:10     Titel:
  Antworten mit Zitat      
Hi Blackeagle,
freut mich, wenn ich helfen und Anregungen für weitere Aktivitäten geben konnte.
Viele Grüße,
ControlNix
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.