x Elettro:
finalmente sono davanti a un PC, vediamo di fare un'analisi più dettagliata...
Prima di andare avanti faccio una piccola deduzione logica:
Poichè utilizzi un'alimentazione con "0" centrale e un semiponte, suppongo che il tuo vettore S[] (tralasciando il margine per il feedback) abbia i seguenti valori:
Indice 0 -> valore 255
Indice 50 -> valore 511
Indice 100 -> valore 255
Indice 150 -> valore 0
Ipotetico indice 200 (In realtà riparte da 0) -> 255
Fatta questa premessa, andiamo avanti:
CITAZIONE (ElettroshockNow, 26/04/2015 21:31:39 )
Quote:Il While deve restare vero se il TCNT è compreso tra il valore più basso tra OCR1A e S[pos]-deadtime e il valore massimo tra OCR1B e S [pos) + deadtime.
Dunque ci sono quattro possibili casi in cui ti puoi trovare.
Per semplificare l'analisi lavoriamo solo sulla semionda positiva, quindi avremo:
1) Prima metà della semionda, i valori del PWM verranno incrementati ad ogni ISR, TCNT1 sta salendo verso 511;
2) Prima metà della semionda, i valori del PWM verranno incrementati ad ogni ISR, TCNT1 sta scendendo verso 0;
3) Seconda metà della semionda, i valori del PWM verranno decrementati ad ogni ISR, TCNT1 sta salendo verso 511;
4) Seconda metà della semionda, i valori del PWM verranno decrementati ad ogni ISR, TCNT1 sta scendendo verso 0.
Analizziamoli uno alla volta:
Caso 1:Studiando un po' i disegni e facendo un po' di prove "a mente", si deduce che il cambio nella banda gialla deve essere evitato.
Caso 2:In questo caso la banda gialla è più estesa, e va esattamente da OCR1A a S[pos] + deadtime
Per i casi 3 e 4 sono stanco, ma dovrebbe essere corretta la tua intuizione.
Quindi la forumla corretta definitiva è:
while ((TCNT1 > min(OCR1A, S[pos] - deadtime)) && (TCNT1 < max(OCR1B, S[pos] + deadtime))) {1}
Sono contento che abbiamo trovato l'inghippo !!!
Avanzo un piacere...
CITAZIONE (kekko.alchemi, 27/04/2015 00:56:18 )
Quote:Ma quindi alla fine cosa ha deciso il capo progetto?
Per ora siamo rimasti con il sistema free e relativo feedback.
Tuttavia, strada facendo, potremmo sembre cambiare idea !!!
CITAZIONE (kekko.alchemi, 27/04/2015 00:56:18 )
Quote:...se usate il "sistema Free", 200 valori totali sono decisamente pochi! La sinusoide verrà un trapezio con carichi induttivi... A questo punto credo che non siano molto chiare le differenze, forse sarebbe il caso di scendere nel dettaglio, perchè è una cosa non del tutto semplice.
Attualmente stiamo lavorando con 320 campioni totali (intera sinusoide).
Sarei davvero felice se scendessi nel dettaglio per spiegarmi le differenze, così inizio a prepararmi a cosa mi aspetta...
CITAZIONE (kekko.alchemi, 27/04/2015 00:56:18 )
Quote:Penso sia ovvio poi, che con il sistema a bassa tensione (anche utilizzando il pwm forzato) il feedback è d'obbligo!
Certo, certo, il feedback, essendo una parte complessa, la sposto più avanti: generalmente faccio così nella vita, prima le cose facili, quelle difficili alla fine !
CITAZIONE (kekko.alchemi, 27/04/2015 00:56:18 )
Quote:Se vuoi coinvolgermi, devi sapere che sono fatto così...
Beh è normale che leggi questo topic come osservatore, tu il tuo inverter lo hai già completato, sei stato praticamente il socio (di Elettro) che ha aperto questo topic, non sei stimolato come lo saresti su un progetto nuovo !!!
Tuttavia, per me, l'importante è che ci sostieni con qualche prezioso consiglio dettato dalle tue conoscenze, dalle tue esperienze, dalle tue intuizioni cosa che del resto fai in ogni post !
CITAZIONE (kekko.alchemi, 27/04/2015 00:56:18 )
Quote:E' proprio bello vedere uno spirito di collaborazione così intenso!
Quoto ogni parola !!!