Se sei già registrato           oppure    

Orario: 28/03/2024 12:56:49  

 

Energia Alternativa ed Energia Fai Da Te > Applicazioni E Realizzazioni Pratiche

VISUALIZZA L'ALBUM

Pagine: (167)  < ...  147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   [163]   164   165   166   167    (Ultimo Msg)


Homemade Inverter "modulo DC/AC"
FinePagina

lix
milliWatt


Gruppo:Utente
Messaggi:6

Stato:



Inviato il: 15/07/2015 22:21:48

esattissimo!
Sei un insegnante di informatica?

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 15/07/2015 23:05:24

macchè ... faccio l'elettricista!



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

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 16/07/2015 16:16:17

Emulatore V 1.13
Implementato l'algoritmo di lix.
Un saluto
Bolle

Scarica allegato

BatteryEmulatorForInverter1_13.zip ( Numero download: 259 )



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

 

farstar1965

Avatar
KiloWatt


Gruppo:Utente
Messaggi:293

Stato:



Inviato il: 17/07/2015 08:18:40

Grande. Bel lavoro. Ma, se realizzare un simulatore è un lavoro al di fuori della mia portata anche analizzarne i risultati non mi risulta proprio semplice. Noto subito le variazioni di ampiezza ma, sono accettabili? Sono assolutamente da eliminare? Come li raffrontiamo alla realta? Cosa evidenziamo dai vari algoritmi ?

Grazie. Marco.



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

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 18/07/2015 03:07:51

E' vero Fastar, analizzare il risultato non è affatto semplice... proviamo a ragionare un po' !

Prima di andare avanti dobbiamo fare una premessa importante: attualmente il simulatore considera 1 solo valore per semi-sinusoide, quello medio, quindi se alla semi-sinusoide attuale rilevo un errore lo correggo solo alla/e successiva/e.

Questo non permette di vedere a volo come reagisce il feedback sulla sinusoide attuale, non ci permette di apprezzare un feedback rispetto ad un altro.

Ho scritto "a volo" per un motivo preciso: il comportamento di un feedback che lavora su una sinusoide formata da 100 punti è identico a quello applicato a 100 sinusoidi da 1 punto !!!

Teoricamente sarebbe possibile registrare (con l'apposita funzione) l'andamento della sinusoide campionata con un punto, stoppare la registrazione e segnare i vari punti su un foglio excel per capire come si è comportato il feedback

Ma tutto ciò non ha senso, Bolle prima o poi si dovrà decidere a inserire la "feature" delle sinusoidi create da "n" punti, quindi aspettiamo...

Volendo, però, possiamo provare a spiegare i vari feedback implementati fino a questo momento.

Qualche post fa avevo già spiegato il feedback Alfa, in questo post: in pratica questo feedback effettua la media degli errori degli ultimi ELEFCN elementi e la utilizza per correggere l'errore in uscita.

Utilizzando un vettore con pochi elementi il feedback è molto reattivo, tuttavia la media serve per minimizzare i disturbi, per filtrare il comportamento del feedback, per evitare che accendendo un carico il feedback eccessivamente reattivo fa schizzare per qualche istante la tensione a valori troppo alti, mettendo in pericolo i carichi collegati all'inverter...

to be continued...



Modificato da BellaEli - 18/07/2015, 04:52:36


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

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 18/07/2015 04:37:57

Nell'algoritmo Beta, Bolle ha utilizzato una media pesata con un peso sbilanciato verso gli ultimi valori in arrivo. Ma cosa vuol dire tutto ciò ???

Proviamo a spiegarlo con un esempio semplice semplice, ipotizziamo che io, Bolle, Fastar e Inverter90 siamo gli azionisti di una società con le quote ripartite in questo modo:

il 10% delle quote sono mie,
il 20% delle quote sono di Bolle,
il 30% delle quote sono di Fastar
il 40% delle quote sono di Inverter90

Ora ipotizziamo che bisogna fare un investimento e che ognuno voglia investire la seguente cifra:

BellaEli 20.000 Euro
Bolle 10.000 Euro
Fastar 40.000 Euro
Inverter90 30.000 Euro

a chi spetta decidere quanto investire ???

Un metodo (algoritmo alfa) potrebbe essere quello di fare una media matematica e decidere quanto investire, quindi:

20.000 + 10.000 + 40.000 + 30.000 = 100.000 / 4 = 25.000 Euro


Un altro metodo (algoritmo beta) potrebbe essere quello di dare maggior importanza (peso) a Inverter90 che ha più quote della società, quindi potrei dire:

10% * 20.000€ + 20% * 10.000€ + 30% * 40.000€ + 40% * 30.000€ =
200.000 + 200.000 + 1.200.000 + 1.200.000 = 2.800.000 / (10 + 20 + 30 + 40)
2.800.000 / 100 = 28.000


Tutto chiaro ???

Il metodo sopra indicato utilizza la seguente formula:

Media Pesata = (Peso_1 x Dato_1 + Peso_2 x Dato_2 + ... + Peso_n x Dato_n) / (Peso_1 + Peso_2 + ... + Peso_n)

In realtà possiamo utilizzare dei metodi diversi per stabilire i pesi ed effettuare il calcolo della media pesata, vediamo cosa ha combinato Bolle

to be continued...



Modificato da BellaEli - 18/07/2015, 04:53:14


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

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 18/07/2015 05:34:54

Vediamo il dettaglio del codice (spiegerò solo le parti nuove rispetto a quanto già spiegato nell'Algoritmo Alfa):


In Grigio il codice di Bolle, in Verde la traduzione in Italiano, in nero le spiegazioni

// ---- Circolar Beta Algoritm by Bolle (Beta feedback)-----//
Algoritmo di Bolle a Coda Circolare (Feedback Beta)

// Len Queue
Lunghezza della Coda

ELEFCN = 40;

Numero di Elementi del Vettore


// VAC is the last VEff arrived
Nella variabile “VAC” c’è l’ultimo valore letto dal Feedback

NFCN = (NFCN + 1) % ELEFCN


In pratica equivale a scrivere:

if (NFCN = ELEFCN - 1)
__NFCN = 0
else
__NFCN = NFCN + 1


ErrorCorrection[NFCN] = 230 – VAC

Ad ogni chiamata della funzione nel vettore viene inserito l'ultimo errore riscontrato .

// Set Correct Value PWM
Calcolo del valore di correzione del PWM

FPN = 0;
FATT = 1;

Vengono inizializzate le variabili FPN e FATT


Ora c'è la necessità di assegnare un peso ai singoli feedback ricevuti (ricordo che stiamo effettuiando la media di ELEFCN elementi) e devo supporre che Bolle volesse utilizzare l'indice del ciclo for come peso da assegnare al dato, ma... o ha commesso qualche errore nel codice o ha utilizzato un metodo che non comprendo !


Successivamente va utilizzata la formula della media pesata descritta nel post precedente ovvero:

Media Pesata = (Peso_1 x Dato_1 + Peso_2 x Dato_2 + ... + Peso_n x Dato_n) / (Peso_1 + Peso_2 + ... + Peso_n)



Vediamo insieme il codice:


for (j = 0; j < ELEFCN; j++)
{
FATT *= j+1;


Con questa istruzione, Bolle dovrebbe calcolare la somma di tutti i pesi considerati (Peso_1 + Peso_2 + ... + Peso_n), direi che la formula che doveva utilizzare era:

FATT += j + 1;

(il "+ 1" serve poichè il ciclo parte da 0, se non ci fosse il + 1 il primo valore avrebbe peso 0, sarebbe come non considerarlo !)


FPN = FPN + ErrorCorrection[j] * (j + 1);

Con questa istruzione Bolle effettua la somma dei singoli pesi per i singoli dati (Peso_1 x Dato_1 + Peso_2 x Dato_2 + ... + Peso_n x Dato_n)

Mmmmh... anche qui ho parecchi dubbi... Con questa istruzione Bolle da peso maggiore all'ultimo elemento del vettore, non all'ultimo elemento arrivato (cioè NFCN)...

Direi che avrebbe dovuto utilizzare una formula del genere:

FPN += ((ELEFCN - NFCN + j) % ELEFCN) + 1

E' normale non capire questa formula, nemmeno io ci riuscirei su due piedi, è solo la semplificazione di una serie di calcoli, vediamoli insieme:

Ipitizziamo un ciclo for da 0 a 9, ovvero 10 elementi, quindi la nostra variabile ELEFCN sarà = 10, il nostro vettore sarà composto di 10 elementi.

Ipotizziamo che l'ultimo feedback arrivato è stato inserito nella cella numero 6, quindi NFCN = 6.

Facciamo le prove:

FPN = FPN + ((ELEFCN - NFCN + j) % ELEFCN) + 1

j = 0 -> ((10 - 6 + 0) % 10) + 1 -> (4 % 10) + 1 -> 4 + 1 = 5
j = 1 -> ((10 - 6 + 1) % 10) + 1 -> (5 % 10) + 1 -> 5 + 1 = 6
j = 2 -> ((10 - 6 + 2) % 10) + 1 -> (6 % 10) + 1 -> 6 + 1 = 7
j = 3 -> ((10 - 6 + 3) % 10) + 1 -> (7 % 10) + 1 -> 7 + 1 = 8
j = 4 -> ((10 - 6 + 4) % 10) + 1 -> (8 % 10) + 1 -> 8 + 1 = 9
j = 5 -> ((10 - 6 + 5) % 10) + 1 -> (9 % 10) + 1 -> 9 + 1 = 10
j = 6 -> ((10 - 6 + 6) % 10) + 1 -> (10 % 10) + 1 -> 0 + 1 = 1
j = 7 -> ((10 - 6 + 7) % 10) + 1 -> (11 % 10) + 1 -> 1 + 1 = 2
j = 8 -> ((10 - 6 + 8) % 10) + 1 -> (12 % 10) + 1 -> 2 + 1 = 3
j = 9 -> ((10 - 6 + 9) % 10) + 1 -> (13 % 10) + 1 -> 3 + 1 = 4

Come vedete, si da il peso maggiore (10) al sesto valore del vettore !

}

FPN = FPN / ELEFCN / FATT



A questo punto mi viene il dubbio che Bolle ha utilizzato un calcolo diverso... io avrei semplicemente scritto:

FPN = FPN / FATT

per calcolare la media pesata sbilanciata sull'ultimo elemento arrivato, vediamo lui cosa dice...




Per ora mi fermo, appena ho tempo proverò a spiegare gli altri 2 algoritmi implementati.

Alla prox, Elix.


P.S.

Fastar, chiedo a te perchè se capisci tu vuol dire che capiscono tutti ( ), si capisce qualcosa di ciò che ho scritto ?

Mi rendo conto che l'argomento non è semplice spiegarlo con un piccolo post, ma almeno un pochino si capisce ???






Modificato da BellaEli - 19/07/2015, 12:26:25


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

 

farstar1965

Avatar
KiloWatt


Gruppo:Utente
Messaggi:293

Stato:



Inviato il: 18/07/2015 18:39:59

Capire si capisce, faccio fatica ma quello è un limite mio d'altra parete non ho mai studiato programmazione e ho iniziato a usare il C (QUELLO DI ARDUINO) solo un paio di anni fà.

P.S. Ma usare nomi meno intuitivi per le variabili era impossibile ? Secondo me con un pò di impegno si riusciva.

Grazie. Marco.



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

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 19/07/2015 12:25:11

Vediamo oggi di spiegare il terzo feedback, ovvero il Fastar Feedback.

Sostanzialmente l'algoritmo è identico all'Alfa Feedback con la differenza che la correzione interviene solo se l'errore della tensione in uscita è maggiore del 5%.

Ma vediamolo insieme:

In Grigio il codice di Bolle, in Verde la traduzione in Italiano, in nero le spiegazioni

// ---- Circolar Beta Algoritm by Bolle (Beta feedback)-----//
Algoritmo di Bolle a Coda Circolare (Feedback Beta)

// Len Queue
Lunghezza della Coda

ELEFCN = 40;

Numero di Elementi del Vettore


// VAC is the last VEff arrived
Nella variabile “VAC” c’è l’ultimo valore letto dal Feedback


NFCN = (NFCN + 1) % ELEFCN

In pratica equivale a scrivere:

if (NFCN = ELEFCN - 1)
__NFCN = 0
else
__NFCN = NFCN + 1


ErrorCorrection[NFCN] = 230 – VAC

Ad ogni chiamata della funzione nel vettore viene inserito l'ultimo errore riscontrato .

// Set Correct Value PWM
Calcolo del valore di correzione del PWM

FPN = 0;

la variabile FPN viene inizializzata a 0

for (j = 0; j < ELEFCN; j++)

if (ErrorCorrection[j] > TensioneAVuoto * 0,05)


Questa è l'istruzione che impedisce di correggere il PWM se l'errore è inferiore al 5%


FPN = FPN + ErrorCorrection[j];

Se l'errore è maggiore del 5% alla variabile FPN vengono sommati tutti gli errori contenuti nel vettore che rappresentano le ultime ELEFCN letture


FPN = FPN / ELEFCN

Infine viene effettuato il calcolo della media dei valori letti.

Per esempio, ipotizziamo un vettore di 5 elementi con le seguenti letture

Alla prox, Elix.



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

 

erme
milliWatt


Gruppo:Utente
Messaggi:20

Stato:



Inviato il: 21/07/2015 18:26:40

ma il prototipo lo realizzate oppure èancora in fase progetto ?

 

farstar1965

Avatar
KiloWatt


Gruppo:Utente
Messaggi:293

Stato:



Inviato il: 21/07/2015 18:52:39

E ancora lunga la strada. Bolleeeeeeee, Bellaeliiiiiiiii...................
Comunque non credo che nessuno si metta preparare un kit bello pronto tipo nuova elettronica.
La filosofia del proggetto dovrebbe realizzare una buona base anche piuttosto dettagliata in modo che ognuno possa creare un dispositivo tagliato su misura alle proprie esigenze.



Modificato da farstar1965 - 21/07/2015, 18:59:52


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

 

tonio22
milliWatt


Gruppo:Utente
Messaggi:10

Stato:



Inviato il: 26/07/2015 21:04:53

Scusate è mica questo lo schema completo dell'ARDUINVERTER???
Se si quali sono i valori dei vari componenti???



Immagine Allegata: INVERTER1.png
 
ForumEA/F/INVERTER1.png

 

tonio22
milliWatt


Gruppo:Utente
Messaggi:10

Stato:



Inviato il: 26/07/2015 21:06:42

Scusate ho sbagliato immagine:P



Immagine Allegata: ArduInverter 1.jpg
 
ForumEA/F/ArduInverter 1.jpg

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 27/07/2015 02:45:42

Ciao Tonio,

onestamente la discussione si è allungata un pochettino e non ricordo a memoria, però a occhio direi di si...

Solo che quello è solo una parte, lo schema completo dovrebbe essere parecchio più esteso e non ancora terminato.

I valori dei vari componenti sono segnati sullo schema stesso, cosa in particolare volevi sapere ?

Infine c'è un altro problema: Elettro, purtroppo, per problemi personali ha dovuto sospendere lo sviluppo del progetto a data da stabilirsi, probabilmente non puoi contare sul suo aiuto, ma sarei felicissimo di essere smentito !

Se posso essere d'aiuto sono qui



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

 

tonio22
milliWatt


Gruppo:Utente
Messaggi:10

Stato:



Inviato il: 27/07/2015 19:10:58

Grazie infinitamente BellaEli per il tuo interessamento, nel video postato in prima pagina vedo che l'inverter e funzionante, mancheranno lo stadio dc/dc elevatore per la 350v dalle batterie,e il sincronismo con la rete, questo e quanto sono riuscito a capire(correggimi se sbaglio) ma per tutto il resto il cuore dell'inverter e funzionante.
Perciò ci dovrà essere uno schema dettagliato.

Nell'immagine che ho postato non ci sono valori di resistenza, condensatori ecc e in effetti non sembra completo.

Grazie ancora per il tuo interessamento..

 
 InizioPagina
 

Pagine: (167)  < ...  147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   [163]   164   165   166   167    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum