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
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 5 111 24.03.2017 22:58
Letzter Beitrag: Tommy56
  ESP8622 - 01 sendet UDP - Problem WLan Kriskind 37 2.542 14.03.2017 19:49
Letzter Beitrag: Tommy56
  Programmierung Schleife florikus 0 140 03.03.2017 18:46
Letzter Beitrag: florikus
  Smart Home Webserver Basic Authentication Problem Osotastic 21 556 20.02.2017 18:00
Letzter Beitrag: Tommy56
  Problem mit Sketch senden an Uno feuerwehr 5 451 31.01.2017 20:41
Letzter Beitrag: Tommy56
  Beim Hochladen USB Problem Nils 10 652 29.12.2016 21:05
Letzter Beitrag: renid55
  Slider Steuerung, Programmierung blueblack 21 1.069 16.10.2016 22:31
Letzter Beitrag: blueblack
  Problem mit SD Card Library BennIY 4 397 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 492 21.09.2016 15:06
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 325 22.08.2016 19:42
Letzter Beitrag: Eichner

Gehe zu:


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