- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Phasenanschnittsteuerung an Drehstrommotor

  1. #11
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    Praxistest und DIY Projekte
    Hallo

    Also wenn du eine dauerlösung willst würde ich einen Frequenzumformer verwenden.
    Dem kann ich nur zustimmen, weil
    Beim Asynchronmotor lässt sich durch reduzieren der Spannung die Kennlinie verschieben. Die Drehzahl geht dann unter Last runter.
    Nicht die Kennlinie, sondern der Arbeitspunkt auf der Kennlinie verschiebt sich, oder? Wenn du dabei durch weniger durchgeschaltete Halbwellen unter das sogenannte Sattelmoment kommst, bleibt der Motor stehen (oder läuft gar nicht erst an)

    gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Ich denke auch dass ist ein Asynchronmotor, sind ammeisten verbreitet.
    Synchronmotoren drehen sich synchron mit der netzfrequenz auch bei belastung, da verändert sich nur der schlupf.

    könnte man die f/3-Lösung mit Widerstand in reihe und Kondensator parrallel zur Motorwicklung die Amlitude nicht einwenig strecken?

  3. #13
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.10.2006
    Beiträge
    222
    Ja klar. Frequnzumformer ist bei sowas immer die beste Lösung, sind auch z.T. günstiger als ein Getriebe.

    und ob der Motor anläuft ist auch ne gute frage

  4. #14
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.10.2006
    Ort
    Saarland
    Beiträge
    390
    also ich probier da jetz mal aus.
    Ich habe gerade den Motor vom Brenner meiner Heizung ausgebaut, das ist einer mit Steinmetzschaltung.
    Die Ansteuerplatine ist auch schon fertig.
    Im Programm ist noch ein Fehler. Wird aber heute noch fertig.

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.01.2007
    Beiträge
    134
    Ich hatte mal einen Motor mit Kondensator per Phasenanschnitt ausprobiert, der hat aber nur zum brummen angefangen, immer stärker je grösser der Anschnitt war. Die Drehzahl änderte sich im Leerlauf aber nicht.

    Grüsse, Stefan

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.10.2006
    Ort
    Saarland
    Beiträge
    390
    Mist wo ist der Fehler?
    der Timer Interrupt kommt nicht
    Code:
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <stdlib.h>
    #include <stdint.h>
    #include <Stdio.h>
    #include "BinaryNr.h"
    
    
    #define F_CPU            1000000    // Interner Takt 1MHz
    #define Prescaler 8;                // Timer 1 Vorteiler
    #define startwert 65537-625;        // Zähler Startwert, 5ms 
    
    #define u8 unsigned char
    #define u16 unsigned int
    
    /* Variablen */
    u8 periode=0;
    
    /* INIT */
    void port_init(void){               // initialize ports 
      DDRC  = B00110000;                // PORTC 4 und 5 als Ausgang
    }
    
    void timer_start(int zeit){
      TIMSK |= (1 << TOIE1);            // Timer 1 Overflow Interrupt enable
      TCNT1  = 65537-zeit;              // 625 = 5ms;
    }
    
    //Analog-Comparator Interrupt Routine
    SIGNAL (ANA_COMP_vect){
       cli();
       periode++;
       if (periode==1){
         PORTC |= (1 << 5);             // einschalten 
         timer_start(625);              // 5ms warten 1/2 Halbwellen (Triggerimpuls Triac)
    	 ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==2){                 // 
         ACSR=B00001010;                // umschalten auf fallende Flanke
       }
       if (periode==3){                 // 
         ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==4){                 // 
         PORTC |= (1 << 5);             // einschalten 
         timer_start(625);              // 5ms warten 1/2 Halbwellen (Triggerimpuls Triac)
         ACSR=B00001010;                // umschalten auf fallende Flanke
       }
       if (periode==3){                 // 
         ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==2){                 // 
         ACSR=B00001010;                // umschalten auf fallende Flanke
    	 periode=0;
       }
       sei();                           // enable interrupts
    }
    
    
    //Timer Interrupt 
    SIGNAL (TIMER1_OVF_vect){           // Timer1 overflow nach 5ms
      PORTC &= ~(1 << 5);               // abschalten
    }
    
    
    /*********************/
    int main(){
      port_init();                      // Ports initialisieren
      ACSR=B00001010;                   // analog-Komparator fallende Flanke
      periode = 0;
      sei();                            // enable interrupts  
    
      for(;;){                          // tue nix Schleife
      }
    }

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.10.2006
    Ort
    Saarland
    Beiträge
    390
    OK
    hab: TCCR1B = B00000010; // Prescaler auf 8 stellen
    vergessen

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.10.2006
    Ort
    Saarland
    Beiträge
    390
    es läuft jetzt, aber der Motor macht merkwürdige Geräusche.
    hier der Code
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <stdlib.h>
    #include <stdint.h>
    #include <Stdio.h>
    #include "BinaryNr.h"
    
    
    #define F_CPU            1000000    // Interner Takt 1MHz
    #define Prescaler 8;                // Timer 1 Vorteiler
    #define startwert 65537-625;        // Zähler Startwert, 5ms 
    
    #define u8 unsigned char
    #define u16 unsigned int
    
    /* Variablen */
    u8 periode=0;
    
    /* INIT */
    void port_init(void){               // initialize ports 
      DDRC  = B00110000;                // PORTC 4 und 5 als Ausgang
    }
    
    void timer_start(int zeit){
      TIMSK |= (1 << TOIE1);            // Timer 1 Overflow Interrupt enable
      TCNT1  = 65537-zeit;              // 625 = 5ms;
    }
    
    //Analog-Comparator Interrupt Routine
    SIGNAL (ANA_COMP_vect){
       cli();
       periode++;
       if (periode==1){
         PORTC |= (1 << 5);             // einschalten 
         timer_start(1250);             // 10ms warten 1 Halbwelle (Triggerimpuls Triac)
    	 ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==2){                 // 
         ACSR=B00001010;                // umschalten auf fallende Flanke
       }
       if (periode==3){                 // 
         ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==4){                 // 
         PORTC |= (1 << 5);             // einschalten 
         timer_start(1250);             // 10 ms warten 1 Halbwelle (Triggerimpuls Triac)
         ACSR=B00001010;                // umschalten auf fallende Flanke
       }
       if (periode==5){                 // 
         ACSR=B00001011;                // umschalten auf steigende Flanke
       }
       if (periode==6){                 // 
         ACSR=B00001010;                // umschalten auf fallende Flanke
    	 periode=0;
       }
       sei();                           // enable interrupts
    }
    
    
    //Timer Interrupt 
    SIGNAL (TIMER1_OVF_vect){           // Timer1 overflow nach 5ms
      PORTC &= ~(1 << 5);               // abschalten
    }
    
    
    /*********************/
    int main(){
      port_init();                      // Ports initialisieren
    
      TCCR1B = B00000010;               // Prescaler auf 1024 stellen
      TIMSK |= (1 << TOIE1);            // Timer 1 Overflow Interrupt enable
      ACSR=B00001010;                   // analog-Komparator fallende Flanke
    
      sei();
      for(;;){                          // tue nix Schleife
      }
    }
    und hier ein Video vom Motor:
    http://www.stegem.de/Elektronik/motor/MOTOR.AVI

    Ich werde morgen vielleicht mal noch andere Motoren testen.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test