INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programmierung, Problem mit if-Bedingungen
08.12.2014, 21:35
Beitrag #1
Programmierung, Problem mit if-Bedingungen
Hi,
ich kappiere nicht, wie ich die Peltier-Regelung vernüftig programmieren soll, damit die unterschiedlichen Zustände ablaufenHuhHuhHuh:

1. Temperatur über Raumtemperatur:
> PI-Regelung klassisch, Controller-Direction: direct

2. Temperaturen unter Raumtemperatur:
> PI-Regelung klassisch aber bei reversem Betrieb.
> Umpolung des Peltier-Elemente

1.1 Temperatur-Differenzen oberhalb der Raumtemperatur überbrücken: z. B. 90° C auf 50° C
> PI-Regelung, reverser Betrieb
> Umpolung

2.1 Temperatur-Differenzen unterhalb der Raumtemperatur überbrücken: z. B. 0° C auf 10° C
> PI-Regelung klassisch, direct
> Umpolung für den Direct-Betrieb

Auch möglich: weiterhin klassisch im Reverse-Betrieb, ab Aufnahme von Umgebungwärme, um auf 10° C zu gelangen.

3. Nach längerem Betrieb, hohes thermisches Gesamtniveau des Blocks:
Einstellung auf Raumtemperatur
> PI-Regelung reverser Betrieb
> Umpolung des Peltier-Elementes

Gruß
Cray-1
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2014, 16:20 (Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2014 16:41 von Corvus.)
Beitrag #2
RE: Programmierung, Problem mit if-Bedingungen
(08.12.2014 21:35)Cray-1 schrieb:  Temperatur-Differenzen oberhalb der Raumtemperatur überbrücken: z. B. 90° C auf 50° C
Temperatur-Differenzen - Differenz zwischen welchen Temperaturen?
überbrücken - wie überbrückt man Differenzen?
aber egal, es geht dir ja um die If-Bedingungen:
Code:
if (Temperatur>Raumtemperatur){ //1.
  piRegelung("klassich","direkt");
}
if  (Temperatur<Raumtemperatur){ //2.
  piRegelung("klassisch","revers");
  umpolung(PeltierElement);
}
if ((TemperaturMinuend-TemperaturSubtrahend)>Raumtemperatur){//1.1
  ueberbrueckung(TemperaturMinuend -TemperaturSubtrahend);
  piRegelung("revers");
  umpolung();
}
if ((TemperaturMinuend-TemperaturSubtrahend)<Raumtemperatur){ //2.1
  ueberbrueckung(TemperaturMinuend-TemperaturSubtrahend);
  if (random(2)){  
    piRegelung("klassisch","direkt");
    umpolung();
  }
  else{
    piRegelung("klassisch","revers","ab Aufnahme von Umgebungwärme");
}
if (BetriebsZeit>=lange){ //3.
  piRegelung("revers");
  umpolung(PeltierElement);
}
...musst dir dann nur noch ne überladene Funktion "piRegelung" und die Funktion "umpolung" schreiben sowie, die Variablen entsprechend setzen. Gegebenenfalls noch den Wert bei random anpassen, sofern deine alternative Variante mit geringerer Wahrscheinlichkeit ausgeführt werden soll.
Kann mir zwar nicht vorstellen, dass dir das irgendwie weiterhilft, aber ich wünsche trotzdem viel Erfolg!
gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.12.2014, 21:09
Beitrag #3
RE: Programmierung, Problem mit if-Bedingungen
(14.12.2014 16:20)Corvus schrieb:  
(08.12.2014 21:35)Cray-1 schrieb:  Temperatur-Differenzen oberhalb der Raumtemperatur überbrücken: z. B. 90° C auf 50° C
Temperatur-Differenzen - Differenz zwischen welchen Temperaturen?
überbrücken - wie überbrückt man Differenzen?
aber egal, es geht dir ja um die If-Bedingungen:
Code:
if (Temperatur>Raumtemperatur){ //1.
  piRegelung("klassich","direkt");
}
if  (Temperatur<Raumtemperatur){ //2.
  piRegelung("klassisch","revers");
  umpolung(PeltierElement);
}
if ((TemperaturMinuend-TemperaturSubtrahend)>Raumtemperatur){//1.1
  ueberbrueckung(TemperaturMinuend -TemperaturSubtrahend);
  piRegelung("revers");
  umpolung();
}
if ((TemperaturMinuend-TemperaturSubtrahend)<Raumtemperatur){ //2.1
  ueberbrueckung(TemperaturMinuend-TemperaturSubtrahend);
  if (random(2)){  
    piRegelung("klassisch","direkt");
    umpolung();
  }
  else{
    piRegelung("klassisch","revers","ab Aufnahme von Umgebungwärme");
}
if (BetriebsZeit>=lange){ //3.
  piRegelung("revers");
  umpolung(PeltierElement);
}
...musst dir dann nur noch ne überladene Funktion "piRegelung" und die Funktion "umpolung" schreiben sowie, die Variablen entsprechend setzen. Gegebenenfalls noch den Wert bei random anpassen, sofern deine alternative Variante mit geringerer Wahrscheinlichkeit ausgeführt werden soll.
Kann mir zwar nicht vorstellen, dass dir das irgendwie weiterhilft, aber ich wünsche trotzdem viel Erfolg!
gruß lorenz
Hi, es ist immer noch das Problem, das die erste if-Bedingung auch ausgeführt wird, wenn der Regler einen Unterschwinger macht.

Gruß
Cray-1
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.12.2014, 02:25
Beitrag #4
RE: Programmierung, Problem mit if-Bedingungen
Da du es offenbar nicht für notwendig hälst abgesehen von deinem kontextlosen Brainstorming des ersten Posts mitzuteilen was du erreichen möchtest: Dodgy
Dass die erste if-Bedingung ausgeführt wird lässt sich ganz leicht verhindern, indem du sie folgendermaßen abänderst:
Code:
if (Temperatur>Raumtemperatur && !ReglerMachtUnterschwinger){
  piRegelung("klassich","direkt");
}
Jetzt brauchst du nur noch die Variable ReglerMachtUnterschwinger, auf true setzen wenn "der Regler einen Unterschwinger macht". Und entsprechend auf false, wenn er keinen macht. Angel
gruß lorenz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Smart Home Webserver Basic Authentication Problem Osotastic 21 293 20.02.2017 18:00
Letzter Beitrag: Tommy56
  ESP8622 - 01 sendet UDP - Problem WLan Kriskind 33 1.356 11.02.2017 18:59
Letzter Beitrag: Tommy56
  Problem mit Sketch senden an Uno feuerwehr 5 311 31.01.2017 20:41
Letzter Beitrag: Tommy56
  Beim Hochladen USB Problem Nils 10 536 29.12.2016 21:05
Letzter Beitrag: renid55
  Slider Steuerung, Programmierung blueblack 21 945 16.10.2016 22:31
Letzter Beitrag: blueblack
  Problem mit SD Card Library BennIY 4 327 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 454 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 284 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 1.037 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  Problem mit Delay und Millis funnyzocker 1 613 26.06.2016 09:54
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste