Wie kan mij helpen mij PID

Arduino specifieke Software
Berichten: 22
Geregistreerd: 24 Aug 2016, 11:31

Wie kan mij helpen mij PID

Berichtdoor mattheijer » 11 Sep 2016, 11:40

Hoi Allemaal,

Ik heb een droogkast gemaakt van een koelkast.
Hierin ga ik worst drogen.
Nu is het probleem dat onderstaande sketch wel werkt maar dat de koelkast en de luchtbevochtiger veels te ver doorschieten.
ik begreep dat het met een PID regeleing is op te lossen.
Maar ik snap er helemaal niks van ?
wei kan mij helpen hoe ik er een PID regeling van kan maken?

Code: Alles selecteren
#include <dht.h>             // zet de DHT libary aan
#include "Wire.h"            // imports the wire library for talking over I2C

dht DHT;                     // zet dht als DHT
#define DHT22_PIN A1         // zet DHT 11 op pin 7
  int Relais1=2;             // zet het relais op pin 2
  int Relais2=3;             // zet het relais op pin 3
  float RVin=80;             // Stel de max RV in
  float TEMPin=20;           // stel de max temp in

void setup() {
 
  Serial.begin(9600);         // open de serial poort
  pinMode(Relais1,OUTPUT);    // Zet het Relais1 op Output
  pinMode(Relais2,OUTPUT);    // Zet het Relais2 op Output

}

void loop() {
  float chk = DHT.read22(DHT22_PIN);   // Spreek de DHT 11 aan
  Serial.print("The Temp is: ");       // Print tekst
  Serial.print(DHT.temperature);       // print resulaat
  Serial.print(" graden, ");           // print tekst
  Serial.print("Luchtvochtigheid: ");  // print tekst
  Serial.print(DHT.humidity);          // print resulaat
  Serial.println("%");                 // print tekst
 
  // schakelingen voor de luchtvochtigheid
  if (DHT.humidity >=RVin){            // als de RV hoger of gelijk is aan RVin
  digitalWrite(Relais1,HIGH);          // schakel het relais1 hoog
  }
  else {
  digitalWrite(Relais1,LOW);           // schakel relais1 Laag
}

  // Schakeling voor de Temperatuur
  if (DHT.temperature <TEMPin){        // als de RV hoger of gelijk is aan RVin
  digitalWrite(Relais2,HIGH);          // schakel het relais1 hoog
  }
  else {
  digitalWrite(Relais2,LOW);          // schakel relais1 Laag
  }
   
delay(10000);
}

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Wie kan mij helpen mij PID

Berichtdoor Koepel » 11 Sep 2016, 15:50

Dit is het beginpunt voor een PID : http://playground.arduino.cc/Code/PIDLibrary
Het is beter om die PID uit te proberen zonder de kast. Bijvoorbeeld wel met een Arduino board, maar dan de kast gesimuleerd in de code.

Een PID kan gebruikt worden om iets harder en zachter te zetten (een motor, een lamp), maar ook om iets te regelen met 'aan' en 'uit' (een relais). Hoe vaak wil je dat het relais aan of uit gaat ? Iets van 10 of 30 seconden pauze tussen het schakelen ?

Je schrijft over een luchtbevochtiger, ik neem aan dat je het omgekeerde bedoeld, een luchtdroger/luchtontvochtiger.
https://nl.wikipedia.org/wiki/Luchtontvochtiger

Is er ook een ventilator in de kast ? Om de lucht goed rond te laten draaien ?
En voeg ook iets toe voor de veiligheid. Bijvoorbeeld een thermische zekering of een bi-metaal-schakelaar die de verwarming uit zet als er iets mis gaat.

Het mooiste zou zijn als je een profiel van de kast zou hebben. Bijvoorbeeld een grafiek die aangeeft bij iedere temperatuur hoeveel graden de temperatuur stijgt als de verwarming een seconde of een minuut aan staat. En dat dan ook nog bij een lege en volle kast.

Er is nog een andere mogelijkheid. Je kunt de toename en afname van de data bekijken (de 'delta'), en aan de hand van de echte waarde en de delta een beetje gokken wanneer het beter uitgezet kan worden. Hoe nauwkeurig moet het zijn ? Mag het 5 graden temperatuur en 10 procent luchtvochtigheid schommelen ? Dan zou een enorme marge zijn, en ruim voldoende om te gokken.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Wie kan mij helpen mij PID

Berichtdoor shooter » 11 Sep 2016, 19:05

PID is eigenlijk bedoeld voor analoge regelingen en dat zijn ze niet,
De koelkast staat verkeerd om geschakeld, en het commentaar klopt helemaal niet.
Je kunt wel de koelkast inschakelen, maar het duurt best lang voordat je er iets van merkt, dus rustig aan als je de PIDlibrary gebruikt.
PWM gaat echt niet dus beter gewoon aan/uit regeling.
als je dan afschakelt bij T-1 en weer inschakelt bij T-2 dan zal het best goed gaan.
de RV eigenlijk hetzelfde dus bij 75 al uitschakelen, en bij 70% weer in, of RVin-5.
paul deelen
shooter@home.nl

Berichten: 22
Geregistreerd: 24 Aug 2016, 11:31

Re: Wie kan mij helpen mij PID

Berichtdoor mattheijer » 28 Sep 2016, 10:24

shooter schreef:De koelkast staat verkeerd om geschakeld, en het commentaar klopt helemaal niet.

Wat bedoel je met verkeerd om geschakeld ?

Wat het probleem een beetje is dat de koelkast te ver doorkoelt. maw het keolproces loopt te lang door.
omdat het proces gaande weg verschillende temperraturen nodig heeft dacht ik aan een PID regeling.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Wie kan mij helpen mij PID

Berichtdoor shooter » 29 Sep 2016, 10:21

over/undershoot heet dat, en dat komt door de dode tijd, dat kun je voorkomen door de kast in tijd te regelen, dus als 10% kouder dan de koeling even (1 minuut ) aan, Bij een peltier element kun je wel met PWM werken trouwens. Bij een gewone koelkast, zit er een stoptijd in, dus heb je nog meer tijd nodig.
paul deelen
shooter@home.nl

Berichten: 16
Geregistreerd: 19 Feb 2015, 12:21
Woonplaats: Genk

Re: Wie kan mij helpen mij PID

Berichtdoor louis lenchant » 23 Mrt 2017, 12:53

Beste Shooter,

Van Arduino programmeren ken ik nog wel niet veel maar van koeling en PID regelaars is
al 37 met dagelijkse job.

Eerste, een koelkast met koel motor en koelgas is hele moeilijk om aan te sturen met een PID regeling,
wanneer deze opgestart word en het druk verschil is groot genoeg in de koelleidingen zal deze
pas koude afgeven en bij het stoppen zal de koude afgifte nog door lopen tot de druk in de leidingen
terug gelijk is, nu een gewone koelkast heeft of moet een bepaalde tijd hebben om terug te mogen op
starten omdat de start inrichting niet krachtig genoeg is om de motor aan het draaien te krijgen zolang
de drukken in de koelleiding terug niet gelijk zijn.

Met Peltier elementen is dit project veel beter regelbaar uit te voeren op voorwaarde dat het afgifte element waar
de halfgeleider (Peltier ellement) aan gemonteerd zit niet te veel massa heeft wat een bepaalde traagheid
genereerd en de stabilisatie van regeling in tijd gaat beïnvloeden.

Nu een PID regeling of geregeld proces is ontworpen om een zo nauwkeurige mogelijke regeling uit te voeren
en te zorgen dat er zeker geen overschot van waarde (koeling of warmte ) word toegevoegd aan het te regelen
proces, en zal altijd even onder het setpunt van de ingestelde waarde blijven hangen door de traagheid van de
respons van het systeem.

Groetjes,

Lenko

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 21 gasten