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

VISUALIZZA L'ALBUM

Pag: (167)  < ...  117   118   119   [120]   121   122   123  ...>    (Ultimo Msg)


FinePagina

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 23/04/2015 06:51:36


CITAZIONE

Eccomi ... caricato oggi pom su youtube ... poi dritto a vedere Avengers con i nani ..


Come al solito sai stupirci sempre di piu!!Faccine/Smileys_0006.gif



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


 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 23/04/2015 06:58:01


CITAZIONE

Ora però dobbiamo prendere una decisione: andiamo avanti o continuiamo ad ottimizzare ?


Si non dovrebbe essere sbagliata nessuna delle due ipotesi,(so che non riesco a contribuire con soluzioni ecc.. ) ma se andiamo avanti magari le ottimizzazioni verrano da se in un secondo momento.. Io direi di stabillire un sistema per il sincro, perche ancora non ho capito come dobbiamo fare..Che ne dite? Metodo Elettro sembra fantastico..Elettro nel dettaglio quanti ms impega per mettersi in fase?



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


 

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 23/04/2015 08:22:16

Grazie a tutti è un onore far parte di questa squadra.


CITAZIONE

Elettro nel dettaglio quanti ms impega per mettersi in fase?

Nel peggior delle ipotesi 2 Sec,poi una volta in fase si riduce a 0.

Forse non c'è bisogno di questa precisione di fase ,ma son due righette e non ci costano nulla e un giorno quando bisognerà fare il cambio di sorgente lo faremo con un semplice relè senza la paura di una doppia semionda

Per rendere più chiaro la routine di messa in fase descrivo il mio pwm.
La mia onda sinusoidale è composta da 200 campionamenti totali.
L'indice di questi campionamenti l'ho chiamato pos (posizione).
Con indice 0 (pos 0) mi trovo ad inizio sinusoide ,a 50 mi trovo nel picco superiore ,a 100 all'inversione di polarità e 150 nel picco inferiore.

Quindi cosa ho fatto.
Ho misurato il periodo (dato presente anche nel loop principale ed utile per visualizzare la frequenza di rete) e calcolato il valore OCR2A in maniera tale da ottenere la stessa frequenza in uscita.
Guarda caso è una divisione per 100 che casualità.
Infatti una sinusoide a 50Hz ha un periodo da 20000uS che diviso 100 = 200 ... Con OCR2A=200 e un timer 2 impostato con prescaler 8 e un'onda composta da 200 campionamenti ottengo = 200*0.5uS*200 = 20mS
Una volta calcolata con precisione la frequenza di rete e il giusto valore di OCR2A per riprodurla ho semplicemente comparato le due sinusoidi.
L'interrut viene chiamato ogni volta inizia la semionda positiva ,quindi mi aspetto che per essere in fase anche l'inverter deve trovarsi nell'indice (pos) 0 oppure nell'indice 100.
Ho scelto 100 per ridurre l'if .
Se l'onda generata è in anticipo (valore inferiore a 100) allora imposto in uscita la frequenza di rete -0.25Hz ,se in ritado accellero di 0.25 ....
Altrimenti mi trovo in perfetta fase e quindi imposto la stessa frequenza.
E' chiaro che ci sarà sempre un inseguimento perchè non avremo mai con queste tolleranze la stessa frequenza .

W EA,W i pazzoidi
ElettroshockNow

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 23/04/2015 11:23:37


CITAZIONE

nuovi problemi che ci potrebbero costringere a cambiar logica annullando, di fatto, tutti gli sforzi impiegati...

forse, e fai bene ad occuparti del progetto...io invece mi occupo principalmente di divulgare :la retta della sinusoide ne è un esempio anche perchè la trovo una delle pochissime applicazioni informatiche applicate di sin(x)/x.

CITAZIONE
Per la storia delle visioni sei stato troppo vago, qui è uno di quei punti in cui fastar scriverebbe "indizi sottratti" !

Per quanto riguarda il discorso delle visioni non sto sottraendo nulla anzi tento proprio di far imboccare a questa discussione ad una inversione di rotta cercando di far alzare la qualità e l'eccellenza del progetto tentando di dare strumenti a chi non ne ha.

CITAZIONE
In Italia ??? Spero tante, altrimenti cambio mestiere !!! O sbaglio ?

Sbagli,purtroppo poche e sono sempre meno...

CITAZIONE
Non mi tenere fermo senza sapere cosa vuoi fare.

Non mi sono spiegato bene? Ok, vediamo di passare ad un linguaggio tecnico:per ottimizzare gli altri due vettori l'idea è quella di fare una coda circolare semaforica perchè SEMBREREBBE inutile una matrice bidimensionale. Se non si è capito una pippa...è normale che sia così!


CITAZIONE
W EA,W i pazzoidi

Evvaiii...io mi prendo lo scettro!



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

 

inverter90

Avatar
MegaWatt


Utente
Msg:323

Stato:



Inviato il: 23/04/2015 20:11:40


CITAZIONE

Ho lavorato solo sul codice, che sebbene si compila, deve necessariamente essere testato...


BellaEli stavo facendo qualche prova con i pochi strumenti a disposizione,ma misa che c'e qualche problema forse di duty cycle troppo basso. ma per confermare occorre testare con l'oscilloscopio



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


 

danye

Avatar
KiloWatt


Utente
Msg:258

Stato:



Inviato il: 23/04/2015 21:45:25

Elettro sei fantastico! Faccine/Smileys_0006.gifFaccine/Smileys_0003.gif



---------------
1x185Wp poli direzione sud
1xRegolatore MPPT EpSolar Tracer 3015
7x batterie auto da recup...

 

xardas

Avatar
KiloWatt


Utente
Msg:126

Stato:



Inviato il: 23/04/2015 22:29:30

Ciao Elettro.

Volevo farti infiniti complimenti per il progetto Inverter 5KW.

Inoltre voglio capire se sei UMANO O SEMPLICEMENTE UN DOCENTE UNIVERSITARIO..
Faccine/Smileys_0011.gif

Ciao e grazie per i bei video che ci regalano emozioni vere..



---------------



 

BellaEli

Avatar
GigaWatt


MODERATORE
Msg:3286

Stato:



Inviato il: 24/04/2015 02:22:20

Elettro grazie per la spiegazione che, come ogni volta, è semplice e chiara.



CITAZIONE

forse, e fai bene ad occuparti del progetto...io invece mi occupo principalmente di divulgare


Se scrivi questa frase e ti assecondo su tutto, va finire che il nostro progetto non sarà mai completato !

Su ogni linea di codice possiamo aprire un intero topic e parlare di come sia possibile stravolgerla, ma il nostro obiettivo attuale è comunque quello di realizzare un firmware open-source per realizzare un inverter sinusoidale puro.

Sono contentissimo che ti sei unito al gruppo, che ci stravolgi le idee, il codice e ci fai scoprire tecniche avanzate di programmazione ma, come capo progetto, non posso dimenticare il punto di arrivo.

Quindi va bene ogni miglioria, ma non dobbiamo mai dimenticare che abbiamo un inverter da realizzare, ok ?


CITAZIONE
tento proprio di far imboccare a questa discussione ad una inversione di rotta cercando di far alzare la qualità e l'eccellenza del progetto


Concordo su ogni lettera !


CITAZIONE
per ottimizzare gli altri due vettori l'idea è quella di fare una coda circolare semaforica perchè SEMBREREBBE inutile una matrice bidimensionale. Se non si è capito una pippa...è normale che sia così!


Ero abituato ad altri tipi di semafori...

Comunque ora va meglio: subito al sodo, frasi che sono chiare, che permettono, anche a chi non sa, di imparare nuove possibilità.

Per capire riporto uno spezzone di Wikipedia:

Il problema del produttore-consumatore è un esempio classico di sincronizzazione tra processi.

Il problema descrive due processi, uno produttore ed uno consumatore, che condividono un buffer comune, di dimensione fissata.

Compito del produttore è generare dati e depositarli nel buffer in continuo.

Contemporaneamente, il consumatore utilizzerà i dati prodotti, rimuovendoli di volta in volta dal buffer.

Il problema è assicurare che il produttore non elabori nuovi dati se il buffer è pieno, e che il consumatore non cerchi dati se il buffer è vuoto.


Tale concetto potrebbe essere utilizzato al posto delle nostre matrici dimensionali, risparmiando, forse, anche più del 50% della memoria !

Tuttavia mi sembra uscire fuori tema...

Mi fai capire come pensi di procedere ?

Ha senso implementare una coda semaforica se, forse, stiamo a meno del 10% del codice ?

Sicuramente sarai più esperto di me a scrivere programmi ma, non puoi negare, che si parte da un diagramma di flusso per poi arrivare al codice.

Perchè ti stai spingendo così tanto col primo blocco del diagramma di flusso ?

Sai sicuramente più di me che, implementare un meccanismo del genere adesso, otre a diminuire il consumo di memoria, porrà dei paletti per tutto il codice che deve essere ancora scritto...

Mi dai una motivazione oggettivamente ineccepibile che mi convinga a parlare di un buffer anzichè discutere sulla sincronizzazione, sul feedback, sulle protezioni e su tutto ciò che manca ???

Una raccomandazione: non rispondere che ti metti in panchina a fare l'osservatore, il mio post non vuole assolutamente produrre un simile risultato, vuole semplicemente "sbloccare i lavori" per consentire al progetto di andare avanti...

Che ne pensi ?


CITAZIONE
BellaEli stavo facendo qualche prova con i pochi strumenti a disposizione,ma misa che c'e qualche problema forse di duty cycle troppo basso. ma per confermare occorre testare con l'oscilloscopio


Non ho avuto tempo di fare debug e prove, ho del lavoro da consegnare...

Tuttavia sicuramente ci sono problemi, parametrizzando e ottimizzando il codice si creano molti problemi non visibili "a occhio"...

Appena riesco faccio qualche prova e ti aggiorno.

A presto, Eligio.



Modificato da BellaEli - 24/04/2015, 02:26:26


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






 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 24/04/2015 04:16:02

CITAZIONE (xardas, 24/04/2015 02:22:20 ) Discussione.php?55031252&120#MSG1844


Inoltre voglio capire se sei UMANO O SEMPLICEMENTE UN DOCENTE UNIVERSITARIO..

E' semplicemente un FENOMENO!

CITAZIONE (xardas, 24/04/2015 02:22:20 ) Discussione.php?55031252&120#MSG1844

...si parte da un diagramma di flusso per poi arrivare al codice.

ho smesso tanto tempo fa

CITAZIONE (xardas, 24/04/2015 02:22:20 ) Discussione.php?55031252&120#MSG1844

Perchè ti stai spingendo così tanto col primo blocco del diagramma di flusso ?

Perchè hai finito la memoria a disposizione...e...

CITAZIONE (xardas, 24/04/2015 02:22:20 ) Discussione.php?55031252&120#MSG1844

Mi fai capire come pensi di procedere ?

La tua architettura si poggia su un vettore bidimensionale, prende in considerazione metà di questo in attesa che l'altro venga riempito...cioè 'locki' metà di questo, la riempi per poi passare all'altra metà. Sto semplicemente dicendo che basta trasformare il tuo vettore in una coda circolare (più o meno già fai una cosa del genere) , fai scorrere un indice su questa coda (il tuo semaforo) 'lokkando' un solo elemento e non metà vettore. Se l'altro processo necessita di quell'elemento (visto che è sotto semaforo) prendi l'ultimo valore valido che salverai in una apposita variabile. Tutto questo ti permetterà il dimezzamento della memoria e svincolerai i due processi in modo asincrono: la coda circolare (cioè la funzione loop) procederà con i tempi di lettura del convertitore a/d, mentre l'altro processo analizzerà i valori retroazionandoli.



CITAZIONE (xardas, 24/04/2015 02:22:20 ) Discussione.php?55031252&120#MSG1844

Ha senso implementare una coda semaforica se, forse, stiamo a meno del 10% del codice ?

Ok, mi hai convinto...



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

 

kekko.alchemi

Avatar
GigaWatt


Utente
Msg:5226

Stato:



Inviato il: 24/04/2015 16:33:59

CITAZIONE (xardas, 24/04/2015 04:16:02 ) Discussione.php?55031252&120#MSG1844


Inoltre voglio capire se sei UMANO O SEMPLICEMENTE UN DOCENTE UNIVERSITARIO..


Niente di tutto ciò, è semplicemente un !!
E' una delle persone, anzi degli alieni, più preparati (e probabilmente il più) che conosco in ambito elettronico.

CITAZIONE (NonSoloBolleDiAcqua, 24/04/2015 04:16:02 ) Discussione.php?55031252&120#MSG1846

cioè 'locki' metà di questo...


Ma intendi Loki il fratello di Thor?

Tornando al nostro inverter, ripeto che secondo me state procedendo in maniera errata. Dovete partire dall'Hardware, definendo solo a livello filosofico il firmware, definirlo in tutti i suoi componenti, realizzarlo, e solo dopo iniziare a stendere il firmware.
Dico questo perchè è quasi sicuro, che arrivati alla fine della scrittura del firmware, quando lo andrete ad utilizzare fisicamente nell'Hardware, dovrete cancellarne gran parte e riniziare da capo... non ha molto senso questo no?
Sarà che io sono abituato a scrivere i firmware senza diagramma di flusso, e procedere per blocchi/step, provandoli realmente passo passo.
A volte ci sbatto la testa, e a forza di sbatterla lo risolvo, ma un conto è sapere dove sbatterla (dove è cioè il problema), e un conto è procedere poi alla cieca alla ricerca del problema, che spesso così facendo, è un equazione a due o più variabili/problemi.
Alla fine ottengo un firmware sicuramente funzionante e sicuramente ottimizzabile. L'ottimizzazione però, in caso di anomalie, può essere retrocessa per tornare alla condizione funzionante, affrontando quindi un problema alla volta. Così invece scrivendo tutto da zero senza un riscontro pratico sull'Hardware (carichi applicati sull'inverter, distorsione effettiva, feedback...) si rischia di perdere un sacco di tempo. Uomo avvisato...

Posso aggiungere una cosa, senza scoraggiare nessuno?
Cosa direste se ci fosse un metodo (molto ma molto semplice) per fare un inverter sinusoidale puro senza microcontrollore, completamente analogico ("quattro pezzi"), con prestazioni e versatilità superiori (e di gran lunga) a qualsiasi firmware gestito da un micro?? Sarebbe davvero un inverter alla portata di tutti, anche per un bambino. Ma non voglio distogliervi... è solo una cosa che a volte sognamo con il grande Elettro...

Kekko



Modificato da kekko.alchemi - 24/04/2015, 16:40:32


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

scinty

Avatar
GigaWatt


Utente
Msg:734

Stato:



Inviato il: 24/04/2015 18:40:18

sono daccordo con kekko anche se in passato l'avevo già detto cerco di andare a parole più semplici...
io non uso il feedback di uscita ma bensì il feedback di ingresso inseguendo un valore pulsante a 150hz campionato con 254 valori così riesco a inseguire le tre sinusoidi prima ancora che si distorcano e la possibilità di disconnettere il lato AC o il lato DC senza che si inneschino archi!! è un sistema unico nel suo genere e questo mi spinge alla misterite...
per l'inverter analogico con soli 4 componenti anchio l'avevo nominato a suo tempo ma eravate distratti(irs2092 2mosfet e induttanza di filtro).
nel frattempo sto facendo credere all'arduinverter che è un inverter mppsolar e a farlo comunicare tramite porta seriale con il software di Jarod e con raspberry con un server CMS caricato. da prime prove funzica ma ho un problema: il software di Jarod richiede stringhe da 92 byte mentre il buffer seriale del micro che state usando ha un buffer di 64 byte, qualcuno sa come aiutarmi??



---------------
14 pannelli mono da 250Wp 24 pannelli amorfi Sharp da 130Wp banco batterie 48V 225Ah survoltore 5000...

 

farstar1965

Avatar
KiloWatt


Utente
Msg:293

Stato:



Inviato il: 24/04/2015 19:21:04

Potrebbe servire ?

LINK


Grazie. Marco.



---------------
Più impari più ti rendi conto di quanto sei ignorante.




 

kekko.alchemi

Avatar
GigaWatt


Utente
Msg:5226

Stato:



Inviato il: 24/04/2015 20:39:13

Sono contento che siamo d'accordo Scinty!! La proposta che avevi fatto dell'inverter analogico mi era proprio sfuggita, altrimenti te l'avrei appoggiata subito! Per me, sarebbe quello il vero inverter EA alla portata di tutti, con prestazioni che anche un micro a 2 GHz se le sogna! Lo vogliamo provare a fare insieme?

Kekko



Modificato da kekko.alchemi - 25/04/2015, 00:39:38


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

ElettroshockNow

Avatar
GigaWatt


Utente
Msg:4656

Stato:



Inviato il: 24/04/2015 22:48:25

Vedete che non sbaglio a dire che siamo un gruppo di pazzoidi

Oggi ho fatto un passo avanti e due indietro ...
Il passo avanti era per avere un feedback in maniera tale da regolare la tensione a 200V .
Per farlo mi sono basato sul lavoro di BellaEli implementando una matrice bidirezionale e quindi mentre il micro lavora sulla matrice 1 viene calcolata la 2 oppure l'opposto.
Sulla carta funziona, ma nella pratica succede qualcosa di imprevisto che crea incroci sui finali !!!
È curioso perché non vengono minimamente sfiorati i timer ...
Ho pensato ad un errore di calcolo ...
Quindi ho stampato i valori e li ho controllati,perfetti ..
Eppure l'incrocio avviene e se non ci fossero stati gli ottimi driver avrei pianto.

A dimenticavo,per aumentare la protezione ho impiegato un pin interrupt che blocca tutto se sente un Fail da uno dei driver ...

E i due passi indietro.

Bé il feedback e il sincro !!!
Si il sincro non può usare un interrupt con priorità più alta del timer1 e 2.(problema messo in evidenza in anticipo BellaEli)

Mentre facevo delle prove riscontrato delle piccole anomalie sull'assorbimento.
Era dovuto al sincro.
Ogni tanto capitava che avendo priorità più alta bloccava lo stato delle uscite (parliamo di uS ... ) e quando finiva l'interrupt del sincro e veniva richiamato l'interrupt del timer2 il micro si trovava con il TCNT che aveva oltrepassato le soglie OCR1A e OCR1B quindi commutava i finali senza deadtime.

Quindi ora devo risolvere il problema...
Forse userò il comparatore analogico sul pin7 per generare una interrupt con priorità più bassa

Ho provato con il Timer0 ,ma Arduino lo usa per la funzione millis () e delay () ... Quindi per rispetto non lo tocco

Ciao grandi e grazie ,ma voglio precisare che quello che so' è merito della condivisione di altri pazzoidi ...

 

NonSoloBolleDiA...

Avatar
PetaWatt


AMMINISTRATORE
Msg:13786

Stato:



Inviato il: 25/04/2015 07:01:38

CITAZIONE (farstar1965, 24/04/2015 22:48:25 ) Discussione.php?55031252&120#MSG1849

Potrebbe servire ?

LINK


Grazie. Marco.

decisamente utile la funzione freeMemory() che può dire se e quando avviene lo sfondamento della memoria...può essere una protezione, occorre far girare il SW (anche a' vuoto') e verificare cosa accade alla memoria, oppure lanciare il debug sul compilatore:esiste? cioè lo fa la piattaforma?



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

 
 InizioPagina
 

Pag: (167)  < ...  117   118   119   [120]   121   122   123  ...>    (Ultimo Msg)

Versione Completa!

Home page     TOP100-SOLAR    Home page forum