1.5. EFFECT OF COMPONENT VARIATIONS 23
rL_unc=ureal ('rL_unc' ,0.01 , 'Percentage ' ,[-10 +90]);
%Inductor Equivalent Series Resistance (ESR)
rD_unc=ureal ('rD_unc' ,.01 , 'Percentage ',[ -10 +50]) ;
%Diode series resistance
VD_unc=ureal ('VD_unc' ,.7,'Percentage ' ,[-30 +30]) ;
%Diode voltage drop
R_unc=ureal ('R_unc ',20,'Percentage ',[-20 +20]) ;
%Load resistance
IO =0;
%Average value of output current source
%Sampling the uncertain set
%for instance usample (VG_unc ,1) takes one sample of
%uncertain parameter VG_unc
VG=usample (VG_unc ,1);
%Sampled average value of input DC source
rg=usample (rg_unc ,1);
%Sampled internal resistance of input DC source
rds=usample (rds_unc ,1);
%Sampled MOSFET on resistance
C=usample (C_unc ,1);
%Sampled capacitor value
rC=usample (rC_unc ,1);
%Sampled capacitor Equivalent Series
Resistance (ESR)
L=usample (L_unc ,1);
%Sampled inductor value
rL=usample (rL_unc ,1);
%Sampled inductor Equivalent Series Resistance (ESR)
rD=usample (rD_unc ,1);
%Sampled diode series resistance
VD=usample (VD_unc ,1);
%Sampled diode voltage drop
R=usample (R_unc ,1);
%Sampled load resistance
%output voltage of an IDEAL (i.e., no losses) Buck
%converter operating in CCM is given by:
24 1. EXTRACTION OF UNCERTAIN MODEL OF DC-DC CONVERTERS
%VO=D.VG
%where
%VO: average value of output voltage
%D: Duty Ratio
%VG: Input DC voltage
%So , for a IDEAL converter
% VO
%D=----------
% VG
%Since our converter has losses we use a bigger duty
%ratio , for instance:
% VO
%D=1.05 --------
% VG
D=1.05* DesiredOutputVoltage /( VG); % Duty cylcle
syms iL vC io vg vD d
%iL : Inductor L1 current
%vC : Capacitor C1 voltage
%io : Output current source
%vg : Input DC source
%vD : Diode voltage drop
%d : Duty cycle
%Closed MOSFET Equations
diL_dt_MOSFET_close =(-( rg+ rds+rL+R*rC/(R+rC))*iL-R/(R+rC)*
vC+R*rC /(R+rC)*io+vg)/L;
dvC_dt_MOSFET_close =(R/(R+rC)*iL -1/(R+rC)*vC -R/(R+rC)*io)/C;
vo_MOSFET_close =R*rC/(R+rC)*iL+R/(R+rC)*vC -R*rC/(R+rC)*io;
%Opened MOSFET Equations
diL_dt_MOSFET_open =(-(rD+rL+rC*R/(R+rC))*iL-R/(R+rC)*vC+R*
rC/(R+rC)*io -vD)/L;
dvC_dt_MOSFET_open =(R/(R+rC)*iL -1/(R+rC)*vC -R/(R+rC)*io)/C;
vo_MOSFET_open=R*rC/(R+rC)*iL+R/(R+rC)*vC -R*rC/(R+rC)*io;
%Averaging
averaged_diL_dt =simplify(d* diL_dt_MOSFET_close +(1-d)*
1.5. EFFECT OF COMPONENT VARIATIONS 25
diL_dt_MOSFET_open);
averaged_dvC_dt =simplify(d* dvC_dt_MOSFET_close +(1-d)*
dvC_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(IL and VC)
right_side_of_averaged_diL_dt = subs ( averaged_diL_dt ,
[vg vD d io],[VG VD D IO]);
right_side_of_averaged_dvC_dt = subs ( averaged_dvC_dt ,
[vg vD d io],[VG VD D IO]);
DC_OPERATING_POINT=
solve( right_side_of_averaged_diL_dt ==0,
right_side_of_averaged_dvC_dt ==0 , 'iL','vC');
IL=eval( DC_OPERATING_POINT.iL);
VC=eval( DC_OPERATING_POINT.vC);
VO=eval(subs( averaged_vo ,[iL vC io],[IL VC IO ]));
disp(' Operating point of converter ')
disp(' ----------------------------')
disp('IL(A)=')
disp(IL)
disp('VC(V)=')
disp(VC)
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=[iL vC]'
26 1. EXTRACTION OF UNCERTAIN MODEL OF DC-DC CONVERTERS
% 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_diL_dt ,iL)),[iL vC d io],
[IL VC D IO ]);
A12=subs(simplify(diff( averaged_diL_dt ,vC)),[iL vC d io],
[IL VC D IO ]);
A21=subs(simplify(diff( averaged_dvC_dt ,iL)),[iL vC d io],
[IL VC D IO ]);
A22=subs(simplify(diff( averaged_dvC_dt ,vC)),[iL vC d io],
[IL VC D IO ]);
AA=eval ([A11 A12;
A21 A22 ]);
%Calculating the matrix B
B11=subs(simplify(diff( averaged_diL_dt ,io)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
B12=subs(simplify(diff( averaged_diL_dt ,vg)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
B13=subs(simplify(diff( averaged_diL_dt ,d)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
B21=subs(simplify(diff( averaged_dvC_dt ,io)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
B22=subs(simplify(diff( averaged_dvC_dt ,vg)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
B23=subs(simplify(diff( averaged_dvC_dt ,d)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
BB=eval ([B11 B12 B13 ;
B21 B22 B23]);
%Calculating the matrix C
C11=subs(simplify(diff(averaged_vo ,iL)) ,[iL vC d io],
1.5. EFFECT OF COMPONENT VARIATIONS 27
[IL VC D IO ]);
C12=subs(simplify(diff(averaged_vo ,vC)) ,[iL vC d io],
[IL VC D IO ]);
CC=eval ([C11 C12]);
D11=subs(simplify(diff(averaged_vo ,io)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
D12=subs(simplify(diff(averaged_vo ,vg)),
[iL vC d vD io vg],[ IL VC D VD IO VG ]);
D13=subs(simplify(diff(averaged_vo ,d)),
[iL vC d vD io vg],[ IL VC 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))
%Extracts the transfer function coefficients
if n==1
[num_vo_io ,den_vo_io ]=tfdata(vo_io ,'v');
[num_vo_vg ,den_vo_vg ]=tfdata(vo_vg ,'v');
[num_vo_d , den_vo_d ]=tfdata(vo_d ,'v');
else
[num1 , den1 ]= tfdata(vo_io ,'v');
%extracts the numerator and denominator
%of vo(s)/io(s)
num_vo_io =[ num_vo_io;num1 ];
..................Content has been hidden....................

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