22 1. EXTRACTION OF SMALL-SIGNAL TRANSFER FUNCTIONS
diL1_dt_MOSFET_open );
averaged_diL2_dt =simplify(d*diL2_dt_MOSFET_close +(1-d)*
diL2_dt_MOSFET_open );
averaged_dvC1_dt =simplify(d*dvC1_dt_MOSFET_close +(1-d)*
dvC1_dt_MOSFET_open );
averaged_dvC2_dt =simplify(d*dvC2_dt_MOSFET_close +(1-d)*
dvC2_dt_MOSFET_open );
averaged_vo =simplify(d*vo_MOSFET_close +(1-d)* vo_MOSFET_open);
%Substituting the steady values of input
%DC voltage source , Diode voltage drop ,
%Duty cycle and output current source
%and calculating the DC operating point
right_side_of_averaged_diL1_dt =subs(averaged_diL1_dt ,
[vg vD d io],[VG VD D IO ]);
right_side_of_averaged_diL2_dt =subs(averaged_diL2_dt ,
[vg vD d io],[VG VD D IO ]);
right_side_of_averaged_dvC1_dt =subs(averaged_dvC1_dt ,
[vg vD d io],[VG VD D IO ]);
right_side_of_averaged_dvC2_dt =subs(averaged_dvC2_dt ,
[vg vD d io],[VG VD D IO ]);
DC_OPERATING_POINT =
solve(right_side_of_averaged_diL1_dt ==0,
right_side_of_averaged_diL2_dt ==0,
right_side_of_averaged_dvC1_dt ==0,
right_side_of_averaged_dvC2_dt ==0,'iL1','iL2 ','vC1 ','vC2 ');
IL1=eval(DC_OPERATING_POINT .iL1);
IL2=eval(DC_OPERATING_POINT .iL2);
VC1=eval(DC_OPERATING_POINT .vC1);
VC2=eval(DC_OPERATING_POINT .vC2);
VO=eval(subs( averaged_vo ,[iL1 iL2 vC1 vC2 io],
[IL1 IL2 VC1 VC2 IO]));
disp('Operating point of converter ')
disp('----------------------------')
disp('IL1(A)=')
disp(IL1)
1.4. DYNAMICS OF CCM CONVERTERS 23
disp('IL2(A)=')
disp(IL2)
disp('VC1(V)=')
disp(VC1)
disp('VC2(V)=')
disp(VC2)
disp('VO(V)=')
disp(VO)
disp('----------------------------')
%Linearizing the averaged equations around
%the DC operating point . We want to obtain
%the matrix A, B, C, and D.
% x=Ax+Bu
% y=Cx+Du
%
%where ,
% x=[ iL1 iL2 vC1 vC2 ]'
% u=[ io vg d]'
%Since we used the variables D for steady
%state duty ratio and C to show the capacitors
%values we use AA , BB, CC, and DD instead of A,
%B, C and D.
%Calculating the matrix A
A11=subs(simplify(diff(averaged_diL1_dt ,iL1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A12=subs(simplify(diff(averaged_diL1_dt ,iL2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A13=subs(simplify(diff(averaged_diL1_dt ,vC1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A14=subs(simplify(diff(averaged_diL1_dt ,vC2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A21=subs(simplify(diff(averaged_diL2_dt ,iL1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A22=subs(simplify(diff(averaged_diL2_dt ,iL2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A23=subs(simplify(diff(averaged_diL2_dt ,vC1)),
24 1. EXTRACTION OF SMALL-SIGNAL TRANSFER FUNCTIONS
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A24=subs(simplify(diff(averaged_diL2_dt ,vC2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A31=subs(simplify(diff(averaged_dvC1_dt ,iL1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A32=subs(simplify(diff(averaged_dvC1_dt ,iL2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A33=subs(simplify(diff(averaged_dvC1_dt ,vC1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A34=subs(simplify(diff(averaged_dvC1_dt ,vC2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A41=subs(simplify(diff(averaged_dvC2_dt ,iL1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A42=subs(simplify(diff(averaged_dvC2_dt ,iL2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A43=subs(simplify(diff(averaged_dvC2_dt ,vC1)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
A44=subs(simplify(diff(averaged_dvC2_dt ,vC2)),
[iL1 iL2 vC1 vC2 d io],[IL1 IL2 VC1 VC2 D IO]);
AA=eval ([ A11 A12 A13 A14;
A21 A22 A23 A24;
A31 A32 A33 A34;
A41 A42 A43 A44]);
%Calculating the matrix B
B11=subs(simplify(diff(averaged_diL1_dt ,io)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B12=subs(simplify(diff(averaged_diL1_dt ,vg)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B13=subs(simplify(diff(averaged_diL1_dt ,d)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B21=subs(simplify(diff(averaged_diL2_dt ,io)),
1.4. DYNAMICS OF CCM CONVERTERS 25
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B22=subs(simplify(diff(averaged_diL2_dt ,vg)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B23=subs(simplify(diff(averaged_diL2_dt ,d)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B31=subs(simplify(diff(averaged_dvC1_dt ,io)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B32=subs(simplify(diff(averaged_dvC1_dt ,vg)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B33=subs(simplify(diff(averaged_dvC1_dt ,d)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B41=subs(simplify(diff(averaged_dvC2_dt ,io)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B42=subs(simplify(diff(averaged_dvC2_dt ,vg)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
B43=subs(simplify(diff(averaged_dvC2_dt ,d)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
BB=eval ([ B11 B12 B13;
B21 B22 B23;
B31 B32 B33;
B41 B42 B43]);
%Calculating the matrix C
C11=subs(simplify(diff(averaged_vo ,iL1)),
[iL1 iL2 vC1 vC2 d io],
[IL1 IL2 VC1 VC2 D IO]);
C12=subs(simplify(diff(averaged_vo ,iL2)),
26 1. EXTRACTION OF SMALL-SIGNAL TRANSFER FUNCTIONS
[iL1 iL2 vC1 vC2 d io],
[IL1 IL2 VC1 VC2 D IO]);
C13=subs(simplify(diff(averaged_vo ,vC1)),
[iL1 iL2 vC1 vC2 d io],
[IL1 IL2 VC1 VC2 D IO]);
C14=subs(simplify(diff(averaged_vo ,vC2)),
[iL1 iL2 vC1 vC2 d io],
[IL1 IL2 VC1 VC2 D IO]);
CC=eval ([ C11 C12 C13 C14 ]);
D11=subs(simplify(diff(averaged_vo ,io)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
D12=subs(simplify(diff(averaged_vo ,vg)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
D13=subs(simplify(diff(averaged_vo ,d)),
[iL1 iL2 vC1 vC2 d vD io vg],
[IL1 IL2 VC1 VC2 D VD IO VG]);
%Calculating the matrix D
DD=eval ([ D11 D12 D13 ]);
%Producing the State Space Model and obtaining
%the small signal transfer functions
sys=ss(AA ,BB ,CC ,DD);
sys.inputname={'io';'vg';'d'};
sys.outputname ={ 'vo '};
vo_io=tf(sys (1,1)); %Output impedance transfer
%function vo(s)/io(s)
vo_vg=tf(sys (1,2)); %vo(s)/vg(s)
vo_d=tf(sys (1,3)); %Control -to - output(vo(s)/d(s))
%drawing the Bode diagrams
figure (1)
bode(vo_io),grid minor ,title('vo(s)/io(s)')
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.149.213.209