Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> > Hallo Krassos, > > > > kansst du mir bitte sagen wo du den parameter > > if ki2>10000 and es>ex es=ex; //Hier geändert > > if ki2<=-10000 es=-10000; //Hier geändert > > > > vereinbart hast und berechnest ich kann leider auch im pid Programm nichts finden > > > > danke > > > > Mfg Guido > > Kein Problem, ich poste einfach nochmal das kpl. PID-Modul in der aktuell > für den Mischer verwendeten Fassung. > Mein größtes Problem bisher war die Stellzeit des Mischers und damit die Regelträgheit richtig > zu berücksichtigen. > Meine aktuellen Regelparameter sind wie folgt: > Abtastzeit ca 30sec.; d.h. alle ca 30sec wird PID aufgerufen. > tn=250 großer Wert, weil Reaktionsträges System (Größere Werte verringern den Integralanteil) > Tv=350 Großer Wert Erhöht den Differentialanteil, Notwendig, um schon beim Anzeichen > einer Temperaturänderung einen Stellwert zu generieren. > Beispiel: Sollwert 37°C Istwert: 38°C Tendenz fallend > generiert ein Signal: Mischer auf, obwohl Der Istwert größer als der Sollwert ist. > kp=180 > Für kp hab ich eine Dynamisierung bei mir eingefügt (Im Mischer Thread). > Damit mache ich kp von der Differenztemperatur an den Mischereingängen abhängig. > Dahinter steht folgender Gedanke: > Bei einem großen Temperaturunterschied zwischen den Mischereingängen genügt ein kleinerer > Regelschritt, ein kleiner Temperaturunterschied erfordert natürlich einen größeren Regelschritt. > > <code> > //****************************** > float ea; > float es,kd; > long z2; > > > function pid (int w,int x,int tv,int tn,float kp) returns int > { > //Bedingungen: tn>0 > long z1; > float e,y,diff1,ki1,ki2,ta,ex; > int y1; > //**Abtastzeit**** > z1=system.timer(); > ta=(z1-z2);ta=ta/constant.tx;z2=z1;if ta<0.01 ta=0.01; //Abtastzeitermittlung > > //**Regelabweichung*** > e = w - x; //regelabweichung > > //**I-Anteil*** > ex=es;ki1=kp*e; > //ki2=kp*ta/tn*es+ki1; > ki2=kp*ta/tn*es+ki1; > es = es + ((ea + e) / constant.two);//else es=zero; //i-speicher > //**D-Anteil*** > diff1=e-ea; > kd = (kd+tv / ta * diff1)/constant.two; //D-anteilsberechnung und d-Anteil ausklingen > > //**Stellwert*** > y = kp * (e +(ta / tn * es) + kd); //stellwertsberechnung > //y = kp * e +(ta / tn * es) + kd; > if y>19000 or y<-19000 > { > if y>19000 y1=19000; > if y <-19000 y1=-19000; > } > else y1=y; > ea = e;//Regelabweichung für nächsten Durchlauf speichern > if ki2>10000 and es>ex es=ex; > if ki2<=-10000 and es<ex es=ex; > > return y1; > }</code>
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB