这个例子展示了如何控制一个推挽降压变换器的输出电压。通过电感的电流在mosfet的开关周期达到零,因此DC-DC变换器工作在不连续导通模式(DCM)。这种方式的传导主要用于低功耗的应用。为了转换和保持输入直流电压作为标称输出电压,PI控制器子系统使用一个简单的积分控制。在启动过程中,参考电压被提升到所需的输出电压。
转换器仅在DCM中工作
,
地点:
.
.
为滤波器电感。
为负载电阻。
为每个MOSFET的开关周期。也就是说,,在那里为开关频率。
为每个MOSFET的栅极PWM输入的占空比。也就是说,,在那里为场效应晶体管的开启时间。
open_system (“ee_push_pull_converter_dcm.slx”);
系统需要产生和保持80v的输出电压和100w的功率要求。输入电压为400v,变压器匝比为2。负载包括一个恒定的电阻负载。“ee_push_pull_converter_dcm_data。m’脚本将设计参数定义为MATLAB®工作空间中的变量。
Input_Voltage = 400;%推挽式变换器输入电压[V]Output_Voltage = 80;%推挽式变换器输出电压要求[V]Output_Power = 1000;%满载输出功率[W]fsw_Hz = 40000;MOSFET开关频率[Hz]primary_winding = 200;%初级绕组的匝数secondary_winding = 100;%二次绕组的匝数TR = primary_winding / secondary_winding;%匝比Kp = 0.01;PI控制器的比例增益Ki = 20;% PI控制器的积分增益del_V = 1;输出电压峰值-峰值纹波百分比K = 0.3;%表示输出电压比与占空比的关系轨迹。Ts = 1 e;%求解器的采样时间
根据K和占空比建立的约束,工作模式在断续导通模式(DCM)和连续导通模式(CCM)之间切换。CCM和DCM的输出电压比为:
连续导电模式
不连续导电模式
通过生成输出电压比和占空比之间的图表,可以看到不同K值下的工作模式。从这张图中,找出相应的占空比需要实现的输出电压比在设计参数中指定的特定值K所选择的。
图;D_range = 0:0.001:1;Voltage_ratio = 0(长度(D_range));为i=1:length(D_range) K_crit =1 -D_range(i);如果K < K_crit Voltage_ratio (i) = 2 /(1 +√(1 + 4 * K / D_range(我)^ 2));其他的Voltage_ratio (i) = D_range(我);结束结束VR = Output_Voltage / (Input_Voltage / TR);责任=√4 * K / ((2 / vr - 1公司)^ 2 - 1));持有在;情节(Voltage_ratio D_range);持有在;情节(VR,责任,‘*’);ylabel (的工作周期);包含(“输出与输入电压比”);标题(“不连续模式作业区”);%所需的开环占空比约为28.28%%图。
I_average = Output_Power / Output_Voltage;%通过负载的平均电流R_const = Output_Voltage / I_average;
要估计DCM所需的电感,可以使用K、电阻和开关时间周期之间的关系。
L_min = (K * R_const) / (2 * 2 * fsw_Hz);
验证DCM运行时估计的电感值。如果该值导致CCM运行,则选择不同的K值并重新计算。迭代直到找到导致DCM操作的电感值。
电容与输出电压纹波的关系为
C_min =(2 -(责任/ (Output_Voltage / (Input_Voltage / TR)))) ^ 2 / (4 * R_const * 2 * fsw_Hz * del_V * 0.01);
生成一个图,查看限制输出电压纹波所需的电容随设计参数的变化。对于本例,1%输出电压纹波下的标记对应于8.157e-06 F的电容。
del_V_range = 0.5:0.1:5;C_range =(2 -(责任/ (Output_Voltage / (Input_Voltage / TR)))) ^ 2. / (4 * R_const * 2 * fsw_Hz * del_V_range * 0.01);图;持有在;情节(del_V_range C_range);持有在;情节(del_V C_min,‘*’);包含(的电压纹波(%));ylabel (“电容(F)”);标题(“电容Vs电压波纹”);
sim卡(“ee_push_pull_converter_dcm.slx”);
要在仿真过程中或仿真结束后查看汇总结果,可以从Scope子系统打开Circuit Scope模块,或在MATLAB命令提示符下输入:
open_system (“ee_push_pull_converter_dcm /范围/电路范围”);
要查看模拟过程中或模拟后的控制和错误数据,从Scopes子系统打开PI Controller Scope模块或输入:
open_system (“ee_push_pull_converter_dcm /范围/ PI控制器范围”);
模拟完成后,要使用Simscape Results Explorer查看已记录的Simscape™数据,请输入:
sscexplore (simlog_ee_push_pull_converter_dcm);%