Vai al contenuto
PLC Forum


Sfasare di 120° delle tensioni.


morgan.106

Messaggi consigliati

Buongiorno vorrei dei consigli circa la possibilità di realizzare un circuito che funzioni come un sistema trifase ovvero con sfasamento di 120° su 3 tensioni. Basterebbero pochi volts perché ha scopi didattici.

Grazie.

Link al commento
Condividi su altri siti


Mi servono 3 tensioni sinusoidali a 50 hz che abbiano uno sfasamento tra loro di 120°. 

Queste tensioni non alimenteranno nessun carico. 

Praticamente un sistema trifase generato ad hoc.

 

Link al commento
Condividi su altri siti

O ti procuri un alternatore trifase o le generi sintetizzandole con 3 DA_C.

Creare u a rete sfasatrice a 120° con componenti LCR non è ne semplice ne facile.

Link al commento
Condividi su altri siti

Michele va bene se gli bastan onde quadre, se le vuole sinusoidali deve filtrarle ed ilsincronismo di fase si perde.

Comunque deciderà poi Morgan.

Link al commento
Condividi su altri siti

Visto che :

Quote

 

 Basterebbero pochi volts perché ha scopi didattici.

Grazie.

 

 forse basta un motorino da HD , azionato da un altro , o proprio a manovella :smile: .

Link al commento
Condividi su altri siti

Con una piccola mcu e 3 uscite analogiche si potrebbe generare un segnale trifase a 50/60Hz.

La funzione sarebbe molto semplice

 

R=sen(angolo)

S=sen(angolo+sfasamento)

T=sen(angolo+2*sfasamento)

 

40d6c985f2f94d544869c96baee3a6b0.JPG

 

L'angolo sarà giro e avrà un tempo di rivoluzione di 20ms, lo sfasamento sarà di 120°

 

Le uscite analogiche, ammettiamo a 10 bit =1024 impulsi, varranno 

 

VuR=Vm+Vm*YR

VuS=Vm+Vm*YS

VuT=Vm+Vm*YT

 

Fissando Vm=512, si avrà

 

beaa6c53202d6f8bac69e1b8832cd218.JPG

 

Che ne dite?

 

 

 

 

Link al commento
Condividi su altri siti

Lo schema....immaginiamo di usare un pic 12F1572 e sfruttare l'oscillatore interno.

A questo punto lo schema sarebbe composto dal solo pic e un condensatore di bypass fra i pin Vdd-Vss, Al max si può aggiungere per ogni uscita un buffer realizzato con un LM324...e qualche componentino di contorno.

Link al commento
Condividi su altri siti

Infatti avevo scritto

Quote

O ti procuri un alternatore trifase o le generi sintetizzandole con 3 DA_C.

Stefano, lo feci con 2 DA un contatore e 2 prom per generare seno e coseno per generare figure circolari. A quel tempo (1974) i micro aveva fatto la loro comparsa da pochissimi anni, eran grossi, necessitavano di 3 alimentazioni e per programamrli....ci volevan tanti moccoli.

IL 12F1572 ha integratia nche i D/A?

 

Comunque ancora oggi chi non vuole o non sa usare un micro può farlo scrivendoi dati su di un eprom.

 

Puoi farlo tranquillamente anche con arduino; l'ho provato, per un giochino, il mese scorso usando un DA da 8bit con interfaccia I2C

Link al commento
Condividi su altri siti

il 12f1572 ha un solo dac a 5bit, quindi è possibile sintetizzare una sola sinusoide in 32 punti. Per avere più DAC  è necessario salire verso i 18FK...

Esistono comunque vari altri modi, dalla maialata alla raffinatezza per riuscire nello scopo anche con un chip a 8 pin....magari usando 3 dei 4 pwm a 16bit  disponibili

 

 

 

 

 

 

Link al commento
Condividi su altri siti

io propongo un motore stellare a sei cilindri, basta accoppiare un opportuno convertitore a tre dei cilindri sfasati come desiderato, per esempio un misuratore di pressione da convertire in tensione. il segnale non è in grado di pilotare alcunchè, come richiesto, e il gioco è fatto. Unico piccolo inconveniente la leggera rumorosità.

:superlol::superlol:

 

meno complesso dei pic di cicala

Link al commento
Condividi su altri siti

Prima degli schemi...servono ancora un po' di conti :)

 

con un pwm a 5kHz si dovrebbe riuscire....è ciò significa che basta un pic a 8 pin e poco altro....ma per le prove bisogna aspettare il fine settimana (piovoso :superlol:)

 

516c5c0f08cc5a92e4ae68dcccfe955e.JPG

...

Link al commento
Condividi su altri siti

In effetti è quello che si fa con gli inverter per generare la tensione 3 fase.

 

Però se si vuole una sinusoide pura bisognerà filtrare pesantemente il PWM e questo comporteà inevitabilmente un leggero sfasamento nell'intorno dei 120° relativi tra fase e fase.

A questo punto tanto vale usare il circuito proposto da Michele, che è molto semplice.

 

Io con arduino ho sintetizzato una sisnusoide sino a circa 600 Hz usando un dac 8 bits con I2C.

Se e quando avrò un po' di tempo in cui non avrò niente di meglio da fare, proverò con DAC multiplo da 12 bits in SPI.

Per un  lavativo Hw come il sottoscritto, arduino è una manna perchè mi permette di provare senza dover costruire niente, basta un una bread board

Link al commento
Condividi su altri siti

Noooooooooooooooooooooooooo...ancora un circuito di Crapella.....troppo anni 80 per i miei gusti......

......meglio Arduino .

 

Diciamo che se lo scopo è quello di generare un segnale in tensione non a bassa impedenza, il filtro non sarebbe poi così pesante....

 

Link al commento
Condividi su altri siti

//******************************************************************************
// Project :            Generatore trifase
// Author  :            S.T. 4 PLC Forum
// Date    :            12/10/2016
// MCU     :            PIC12F1572 - INT.OSC. 32MHz
// Compiler:            MikroC PRO for PIC V6.6.2
//******************************************************************************
//****** TAGs ******************************************************************

         unsigned int       Angolo;
         unsigned int       Offset=127;
         short int          coeffR[30],coeffS[30],coeffT[30];
         float              pi=3.1416;
//******************************************************************************
void main() {
//******************************************************************************
// Calcolo Coefficienti
//******************************************************************************
   for (Angolo=0 ; Angolo<360 ;  Angolo=Angolo+12);
   {
    coeffR[Angolo]=(Offset+(Offset*(short)sin((float)((Angolo*pi)/180))));
    coeffS[Angolo]=(Offset+(Offset*(short)sin((float)(((120+Angolo)*pi)/180))));
    coeffT[Angolo]=(Offset+(Offset*(short)sin((float)(((240+Angolo)*pi)/180))));
   }
//----TIMER[0] INIT ------------------------------------------------------------
       TMR0      = 89;
       INTCON.TMR0IF = 0;
       Angolo=0;
//******************************************************************************
// Registri configurazione 16-BIT PWM MODULE
//******************************************************************************
//----RA5 - PWM1 ---------------------------------------------------------------
       PWM1CON   = 0b11000000;    // module en, output en, norm pol, standard m.
       PWM1CLKCON= 0b00100001;    // HFINTOSC clock, Prescaler /4
       PWM1PR    = 0x3FF;         // PWM PERIOD COUNT REGISTER
       PWM1PH    = 0x3FF;         // PWM PHASE  COUNT REGISTER
//----RA4 - PWM2 ---------------------------------------------------------------
       PWM2CON   = 0b11000000;    // module en, output en, norm pol, standard m.
       PWM2CLKCON= 0b00100001;    // HFINTOSC clock, Prescaler /4
       PWM2PR    = 0x3FF;         // PWM PERIOD COUNT REGISTER
       PWM2PH    = 0x3FF;         // PWM PHASE  COUNT REGISTER
//----RA2 - PWM3 ---------------------------------------------------------------
       PWM3CON   = 0b11000000;    // module en, output en, norm pol, standard m.
       PWM3CLKCON= 0b00100001;    // HFINTOSC clock, no prescaler
       PWM3PR    = 0x3FF;         // PWM PERIOD COUNT REGISTER
       PWM3PH    = 0x3FF;         // PWM PHASE  COUNT REGISTER
//----PWM MIRROR REGISTERS -----------------------------------------------------
       PWMLD     = 0x000;         // PWM LOAD SIMULTANEOUSLY REGISTER   
}
//##############################################################################
//                        Interrupt Routine
//##############################################################################
void interrupt()
 {
    if (INTCON.TMR0IF)
    {
     PWM1DC = coeffR[Angolo];
     PWM2DC = coeffS[Angolo];
     PWM3DC = coeffT[Angolo];
     PWMLD  =0x7;
     if (Angolo<360)
     {
      Angolo=Angolo+12;
     }
     if (Angolo>=360)Angolo=0;
     TMR0   =89 ;
     INTCON.TMR0IF = 0;
    }
 }

108f6c7e8711b87b2a5567df975a7354.JPG

82f8eb431222e90aed7e5b25dd909d69.JPG

 

tre PWM generano le tre sinusoidi sfasate di 120° composte ognuna di 30 campioni ampi 12°....

 

Più di così..il Pic..cino....non ce la fa :superlol:

 

La pratica...alla prossima puntata...con le misure

 

Link al commento
Condividi su altri siti

Una prova veloce.....

 

c5a48c9e04f202bd54dbe14d4421ca37.JPG

 

a559b98cc2a749732cd4e38a75628d36.JPG

 

Segnali prelevati direttamente dalle uscite PWM del pic utilizzate a 10bit

Al momento come "filtro" ho usato un condensatore da 100nF ed il circuito è composto dal solo pic e i tre condensatori.

 

C'è da lavorare ancora un po' sulla frequenza e magari anche sul filtro (aggiungendo una resistenza) ma il risultato non è poi così male e in più...sono riuscito ad ottimizzare la memoria

 

56ec88f0ef74acada39e3825f1281d45.JPG

 

Magari farò una foto delle 3 sinusoidi in contemporanea per rendere meglio l'idea :thumb_yello:

 

Link al commento
Condividi su altri siti

Senza carico sembran abbastanza buone.

Però in tutto questa attività frenetica manca il parere ed il pensiero dell'autore della discussione.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...