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
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 269 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Problem mit LSM 303 Snörb 1 199 22.08.2017 14:16
Letzter Beitrag: Snörb
  Problem mit externem Interrupt manfred474 13 839 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Problem mit Klassen GuaAck 4 325 09.08.2017 09:28
Letzter Beitrag: MicroBahner
Question Problem mit TFT Sam217 8 626 20.07.2017 21:51
Letzter Beitrag: hotsystems
  Problem FastLED fliege_m 3 399 16.07.2017 16:56
Letzter Beitrag: Tommy56
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.219 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 363 10.04.2017 12:20
Letzter Beitrag: hotsystems
  Programmierung Schleife florikus 0 291 03.03.2017 18:46
Letzter Beitrag: florikus
  Smart Home Webserver Basic Authentication Problem Osotastic 21 1.131 20.02.2017 18:00
Letzter Beitrag: Tommy56

Gehe zu:


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