Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Themen - chriszero

Seiten: [1]
1
Andere Projekte / other Projects / Solarthermie Regelstrategie?
« am: 04. November 2011, 13:33:52 »
Hallo erstmal,

Ich zerbrech mir grade den Kopf wie ich am besten meine Solaranlage regeln kann. Bzw am stabilsten.
Ich hab einen primären- und einen sekundären Solarkreis. Am Primären hängt das Kollektorfeld.
Bisher regle ich das mit einem PID-Regler, bekomme aber durch die extrem langen Reaktionszeiten keine einigermaßen stabile Vorlauftemperatur hin.

Der Solarvorlauftemperatursensor sitzt kurz vor dem Plattenwärmetauscher.
Der Kollektortemperatursensor im Kollektor auf dem Dach.
Die Solarübergabestation im Keller. Zwischen Solarstation und Kollektor sind etwa 30m Rohr...

Beispiel:
Mein Sollwert ist 65°C
Die Sonne kommt, die Kollektortemperatur steigt, die Solarpumpe läuft für 30sek auf 100%.
Nach 30sek wird nach der Vorlauftemperatur im Solarkreis geregelt.
Nach den 30sek regelt der PID Regler die Drehzahl der Pumpe um den gewünschten Sollwert zu erreichen.
Die Pumpe läuft auf ihrer Mindestdrehzahl, die Temperatur steigt langsam.
Nach einiger Zeit ist die Solltemperatur erreicht und steigt weiter, Drehzahl erhöht sich.
Nach ein paar Minuten ist die Drehzahl auf 100%, Temperatur ist weiter leicht gestiegen bzw weit über Soll.
Dann fällt die Temperatur wieder, Drehzahl bleibt erst mal auf 100%. Nachdem der Istwert dann in die Nähe des Sollwerts kommt, bzw diesen unterschreitet, wird auch die Drehzahl der Pumpe verringert.
Aber die Drehzahl sinkt zu langsam, folglich bricht die Temperatur im Vorlauf zusammen, und die Pumpe ist irgendwann wieder bei ihrer Mindestdrehzal.
Jetzt fängt das ganze Spiel wieder von vorne an.

Problem ist einmal die "lange Leitung"  ;D
und die Tatsache die die Sonne keine Konstante Energie bringt.
Diese zwei Tatsachen lassen sich leider nicht ändern.

Nun ist die Frage wie man das einigermaßen in den Griff bekommt. Mir ist klar das ich den Sollwert niemals genau treffen werde. Ein bisschen Schwingen ist ja vollkommen Ok. Aber ich hab halt bis zu 50°K Differenz drin...

Verlauf der einer Schwingung:
t_0 = 47°C
t_18min = 78°C
t_24min = 52°C
t_40min = 80°C
t_46min = 53°C

mit PID
kp 2
tn 30
tv 0

Kann mir jemand helfen?
Danke =)

2
oscat.lib fuer TwinCAT/CoDeSys / Realisierung einer Kessel-Kaskade
« am: 19. April 2011, 17:04:25 »
Hallo,

Ich versuche gerade eine 3-Stufige Öl-Kessel Kaskade zu steuern.

Als Ansatz hatte ich mir vorgestellt das ich einfach einen PD/PID Regler nehme und ihn nach der gemeinsamen Vorlauftemperatur der Kesselanlage regeln lasse. Den Ausgang des Reglers von 0-100% skaliere und bei jeweils <0%, <33% und <66% die Jeweiligen Kessel zuschalte. Und dementsprechend rückwärts wieder wegschalte. Das ganze mit 48-stündlichen Wechsel der Kesselreihenfolge zur gleichmäßigen Verteilung der Betriebsstunden. Wobei ich bei letzerem noch nicht so recht weis wie ich das umsetzen soll.

Was haltet Ihr von diesem Entwurf? Erfahrungen? Probleme? Was sagt die Praxis?

Gruß
Chris

3
oscat.lib fuer TwinCAT/CoDeSys / BOOL filtern / glätten?
« am: 11. Januar 2011, 18:00:22 »
Hallo,

Wie kann ich ein Digitales Signal, also ein Bool filtern?
Ist vielleicht etwas falsch ausgedrückt.

Ich brauche ein Baustein der mir ein TRUE erst durchschaltet wenn es eine gewisse Zeit anliegt.
Wenn also das Signal 2sek. TRUE sein soll bevor der Baustein sein Ausgang auf TRUE setzt, und der Signal war nur 1sek. TRUE soll der Ausgang FALSE bleiben.

So eine Art "Spitzenfilter"?

Da gibts doch bestimmt was fertiges, oder?

Danke,
Chris

4
oscat.lib fuer TwinCAT/CoDeSys / Oscat mit Twincat übersetzen?
« am: 02. Dezember 2010, 08:10:29 »
Hallo,

Wie übersetzte ich die Oscat.lib aus der Plaintext-Datei in Twincat?
Ich muss Menge der Bausteine drastisch reduzieren.

5
Bestehende Module / Existing Modules / Frage zu CTRL_PID
« am: 30. November 2010, 15:18:24 »
Hallo,

Ich habe eine kleine Frage zum CTRL_PID

Ich regle die Drehzahl einer Solarpumpe damit. Und zwar soll eine berechnete Zieltemperatur erreicht werden. Wenn ich eine höhere Temperatur brauche muss die Drehzahl der Pumpe reduziert werden. Wenn die Temperatur niedriger werden soll muss die Drehzahl erhöht werden.

Um dieses Verhalten zu erziehlen müsste doch ein negativer KP nötig sein? oder hab ich da ein Denkfehler?

Danke.

6
Hallo, Ich habe mal eine grundlegende Verständnissfrage
In der Funktion DEAD_ZONE2 ist die Variable Y als VAR_OUTPUT deklariert, wird aber in einem elsif zu einem Vergleich verwendet.
Ich bin C/C++ Programmierer und versteh grad nicht so recht warum mit Y verglichen wird. Die hat doch immer 0, weil ihr nichts zugewiesen wurde? Oder wird das "elsif" auch ausgeführt wenn das "if" schon wahr war?
Ansonsten würde das für mich keinen Sinn machen. In C würd er nämlich in das "else if" nicht mehr springen wenn das "if" wahr gewesen wäre. Somit wäre das "elsif" immer unwahr.

FUNCTION_BLOCK DEAD_ZONE2
VAR_INPUT
X : REAL;
L : REAL;
END_VAR
VAR_OUTPUT
Y: REAL;
END_VAR

IF ABS(x) > L THEN
Y := X;
ELSIF Y > 0.0 THEN
Y := L;
ELSE
Y := -L;
END_IF;

Seiten: [1]