Applicazioni E Realizzazioni Pratiche
Homemade Inverter "modulo DC/AC"

VISUALIZZA L'ALBUM

Pag: (167)  < ...  105   106   107   [108]   109   110   111  ...>    (Ultimo Msg)


FinePagina

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 13/04/2015 20:26:22

ok ok

unsigned int i;
for(i=INI_SEG_SIN;i onda_rif[i]= (unsigned int)((sin(PI/SEG_SEMI_SIN*i)*PICCO_MASSIMO_ELI+AROUND));


Quindi sarebbe qualcosa del genere?


es.. onda_rif[i]= (unsigned int)((sin(3,14/160*100)*700+0,5))=1374 giusto?

L'istruzione for viene eseguita in void loop? e poi la variabile onda_rif[i] viene richiamata nella ISR?



---------------
Il niente è impossibile finchè non ci provi!!!


 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 14/04/2015 00:03:06

Allora Bolle, ora che più o meno abbiamo chiarito la questione, vediamo di andare avanti.

Abbiamo detto che abbiamo 2 possibilità (costante o caotico), entrambe valide, ma per il momento optare una scelta corretta, almeno per me che non ho mai realizzato un inverter, non è possibile, quindi scegliamo una delle due con l'idea che se ci rendiamo conto che la scelta non è quella giusta prendiamo l'altra strada.

Poiché al momento abbiamo il codice già funzionante per quella costante, risparmiamo un Timer, abbiamo dei dati progettuali tutto sommato eccellenti, direi di continuare su questa strada, poi vedremo se è da cambiare, ok ?

Prima dei tuoi interventi eravamo arrivati alla messa in frequenza/fase con l'Enel e l'idea di Elettro, a mio avviso, sembra essere ottima, quindi in settimana vedo di andare avanti per vedere come si comporta il codice, come si adatta e con che velocità...

In ogni caso non mi hai risposto ad alcune domande, quindi le ripropongo:

- Perché non ti piace il 160 ? Ti sembra piccolo o grande ? Che valore preferisci ?

- Il disturbo che hai inserito nel programmino cosa fa ? Per i punti verdi ho l'impressione che hai reso incostante il tempo di campionamento, è esatto ? E per quelli rossi ?

-Cosa pensi, in generale, dei parametri progettuali iniziali, vale a dire freq. di funzionamento: tra 45 e 55 Hz, numero di campioni: 320 per sinusoide, uno ogni 62,5 microS, PWM a 16 KHz, risoluzione PWM: 1.000 valori ?
Ci sono parametri che ti sembrano squilibrati ?



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!






 

kekko.alchemi

Avatar
GigaWatt


Utente
Msg:5226

Stato:



Inviato il: 14/04/2015 00:38:02

CITAZIONE (NonSoloBolleDiAcqua, 14/04/2015 00:03:06 ) Discussione.php?55031252&107#MSG1650


Questo perchè se per caso il processore è impegnato a fare qualcosa che non può mollare (ovviamente tempi alti
ma cmq fattibili (possiamo anche calcolare questo limite))...questo tipo di algoritmo è in grado di riprende la situazione come se nulla fosse.

Come funzica l'arduino?

Per chi ha già realizzato l'inverter: che tempi avete utilizzato e che tempi hanno le letture di retroazione?


Allora, su questa cosa posso rispondere io! Non vedo grosse differenze fra i due sistemi, proprio perchè spesso sfugge la logica di funzionamento degli Atmel rispetto ai PIC.
Nei processori Atmel, non può succedere che il processore sia impegnato a fare qualcosa che non può mollare, e trascurare quindi i timer o gli incrementi PWM, questo "limite" quindi non esiste. Questo perchè in pochi sanno, che gli Atmel hanno delle tabelle di priorità con una particolare architettura, qui sotto ve ne allego una:

http://www.energialternativa.info/public/newforum/ForumEA/E/TabellaPriorita.JPG



Come si vede chiaramente l'interrupt del reset ha la priorità più alta di tutte, poi vengono le varie Interrupt esterne tutti i Timer e infine l'ADC. Il While Loop ovviamente ha la priorità più bassa in assoluto.
Cosa succede se durante una lettura ADC, o un operazione nel While Loop scatta un interrupt di un Timer con più alta priorità? Semplice, il processore salva in un registro la posizione (cioè l'operazione che stava compiendo) in un registro, esegue l'interrupt del timer con più alta priorità, e solo dopo aver finito torna alle operazioni del loop o con più bassa priorità. Nel while loop infatti non metto mai nessun calcolo o operazione, lo uso solamente per menù e display. I calcoli li delego alle interrupt, decidendo quindi io quale priorità dargli in base all'interrupt in cui li colloco. E' giustissimo quindi il concetto che ha usato BellaEli di gestire tutto tramite un timer senza delegare nulla al loop.

Quando arriveremo al feedback, che leggerà tramite ADC con una priorità più bassa dei timer (con velocità di lettura impostabile da prescaler), sarà fondamentale questa architettura perchè il processore non andrà mai a trovarsi in un posto casuale, proprio perchè fin quando le interrupt con priorità più alta non hanno finito non verrà svolto nessun altro compito, viceversa lascerà perdere tutto per correre a gestire quella.
Quindi in pratica, con questa architettura, non succede mai che il processore resta inchiodato a fare un operazione e trascura PWM e timer, o cmq un interrupt con più alta priorità.

Spero di essermi spiegato al meglio, in caso chiedete pure

Kekko



---------------
L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo.
 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 14/04/2015 02:57:18

Che lavorone che state facendo ... UAO andate forti

La proposta di Bolle non è per niente male e sicuramente fondata da problemi che forse incontreremo più avanti nella gestione del feedback.
Anche se come ha già messo in evidenza Kekko il micro gestito con gli interrupt ha una marcia in più.
Ricordiamo che già il codice di BellaEli sfrutta la possibilità di calcolo in più step ,alzando una flag alla fine del calcolo ,quindi nel confronto con un eventuale codice "Caotico" potremo recuperare 60microS nell'eventualità il calcolo termini a fine interrupt.

Cmq è una strada da non abbandonare ,anzi bisogna svilupparle entrambe .... Bolle vs BellaEli

E poi son curioso di sapere come il codice caotico possa gestire e mantenere costante la frequenza PWM in uscita (piccole variazioni sono ammesse ,purchè non si scenda nell'udibile ) usando il solo counter senza i timer interrupt che gestiscono in autonomia il pwm ... deve essere un capolavoro di codice


CITAZIONE (BellaEli, 14/04/2015 00:38:02 ) Discussione.php?55031252&108#MSG1654


Prima dei tuoi interventi eravamo arrivati alla messa in frequenza/fase con l'Enel e l'idea di Elettro, a mio avviso, sembra essere ottima, quindi in settimana vedo di andare avanti per vedere come si comporta il codice, come si adatta e con che velocità...

Pronto ....
Nel frattempo uso il malandato e striminzito codice con due timer ,senza feedback e con la messa in fase stupida (rallenta se in anticipo ,accellera se in ritardo) ... ma l'hardware è pronto per nuovi test (magari se vi adattate al mio PinOut )
http://www.energialternativa.info/public/newforum/ForumEA/E/20150413_161033.jpg
http://www.energialternativa.info/public/newforum/ForumEA/E/20150413_161156.jpg
Ciao
ElettroshockNow

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 04:11:44

CITAZIONE (inverter90, 14/04/2015 02:57:18 ) Discussione.php?55031252&108#MSG1653


L'istruzione for viene eseguita in void loop? e poi la variabile onda_rif[i] viene richiamata nella ISR?

Ciao,
ho modificato (indegnamente) il codice di BellaEli , il sorgente è in allegato...all'interno ci sono tutte le modifiche per indicizzare il vettore onda_rif...per il resto non cambia nulla.Non ho il compilatore , sto andando alla cieca, quindi non so se compila...chi può fare questa verifica?



Modificato da NonSoloBolleDiAcqua - 14/04/2015, 08:03:30


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 04:39:55

CITAZIONE (BellaEli, 14/04/2015 04:11:44 ) Discussione.php?55031252&108#MSG1654


Abbiamo detto che abbiamo 2 possibilità (costante o caotico), entrambe valide, ma per il momento optare una scelta corretta, almeno per me che non ho mai realizzato un inverter, non è possibile, quindi scegliamo una delle due con l'idea che se ci rendiamo conto che la scelta non è quella giusta prendiamo l'altra strada.

Poiché al momento abbiamo il codice già funzionante per quella costante, risparmiamo un Timer, abbiamo dei dati progettuali tutto sommato eccellenti, direi di continuare su questa strada, poi vedremo se è da cambiare, ok ?

Concordo su tutta la linea,su questo punto l'ho sempre pensata come te anche perchè la vedo come l'unica via da perseguire...ma se mi concedi di effettuare altre piccolissime varianti al tuo codice (ovviamente descrivendo anche le motivazioni), non cambierà assolutamente il suo funzionamento, ma, almeno per comela vedo io, sarà pronto ad affrontare eventuali 'cunette o dossi'. Quindi se l'obiettivo rimane quello di partorire, con tutti gli utenti del forum , un inverter, di elevata qualità per tutta la gente che vorrà costruirselo (cioè di pubblico dominio): io ci sto!!!
Accendiamo?

CITAZIONE (BellaEli, 14/04/2015 04:11:44 ) Discussione.php?55031252&108#MSG1654

- Perché non ti piace il 160 ? Ti sembra piccolo o grande ? Che valore preferisci ?

Non è che non mi piace...dipendesse da me lo farei decidere al processore...è questo l'approccio che tento di comunicare...è il sw che deve decidere. Cmq visto dalla simulazione apparentemente sembra alto, probabilmente si può scendere e la precisione rimarrà praticamente la stessa. Non hai anche tu la stessa sensazione?

CITAZIONE (BellaEli, 14/04/2015 05:30:33 ) Discussione.php?55031252&108#MSG1654

-Cosa pensi, in generale, dei parametri progettuali iniziali, vale a dire freq. di funzionamento: tra 45 e 55 Hz, numero di campioni: 320 per sinusoide, uno ogni 62,5 microS, PWM a 16 KHz, risoluzione PWM: 1.000 valori ?
Ci sono parametri che ti sembrano squilibrati ?

Diciamo che ho pochi elementi per capire...dipende dal processore...la risposta sui tempi ce la potrebbe dare kekko che scrive:

CITAZIONE
Quando arriveremo al feedback, che leggerà tramite ADC con una priorità più bassa dei timer (con velocità di lettura impostabile da prescaler)

ma occorre sapere i tempi minimi e massimi della lettura dell'ADC...senza quelli si va a braccio.



Modificato da NonSoloBolleDiAcqua - 14/04/2015, 05:37:25


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 05:30:33

CITAZIONE (ElettroshockNow, 14/04/2015 04:39:55 ) Discussione.php?55031252&108#MSG1656

Bolle vs BellaEli

continuo a vedere il mio intervento come fondazioni esterne al progetto...se e sempre se la struttura traballasse sarà tutto pronto per inserire un ulteriore trave di sostegno!


CITAZIONE (ElettroshockNow, 14/04/2015 04:39:55 ) Discussione.php?55031252&108#MSG1656
il codice caotico

il codice caotico è solo l'estremizzazione dell'apparente perdita di controllo dei tempi...l'ho estremizzato nel tentativo di far vedere che esiste un altro approccio che non è sequenziale come si è abituati nella programmazione classica tradizionale...se l'universo procede in modo caotico...ci sarà pure un motivo!


CITAZIONE (ElettroshockNow, 14/04/2015 04:39:55 ) Discussione.php?55031252&108#MSG1656
usando il solo counter senza i timer interrupt che gestiscono in autonomia il pwm ... deve essere un capolavoro di codice ;
)

Finalmente...è proprio vero...quando il gioco diventa duro...
No,non ho mai detto questa cosa. Ho detto : il counter ( cioè il tempo del processore) la fa da padrone mentre gli interrupt ( o se vuoi chiamarli anche timer) sono al suo servizio per il semplice motivo che non è detto che riescono a garantire i tempi a loro dedicati.

CITAZIONE (ElettroshockNow, 14/04/2015 04:39:55 ) Discussione.php?55031252&108#MSG1656
Pronto ....

ho paura a farti questa domanda...ma ...hai una scheda tutta pronta dove è possibile fare delle prove?



Modificato da NonSoloBolleDiAcqua - 14/04/2015, 05:41:38


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 14/04/2015 06:36:15

CITAZIONE (NonSoloBolleDiAcqua, 14/04/2015 05:30:33 ) Discussione.php?55031252&108#MSG1659


Finalmente...è proprio vero...quando il
gioco diventa duro...
No,non ho mai detto questa cosa. Ho detto : il counter ( cioè il tempo del processore) la fa da padrone mentre gli interrupt ( o se vuoi chiamarli anche timer) sono al suo servizio per il semplice motivo che non è detto che riescono a garantire i tempi a loro dedicati.


Ok .. chiaro .
Pwm generato dal timer1 ,ma variando il duty misurando il tempo trascorso a fine calcolo con il counter.

Se è cosi' è semplice e geniale

CITAZIONE (NonSoloBolleDiAcqua, 14/04/2015 05:30:33 ) Discussione.php?55031252&108#MSG1659

ho paura a farti questa domanda...ma ...hai una scheda tutta pronta dove è possibile fare delle prove?


Si ... l'hardware è pronto anche ad accettare nuovi firmware,l'importante è mantenere il mio stesso pinout ,altrimenti divento matto a modificare i codici.

Per il compilatore .. è gratuito e scaricabile dal sito Arduino.
Quando ci rincontriamo ti porto un'altro arduino

 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 14/04/2015 07:16:13

WOOOOOO che capolavoro!!! Ma perche solo 2 driver?



Immagine Allegata: 20150413_161033.jpg
 
ForumEA/E/20150413_161033_1.jpg



---------------
Il niente è impossibile finchè non ci provi!!!


 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 14/04/2015 07:17:14

Ora compila bene

Scarica allegato

ForumEA_E_ForumEA-E-InverterB.ino ( Numero download: 212 )



---------------
Il niente è impossibile finchè non ci provi!!!


 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 08:03:40

bene ,bravo, mi ero perso un underscore ...elimino il codice sopra.



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 14/04/2015 08:11:50

CITAZIONE (inverter90, 14/04/2015 08:03:40 ) Discussione.php?55031252&108#MSG1661

Ma perche solo 2 driver?

Nel mio inverter genero l'alternata con un solo mezzo ponte in uscita alimentandolo a 310V duali.
Come soluzione è valida ,ma avrà bisogno di uno stadio Step Up che elevi la tensione da xxV a 310 Duali.

Se invece farai un singolo stadio con trasformatore elevatore devi avere 4 finali .
Stesso discorso se crei lo stadio Elevatore in alimentazione singola.

Vabbè alla fine cambia poco a livello software ,l'importante è avere anche le uscite in onda quadra (in teoria se ne potrebbe fare a meno )

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 08:15:03

CITAZIONE (ElettroshockNow, 14/04/2015 08:03:40 ) Discussione.php?55031252&108#MSG1660


Ok .. chiaro .

Se è cosi' è semplice e geniale

sono un ragazzo semplice e partorisco solo cose semplici...però devo dire un'altra cosa...ora è presto...poi non la dico altrimenti Eli mi spara una ventina di domande...ma prometto che nel corso dello sviluppo la tirerò fuori...per ora è veramente ininfluente.

CITAZIONE (ElettroshockNow, 14/04/2015 08:03:40 ) Discussione.php?55031252&108#MSG1660

Si ... l'hardware è pronto anche ad accettare nuovi firmware,l'importante è mantenere il mio stesso pinout ,altrimenti divento matto a modificare i codici.

Giusto, si deve avere un codice unico e per far questo propongo questa cosa: #include "chisono.h" con presenza di #ifdef ... il codice 'principale' rimane uguale l'unica differenza è un commento diverso nell'include...in questo modo ognuno può configurarlo come vuole...massima libertà!
Senti ma hai già postato il progetto da qualche parte cioè schemi e componenti?


CITAZIONE (ElettroshockNow, 14/04/2015 08:03:40 ) Discussione.php?55031252&108#MSG1660

Quando ci rincontriamo ti porto un'altro arduino


ok...taccio!


PS:Per lo svolgimento io propongo una cosa, il capo del progetto sarà BellaEli, tutti gli altri possono scannarsi, dire quello che vogliono...ma l'ultima decisione spetta a lui.Accendiamo anche questa seconda lampadina?



Modificato da NonSoloBolleDiAcqua - 14/04/2015, 08:45:22


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 14/04/2015 08:43:53

CITAZIONE (ElettroshockNow, 14/04/2015 08:43:53 ) Discussione.php?55031252&108#MSG1665

...genero l'alternata con un solo mezzo ponte

giusto giustissimo...braccine corte!



Allego il file D....ho finito di eliminare tutte le costanti indicizzandole...ora non appare più da nessuna parte un 160 o dei valori scolpiti, ho sistemato anche il vettore onda ( notare il doppio uguale ) in modo da lasciare tutto inalterato.
Cmq basta variare la #define SEG_SEMI_SIN xxxx che tutto dovrebbe fungere esattamente allo stesso modo. Ora la SEG_SEMI_SIN è una costante, potrebbe diventare una variabile e si potrebbe verificare realmente quali sono le performance...o modificarla in fase di debbug...trimmer, pulsantini...etc...etc...etc.
Se Eli mi da l'ok effettuo altre inavvertibili varianti...ma garantisco che il suo algoritmo rimarrà immuatato...almeno spero!Faccine/Smileys_0039.gif

Scarica allegato

ForumEA-E-ForumEA_E_ForumEA-E-InverterD.ino ( Numero download: 193 )



Modificato da NonSoloBolleDiAcqua - 14/04/2015, 08:49:04


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripet...

 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 14/04/2015 09:00:03

CITAZIONE (NonSoloBolleDiAcqua, 14/04/2015 08:43:53 ) Discussione.php?55031252&108#MSG1666


PS:Per lo svolgimento io propongo una cosa, il capo del progetto sarà BellaEli, tutti gli altri possono scannarsi, dire quello che vogliono...ma l'ultima decisione spetta a lui.Accendiamo anche questa seconda lampadina?

Ottima scelta .. se a lui non dispiace .
Discussione nuova o si prosegue su questa ?

Stiamo a 108 pagine e 110000 Visite .... forse avremo bisogno di un motore di ricerca nella discussione

Per il debug c'è un problema .... Io non ho il feedback perchè nel mio caso verrà gestito dagli stepup.

 
 InizioPagina
 

Pag: (167)  < ...  105   106   107   [108]   109   110   111  ...>    (Ultimo Msg)

Versione Completa!

Home page     TOP100-SOLAR    Home page forum