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

Genauigkeit Drehzalsteuerung via PWM Kategorie: Programmierung (von Pet - 29.05.2007 14:02)
Ich nutze:
CC2-Application-Board, OSOPT V3.0
Hallo allerseits,

ich arbeite gerade an einer Motorsteuerung. Ich habe hier schon viel hielfreiches über
Motorsteuerungen gelesen und in die Tat umgesetzt. Jetzt stellen sich mit trotzdem
noch ein paar Fragen, die ich hoffentlich nicht im Forum überlesen habe...

Der Motor hat ein 35:1 Getriebe und einen Imkrementalgeber mit 500 Schritten pro Umdrehung.
Jetzt soll der Motor ziemlich konstant (ca. +- 1%) mit einer Umdrehung pro Sekunde drehen.
Durch das Getriebe zähle ich 17500 (500*35) Impulse pro Umdrehung. Die soll mein Programm
pro Sekunde zählen und den P1H.0 entsprechend nachregeln. Funktioniert auch alles wunderbar,
nur die Genauigkeit haut nicht hin. Wenn ich die Impulse durch 17500 teile, verschluckt das
Programm immer mal wieder eine Umdrehung, so dass die Abweichung mit der Zeit recht groÃ? wird.
Beschaltet auf dem Applicationboard sind nur der P1H.0 fur das PWM-Signal und der P1H.3 für die
Pause-Funktion (Die Sache mit den Pullup-Widerständen trifft doch nur auf die Station zu oder?).

Evtl. könnt Ihr mir einen Tipp geben, wie ich eine höhere Genauigkeit erreichen kann?

Hier mien Code:


thread main
{
  //Variablendeklaration
  string e1,e2,s,t;
  long zeit;
  long impulse1,impulse2;
  int d,i;

  //Variableninitialisierung
  d = 123;
  impulse1 = 0;
  impulse2 = 0;
  zeit = system.timer();

  // Externes LCD initialisieren
  lcdext.init();
  lcdext.clear();

  //Grundeinstellung PWM Port 0
  plm.settimebase(0,plm.BASE_400);
  plm.setmode(0,0);
  plm.setperiod(0,192);
  plm.out(0,0);
 
  loop
  {
    //Ã?berlauf System-Timer abfangen
    if zeit < 0 zeit = system.timer() + (2147483647 - zeit);

    //Schleifenausführung exakt alle 1000 msek.
    if(system.timer()- zeit) == 1000
    {
      //Zähle Impulse von Inkrementalgeber auf Kanal A
      impulse1 = ports.getcount(0);

      //Summiere die bisherigen Motorumdrehungen
      impulse2 = impulse2 +impulse1 / 17500;

      // Zeit neu setzen
      zeit = system.timer();
     
      //Programm anhalten, wenn Schalter auf "EIN"
      if ports.get(11) == 0
      {
        //Motorstop und Anzeige blinkt
        plm.out(0,0);
        lcdext.clear();
        lcdext.goto(1,0);
        lcdext.print(" *** PAUSED ***");
        sleep 500;
        lcdext.clear();
        sleep 500;
      }
      else
      {
        //Regelung, wenn nicht 17500 Impulse pro Sekunde gezählt werden
        if (impulse1 < 17500) d = d + 1;
        else if (impulse1 > 17500) d = d - 1;
        plm.out(0,d);

        //Ausgabe der Werte auf externem LCD
        s = "";
        e1 = " Imp./s";
        t = "";
        e2 = " Umdreh.";
        str.putlong(s,impulse1);
        lcdext.goto(1,1);
        s = s + e1;
        lcdext.print(s);
        str.putlong(t,impulse2);
        lcdext.goto(2,0);
        t = t + e2;
        lcdext.print(t);
       
        //Anzeige des Regelparameters d
        lcdext.goto(2,12);
        lcdext.zahl4(d);
      }
    }
  }
}



Vielen Dank schon mal im Voraus,

GruÃ? Pet


    Antwort schreiben


Antworten:

Re: Genauigkeit Drehzalsteuerung via PWM (von nitraM - 29.05.2007 15:04)
    Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 29.05.2007 15:34)
        Re: Genauigkeit Drehzalsteuerung via PWM (von nitraM - 30.05.2007 7:33)
            Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 30.05.2007 11:44)
                Re: Genauigkeit Drehzalsteuerung via PWM (von nitraM - 30.05.2007 12:32)
                    Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 31.05.2007 17:15)
                       Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 1.06.2007 9:08)
                       Re: Genauigkeit Drehzalsteuerung via PWM (von nitraM - 1.06.2007 9:07)
                          Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 1.06.2007 11:26)
                             Re: Genauigkeit Drehzalsteuerung via PWM (von nitraM - 1.06.2007 13:11)
                                Re: Genauigkeit Drehzalsteuerung via PWM (von Pet - 1.06.2007 14:36)