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 17 478 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  Programmierung von PCa9685 Shield im Bezug auf Arduinos Crazydiver 5 133 10.04.2017 12:20
Letzter Beitrag: hotsystems
  ESP8622 - 01 sendet UDP - Problem WLan Kriskind 37 2.834 14.03.2017 19:49
Letzter Beitrag: Tommy56
  Programmierung Schleife florikus 0 161 03.03.2017 18:46
Letzter Beitrag: florikus
  Smart Home Webserver Basic Authentication Problem Osotastic 21 612 20.02.2017 18:00
Letzter Beitrag: Tommy56
  Problem mit Sketch senden an Uno feuerwehr 5 517 31.01.2017 20:41
Letzter Beitrag: Tommy56
  Beim Hochladen USB Problem Nils 10 756 29.12.2016 21:05
Letzter Beitrag: renid55
  Slider Steuerung, Programmierung blueblack 21 1.211 16.10.2016 22:31
Letzter Beitrag: blueblack
  Problem mit SD Card Library BennIY 4 452 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Frage zur Programmierung eines Ultraschallsensors jalu4601 10 523 21.09.2016 15:06
Letzter Beitrag: Bitklopfer

Gehe zu:


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