Stránka 76 z 86

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:14
od robokop
Bf co jsem mel, pokud vim zadny snimac nemela

Chyba v mych vypoctech tech zasahu je 2x vic protoze jsou dve pulvlny v periode

To uz sakra musi stacit
62 zasahu v kazde otacce

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:15
od robokop
Jj uz jsem si vsimnul sve chyby

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:20
od Zdenek Valter
turbyho píše:
Zdenek Valter píše:.......
Jo přesně tak jsem to myslel.
V praxi totiz 100 regulacnich zasahu za 1s u techto motoru staci.

A pokud mi neverite, zajdete treba namatkou do koupelny/pradelny a zkuste si pustit pracku (pokud ma jeste univerzalni motor). To je priklad regulace univerzalniho motoru s PID regulaci triakem. Cuka vam snad buben pri prani? :D
Jenže při praní jsou ty otáčky dané, takže se to pro tento stav dá poměrně snadno nastavit aby necukalo. ;-)

Nicméně zanechme planého povídání - Triaková regulace může být dostatečná, ale chce to vyzkoušet.
Pokud se ukáže, že ne - dá se tím přeci řídit i PWM ne ;-)

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:26
od turbyho
Zdenek Valter píše: No to je právě o tom, že původně tohle vlákno vzniklo k fázové regulaci čínských soustruhů s DC motorem s permanentními magnety.
Desky mají spolehlivost jakou mají s principem měření otáček z komutace.
Možnou alternativou se nabízelo i použití pračkového motoru, kterých je hodně a které jsou dostupné za minimální cenu.
Já osobně nejsem příznivec náhrady za pračkový motor v soustruhu, protože při jeho odpojení od napájení je principieiní problém ho zabrzdit (což u původního motoru řešilo relé přepnutím kotvy na brzdný odpor).

Jako vlastník těhle strojků bych ji rád nahradil lepší alternativou - například výměnou té původní za PWM.
Proto jsme rád za každou snahu která ukazuje nějakou cestu a má výsledky.
Diskutuje se tu v posledni dobe ale o univerzalnim motoru z pracky coz je primarne AC i kdyz jde napajet i DC.

PWM regulace DC motoru s PID je ale v principu podobny problem. A generovat PWM umi kazdy Atmel v libovolnem Arduino z principu neb ma prislusne hw PWM. Tudiz privedes na nejaky pin snimac otacek a nejsnadneji pomoci vyse zminene PID knihovny budes generovat PWM do nejakeho vhodneho driveru (MOSFET, IGBT). Pak staci pridat par tlacitek a display aby jsi mohl nastavit pozadovane otacky.

Ono totiz z toho textu neni uplne jasne co presne chces a co jsi a nejsi schopen vymyslet a vyrobit. Tedy jestli to umis postavit a jen nevis jak nebo jestli to chces cele koupit.

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:30
od turbyho
Zdenek Valter píše:
turbyho píše:
Zdenek Valter píše:.......
Jo přesně tak jsem to myslel.
V praxi totiz 100 regulacnich zasahu za 1s u techto motoru staci.

A pokud mi neverite, zajdete treba namatkou do koupelny/pradelny a zkuste si pustit pracku (pokud ma jeste univerzalni motor). To je priklad regulace univerzalniho motoru s PID regulaci triakem. Cuka vam snad buben pri prani? :D
Jenže při praní jsou ty otáčky dané, takže se to pro tento stav dá poměrně snadno nastavit aby necukalo. ;-)

Nicméně zanechme planého povídání - Triaková regulace může být dostatečná, ale chce to vyzkoušet.
Pokud se ukáže, že ne - dá se tím přeci řídit i PWM ne ;-)
Triakovou regulaci to nejde. Ta funguje pouze na AC.

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:31
od turbyho
Zdenek Valter píše: Jenže při praní jsou ty otáčky dané, takže se to pro tento stav dá poměrně snadno nastavit aby necukalo. ;-)
tady je uz tezke cokoli dodat... :roll:

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:37
od turbyho
robokop píše:Bf co jsem mel, pokud vim zadny snimac nemela
Mela to tak BF20 Vario. Ale je to sumak, nebylo to zase rizene triakem pokud vim. Zminil jsem to jen kvuli tomu snimaci otacek. :D

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 12:53
od Zdenek Valter
turbyho píše:
Zdenek Valter píše: ...........
Jako vlastník těhle strojků bych ji rád nahradil lepší alternativou - například výměnou té původní za PWM.
Proto jsme rád za každou snahu která ukazuje nějakou cestu a má výsledky.
Diskutuje se tu v posledni dobe ale o univerzalnim motoru z pracky coz je primarne AC i kdyz jde napajet i DC.

PWM regulace DC motoru s PID je ale v principu podobny problem. A generovat PWM umi kazdy Atmel z principu neb ma prislusne hw PWM. Tudiz privedes na nejaky pin snimac otacek a nejsnadneji pomoci vyse zminene PID knihovny budes generovat PWM do nejakeho vhodneho driveru (MOSFET, IGBT). Pak staci pridat par tlacitek a display aby jsi mohl nastavit pozadovane otacky.

Ono totiz z toho textu neni uplne jasne co presne chces a co jsi a nejsi schopen vymyslet a vyrobit. Tedy jestli to umis postavit a jen nevis jak nebo jestli to chces cele koupit.
Ale já se ale mohu domnívat, že je ale o tom je pávě DF že se občas domněnky diskutujících nepotkají. ;-)

Zkusím ještě jednou a lépe
- v mini soustruzích je v drtivé většině fázová regulace s řízeným usměrňovačem, které vždy řídí DC motor s cizím buzením - ne tedy obecný motor.
( v nových strojích se objevuje i regulace PWM)

Rád bych aby vznikla poměrně levná náhrada vlastního regulátoru nejlépe s PWM ;-) s cenou cca do 1000 Kč, který nahradí původní dejme tomu i doděláním snímače otáček*.
Bylo by totiž fajn zachovat i původní zbylé zapojení - stop tlačítko, relé které spíná brzdu atd.
* ještě k těm otáčkám - na původní motory může být trochu komplikace přidat snímání otáček - zde je otázka zda v tom případě nesnímat přímo otáčky vřetene.

No a co se týče toho vymýšlení - nejsem schopen to vymyslet - nemám na to kapacity a ani zkušenosti. Pokud někdo dá návod asi bych byl schopen to postavit, ale nejraději bych si to koupil buď jako stavebnici (zde budu mít lepší pocit, že jsem si něco postavil ;-), nebo jako hotový regulátor, který si jen v mašině vyměním.

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:05
od turbyho
Zdenek Valter píše: Zkusím ještě jednou a lépe
- v mini soustruzích je v drtivé většině fázová regulace s řízeným usměrňovačem, které vždy řídí DC motor s cizím buzením - ne tedy obecný motor.
( v nových strojích se objevuje i regulace PWM)

Rád bych aby vznikla poměrně levná náhrada vlastního regulátoru nejlépe s PWM ;-) s cenou cca do 1000 Kč, který nahradí původní dejme tomu i doděláním snímače otáček*.
Bylo by totiž fajn zachovat i původní zbylé zapojení - stop tlačítko, relé které spíná brzdu atd.
* ještě k těm otáčkám - na původní motory může být trochu komplikace přidat snímání otáček - zde je otázka zda v tom případě nesnímat přímo otáčky vřetene.

No a co se týče toho vymýšlení - nejsem schopen to vymyslet - nemám na to kapacity a ani zkušenosti. Pokud někdo dá návod asi bych byl schopen to postavit, ale nejraději bych si to koupil buď jako stavebnici (zde budu mít lepší pocit, že jsem si něco postavil ;-), nebo jako hotový regulátor, který si jen v mašině vyměním.
Mas schema zapojeni?

Snimani otacek za prevodovkou je prave ten problem ktery jsem zminoval u BF20 Vario. Znepresni to regulaci jelikoz budes u prevodu do pomala snimat mene pulzu na otacku motoru. Optimalni je pro dobrou regulaci snimat otacky na motoru a cim vice "pulzu" na otacku tim lepe (samozrejme s rozumem). U soustruhu by mohlo jit navrtat remenici motoru, osadit male magnety (treba 2mm) a snimat indukcnim senzorem. 8-16 magnetu by mohlo stacit. Dobre snimani otacek je pro dobre rizeni skoro to nejdulezitejsi.

Dobre by bylo udelat podruzne mereni otacek vretene pro snadnejsi nastaveni pozadovanych otacek. Zejmena pokud tam je nejaka prevodovka.

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:13
od Zdenek Valter
turbyho píše: Mas schema zapojeni?
Jsou tady ve vláknu ;-) O.K. sám je pohledám.
turbyho píše:Snimani otacek za prevodovkou je prave ten problem ktery jsem zminoval u BF20 Vario. Znepresni to regulaci jelikoz budes u prevodu do pomala snimat mene pulzu na otacku motoru. Optimalni je pro dobrou regulaci snimat otacky na motoru a cim vice "pulzu" na otacku tim lepe (samozrejme s rozumem). U soustruhu by mohlo jit navrtat remenici motoru, osadit male magnety a snimat indukcnim senzorem. 8-16 magnetu by mohlo stacit. Dobre snimani otacek je pro dobre rizeni skoro to nejdulezitejsi.

Dobre by bylo udelat taky ciste informativni podruzne mereni otacek vretene.
No já třeba na Asistu mám clonku s osmi otvory pro snímání otáček vřetene pro otáčkoměr a nebyl by určitě problém ji udělat s více otvory - třeba 16.
Co se týče motoru - vidím asi nejjednodušší cestu dát clonku na řemenici, ale nejsem si teď jist, jestli je tam místo.

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:20
od turbyho
Jestli je tam remenice jednodussi je ji sundat, dat na delicku a navrtat par der a do nich vlepit magnety.

Plechove clonky me vzdy mirne desi kdyz se zacnou tocit :D

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:27
od Zdenek Valter
turbyho píše:Jestli je tam remenice jednodussi je ji sundat, dat na delicku a navrtat par der a do nich vlepit magnety.
No toho se děsím já, jak budu do 12 mm těla řemenice vrtat díry - BTW. jakě jsou nejmenší magnety?
turbyho píše:Plechove clonky me vzdy mirne desi kdyz se zacnou tocit :D
Podle mne jsou i jednodušší na výrobu - a mohou přesahovat i průměr řenenice. ;-)

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:37
od turbyho
ja myslim ze i 1mm se da, treba tady

https://www.unimagnet.cz/53-kotouce-male

jinak je to sumak jak se to udela mechanicky

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:38
od atlan
enkoder s 100imp do 6000ot/min stoji do 20E, otazka je ci to uz nebude vela tolko impulzov

Tak ak sa niekto nudi moze sa stym hrat dalej

Kód: Vybrat vše

#include <PID_v1.h>


   double motorRPM=0;
   double motorPWR=0;
   double   setMotorRPMtmp;
  // double consKp;
  // double consKi;
  // double consKd;

    volatile double consKp = 0.025, consKi = 0.025, consKd = 0.00025; // doladit dle dynamickych vlastnosti stroje
    PID motorPID(&motorRPM, &motorPWR, &setMotorRPMtmp, consKp, consKi, consKd, DIRECT);


    void setup()
    {
         attachInterrupt(digitalPinToInterrupt(motorFREQPin), motorFREQ, RISING); // FALLING RISING
         attachInterrupt(digitalPinToInterrupt(zerroCrossingPin), zerroCrossing, FALLING); // FALLING RISING
         motorPID.SetMode(AUTOMATIC);
         motorPID.SetOutputLimits(0, 255);
         motorPID.SetSampleTime(100); // 200ms default
         Timer1.initialize(motorPeriodTimer);
       
     

    }

    void loop() {

            motorRPM = 2000; // dle motoru - 0-24000

       // obsluha motoru

       noInterrupts();
        motorPID.SetTunings(consKp, consKi, consKd);
       motorPID.Compute();
         interrupts();
    }

    void motorFREQ() {

      noInterrupts();

      motorLastFREQtime = micros();
      dTime = motorLastFREQtime - motorTime;
      motorTime = motorTime + dTime;
      motorRPMtmp = ((1000000 / dTime) * 60) / 8;

      interrupts();
    }

    void zerroCrossing() {

      noInterrupts();

      if (motorPWR == 0) {
        digitalWrite(motorACPin, LOW);
        motorState = B00000000;
      }
      else if (motorPWR == 255) {
        digitalWrite(motorACPin, HIGH);
        motorState = B00000000;
      } else {
        int pwr = ( 8000 - ((8000 / 255) * motorPWR)  );
        Timer1.attachInterrupt(motorTickPWR, pwr);
        motorState = B00000001;
      }

      interrupts();
    }

    void motorTickPWR ()
    {
      noInterrupts();

      Timer1.stop();

      if (motorState == B00000001) {
        digitalWrite(motorACPin, HIGH);
        int i = 100;
        while (i--) {
          __asm__("nop\n\t");
        }
        digitalWrite(motorACPin, LOW);
      }
      interrupts();
    }

Re: Elektronický regulátor otáček minisoustruhu

Napsal: 6. 1. 2017, 1:41
od turbyho
atlan píše:Tak ak sa niekto nudi moze sa stym hrat dalej

Kód: Vybrat vše

#include <PID_v1.h>


   double motorRPM=0;
   double motorPWR=0;
   double   setMotorRPMtmp;
  // double consKp;
  // double consKi;
  // double consKd;

    volatile double consKp = 0.025, consKi = 0.025, consKd = 0.00025; // doladit dle dynamickych vlastnosti stroje
    PID motorPID(&motorRPM, &motorPWR, &setMotorRPMtmp, consKp, consKi, consKd, DIRECT);


    void setup()
    {
         attachInterrupt(digitalPinToInterrupt(motorFREQPin), motorFREQ, RISING); // FALLING RISING
         attachInterrupt(digitalPinToInterrupt(zerroCrossingPin), zerroCrossing, FALLING); // FALLING RISING
         motorPID.SetMode(AUTOMATIC);
         motorPID.SetOutputLimits(0, 255);
         motorPID.SetSampleTime(100); // 200ms default
         Timer1.initialize(motorPeriodTimer);
       
     

    }

    void loop() {

            motorRPM = 2000; // dle motoru - 0-24000

       // obsluha motoru

       noInterrupts();
        motorPID.SetTunings(consKp, consKi, consKd);
       motorPID.Compute();
         interrupts();
    }

    void motorFREQ() {

      noInterrupts();

      motorLastFREQtime = micros();
      dTime = motorLastFREQtime - motorTime;
      motorTime = motorTime + dTime;
      motorRPMtmp = ((1000000 / dTime) * 60) / 8;

      interrupts();
    }

    void zerroCrossing() {

      noInterrupts();

      if (motorPWR == 0) {
        digitalWrite(motorACPin, LOW);
        motorState = B00000000;
      }
      else if (motorPWR == 255) {
        digitalWrite(motorACPin, HIGH);
        motorState = B00000000;
      } else {
        int pwr = ( 8000 - ((8000 / 255) * motorPWR)  );
        Timer1.attachInterrupt(motorTickPWR, pwr);
        motorState = B00000001;
      }

      interrupts();
    }

    void motorTickPWR ()
    {
      noInterrupts();

      Timer1.stop();

      if (motorState == B00000001) {
        digitalWrite(motorACPin, HIGH);
        int i = 100;
        while (i--) {
          __asm__("nop\n\t");
        }
        digitalWrite(motorACPin, LOW);
      }
      interrupts();
    }
A chodi? Jeste je treba vetsinou doladit konstanty PID a upravit pocet pulzu na otacku ze snimace. Tohle je pro 8 pulzu na otacku. Takze treba zmenou 8 za 16 nastavis 16 pulzu na otacku ze snimace.

motorRPMtmp = ((1000000 / dTime) * 60) / 8;

Prackovy motor toci az 24000ot/min., tak bacha s tema snimacema. Ten Atmel taky ma nejakou limitni rychlost pri danem krystalu. Je to treba spocitat.