State-Space Averanging e regolatore buck-boost

May 19, 2008 14 Replies

Salve, dovrei determinare la funzione di trasferimento (DutyCycle --> Vout) di un regolatore switching buck-boost tramite la procedura state-space averanging. Ho i risultati delle matrici A, B, C, D ma purtroppo non riesco a capire perchè a me vengono risultati diversi!



Qualcuno che è pratico di queste cose potrebbe aiutarmi dicendomi che risultati ottiene (si considerano le resistenze parassite solo per L e C... come nello schema)? Di seguito ho inserito lo schema del regolatore.



Grazie mille!



[FIDOCAD ] MC 115 40 0 0 470 MC 140 40 3 0 310 MC 195 25 2 0 200 MC 165 35 1 0 120 MC 225 35 0 0 115 LI 115 40 115 25 LI 115 25 130 25 LI 150 25 180 25 LI 195 25 225 25 LI 225 25 225 35 LI 225 45 225 65 LI 225 65 115 65 LI 115 65 115 60 LI 165 45 165 65 LI 165 35 165 25 MC 205 45 2 0 180 LI 205 35 205 25 LI 205 45 205 65 TY 185 15 5 3 0 0 0 * D TY 110 35 5 3 0 0 0 * + TY 95 45 5 3 0 0 0 * Vin TY 210 35 5 3 0 0 0 * C TY 170 35 5 3 0 0 0 * L TY 230 35 5 3 0 0 0 * R MC 140 45 1 0 000 LI 140 40 140 45 TY 140 50 5 3 0 0 0 * PWM RV 85 5 235 70 TY 90 10 5 3 0 0 0 * Buck-Boost MC 210 130 1 0 120 TY 215 130 5 3 0 0 0 * L MC 240 140 2 0 180 TY 245 130 5 3 0 0 0 * C MC 210 115 0 0 115 MC 240 115 0 0 115 TY 215 115 5 3 0 0 0 * rl TY 245 115 5 3 0 0 0 * rc MC 265 120 0 0 115 LI 210 105 210 115 LI 210 125 210 130 LI 210 140 210 145 LI 240 140 240 145 LI 240 145 265 145 LI 265 145 265 130 LI 240 115 240 105 LI 240 105 265 105 LI 265 105 265 120 LI 240 125 240 130 LI 210 105 240 105 LI 210 145 240 145 TY 205 95 5 3 0 0 0 * Buck-Boost --> Toff MC 60 120 0 0 470 LI 60 120 60 105 LI 60 105 75 105 LI 60 145 60 140 TY 55 115 5 3 0 0 0 * + TY 40 125 5 3 0 0 0 * Vin MC 85 130 1 0 120 TY 90 130 5 3 0 0 0 * L MC 85 115 0 0 115 TY 90 115 5 3 0 0 0 * rl LI 75 105 85 105 LI 85 105 85 115 LI 85 125 85 130 LI 85 140 85 145 LI 85 145 60 145 MC 105 140 2 0 180 TY 110 130 5 3 0 0 0 * C MC 105 115 0 0 115 TY 110 115 5 3 0 0 0 * rc MC 130 120 0 0 115 LI 105 140 105 145 LI 105 145 130 145 LI 130 145 130 130 LI 105 115 105 105 LI 105 105 130 105 LI 130 105 130 120 LI 105 125 105 130 TY 40 95 5 3 0 0 0 * Buck-Boost --> Ton LI 166 70 166 72 LI 166 72 140 90 LI 140 90 142 90 LI 142 90 140 88 LI 166 72 200 90 LI 200 90 200 88 LI 200 88 198 90 LI 198 90 200 90 LI 245 30 260 30 LI 260 30 260 20 LI 260 20 270 20 MC 265 15 0 0 074 MC 265 15 2 0 074 MC 255 15 0 0 074 MC 250 15 2 0 074 LI 250 15 255 15 TY 245 5 5 3 0 0 0 * ton TY 260 5 5 3 0 0 0 * toff MC 265 35 0 0 074 MC 250 35 2 0 074 LI 250 35 265 35 TY 255 35 5 3 0 0 0 * T TY 275 20 5 2 0 0 0 * T = d*T+d'*T TY 275 15 5 2 0 0 0 * d = duty cycle (0 < d < 1) TY 275 25 5 2 0 0 0 * d' = 1 - d RV 240 5 330 40 MC 80 130 1 0 074 MC 205 130 1 0 074 MC 235 130 1 0 074 RV 40 90 145 150 LI 140 88 140 90 TY 260 120 5 3 0 0 0 * R TY 125 120 5 3 0 0 0 * R TY 135 115 5 3 0 0 0 * + TY 135 130 5 3 0 0 0 * - TY 270 115 5 3 0 0 0 * + TY 270 130 5 3 0 0 0 * - TY 135 120 5 3 0 0 0 * Vo TY 270 120 5 3 0 0 0 * Vo RV 200 150 280 90 TY 105 170 5 3 0 1 0 * X = [il(t) vc(t)] TY 105 160 5 3 0 0 0 * il(t) --> Corrente in L TY 105 165 5 3 0 0 0 * vc(t) --> Tensione su C TY 105 185 5 3 0 1 0 * (dX/dt) = A*X(t)+B*d(t) TY 105 190 5 3 0 1 0 * Vo(t) = C*X(t)+D*d(t) TY 105 180 5 3 0 0 0 * d(t) --> Ingresso del sistema (duty cycle) RV 100 155 235 200

MrRipple ha scritto:

Nessuno ne sa niente?

MrRipple ha scritto:

Tranquillo, se qualcuno sa darti una risposta te la darà :) Magari non dopo 5 ore e mezza, c'è gente che lavora qui!

^__^

Marco / iw2nzm

Bennny ha scritto:

Bè si, gli assomigliano a meno di riferimenti credo... i miei risultati (considerando però in questo caso la tensione sul condensatore in modo opposto a come l'ho segnata sullo schema): 1-->On; 2-->Off: A1 =

[[ rl1] ] [[- ---] [0] ] [[ L1 ] ] [ ] [ [ 1 ]] [ [0] [- -------------]] [ [ C1 (R1 + rc1)]]

A2 =

[[ rl1 R1 + rl1 rc1 + R1 rc1] [ R1 ] ] [[- -------------------------] [-------------] ] [[ L1 (R1 + rc1) ] [L1 (R1 + rc1)] ] [ ] [ [ R1 ] [ 1 ]] [ [- -------------] [- -------------]] [ [ C1 (R1 + rc1)] [ C1 (R1 + rc1)]]

B1 =

[[ 1 ]] [[----]] [[ L1 ]] [ ] [ [0] ]

B2 =

[[0]] [ ] [[0]]

C1 =

[ [ R1 ]] [[0], [--------]] [ [R1 + rc1]]

C2 =

[ [ R1 ]] [[-R1], [--------]] [ [R1 + rc1]]

D1 =

[0]

D2 =

[0]

Il circuito funziona in CCM... perchè parli di errore concettuale per questa modalità?

Bennny ha scritto:

I risultati che ho sono quelli dovuti all'applicazione dell'SSA:

formatting link

Ok.

No, perchè?

Il fatto è che a me non tornano gli stessi risultati per le matrici B C e D... probabilmente sbaglio ad applicare il metodo!

Bennny ha scritto:

Ok... ho risolto... Il fatto è che le matrici corrette che ti ho postato sono riferite al modello dinamico (AC Small-Signal).

Quindi... una volata ricavate le nostre matrici A_on, A_off, B_on, B_off, C_on, C_off, D_on, D_off e "pesate rispetto al duty cycle" abbiamo:

A = d*A_on + (1-d)*A_off; B = d*B_on + (1-d)*B_off; C = d*C_on + (1-d)*C_off; D = d*D_on + (1-d)*D_off;

A questo punto occorre effettuare un analisi stazionaria (steady state) ed una analisi alle variazioni (small signal). Per separare queste due analisi assumiamo che le variabili siano perturbate intorno al punto di lavoro stazionario... quindi, prendendo: x = x_dc + x_ac; d = d_dc + d_ac; v = v_dc + v_ac;

dove con _dc si intendono le componenti continue delle variabili e con _ac le perturbazioni (small signal values)... abbiamo che per uno stato stazionario:

dot_x_dc = 0 ---> 0 = A*x_dc+B*v_dc

---> x_dc = -(A^-1)*B*v_dc e Y = C * -(A^-1)*B*v_dc; (questo è lo steady-state model)

per quanto riguarda il modello dinamico (ac small-signal) abbiamo che questo è dato da:

dot_x_ac = A*x_ac+B*v_ac+[(A_on-A_off)*x_dc+(B_on-B_off)*v_dc]*d_ac e y_ac = C*x_ac+(C_on-C_off)*x_dc*d_ac

Da queste ultime due equazioni ricaviamo le matrici corrette che ti ho postato:

dot_x_ac = A*x_ac + B*d_ac y = C*x_ac + D*d_ac

Spero di aver scritto cose corrette... almeno in linea di massima! ;)

MrRipple ha scritto:

Bè... la strada dovrebbe essere questa ma... i risultati non mi tornano ugualmente!!!

MrRipple ha scritto:

Salve a tutti... riapro questa discussione per chiedere se qualcuno di voi può darmi qualche dritta su come modellare uno switching per i large-signals (e quindi per vedere la sua risposta durante i transitori). Per quanto riguarda le piccole variazioni sono riuscito a tirare fuori il modello e controllarlo.

Grazie per l'aiuto!

Fai la media e poi non linearizzi. Ad esempio si vede bene con il modello dell'interruttore pwm sviluppato da vorperian.

Se cerchi nel sito di erickson (universita` di boulder), dovrebbe esserci un modello mediato non lineare che tiene anche conto del passaggio fra continuo e discontinuo.

Franco Wovon man nicht sprechen kann, darüber muß man schweigen. (L. Wittgenstein)

Grazie per la risposta! Alla fine poi ci ero arrivato...

A = Aon*d + Aoff*(1-d) B = Bon*d + Boff*(1-d) C = Con*d + Coff*(1-d) D = Don*d + Doff*(1-d)

Franco ha scritto:

Non so se può ancora servire...

Vatché VORPERIAN, "Simplified Analysis of PWM Converters Using The Model of The PWM

Switch, Parts I (CCM) and II (DCM) ", Transactions on Aerospace and Electronics Systems,

Vol. 26, N°3, May 1990.

Altro link per paper:

formatting link

Cheers

Pow

"MrRipple" ha scritto nel messaggio news:485824ed$0$17952$ snipped-for-privacy@news.tiscali.it...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required