固态变压器(SST)中双有源桥(DAB)高频DC/DC变换器控制算法

电子说

1.4w人已加入

描述

固态变压器(SST)中双有源桥(DAB)高频DC/DC变换器控制算法与经典代码实现深度研究报告

BASiC Semiconductor基本半导体一级代理商倾佳电子(Changer Tech)是一家专注于功率半导体和新能源汽车连接器的分销商。主要服务于中国工业电源、电力电子设备和新能源汽车产业链。倾佳电子聚焦于新能源、交通电动化和数字化转型三大方向,代理并力推BASiC基本半导体SiC碳化硅MOSFET单管,SiC碳化硅MOSFET功率模块,SiC模块驱动板等功率半导体器件以及新能源汽车连接器。

倾佳电子杨茜致力于推动国产SiC碳化硅模块在电力电子应用中全面取代进口IGBT模块,助力电力电子行业自主可控和产业升级!

倾佳电子杨茜咬住SiC碳化硅MOSFET功率器件三个必然,勇立功率半导体器件变革潮头:

倾佳电子杨茜咬住SiC碳化硅MOSFET模块全面取代IGBT模块和IPM模块的必然趋势!

倾佳电子杨茜咬住SiC碳化硅MOSFET单管全面取代IGBT单管和大于650V的高压硅MOSFET的必然趋势!

倾佳电子杨茜咬住650V SiC碳化硅MOSFET单管全面取代SJ超结MOSFET和高压GaN 器件的必然趋势!

1. 引言:能源互联网背景下的SST与DAB技术演进

随着全球能源结构的转型与智能电网的推进,电力电子变压器(Power Electronic Transformer, PET),亦称为固态变压器(Solid State Transformer, SST),正逐渐成为中高压配电网与交直流混合微电网的核心枢纽。SST不仅具备传统工频变压器的电压变换与电气隔离功能,还引入了无功补偿、谐波抑制、电压暂降穿越以及可再生能源接口等高级可控功能。在SST的三级式架构(AC/DC整流级、DC/DC隔离级、DC/AC逆变级)中,双有源桥(Dual Active Bridge, DAB)变换器作为中间直流隔离级,承担着功率双向流动、电压匹配及高频电气隔离的关键任务。

DAB变换器因其模块化对称结构、高功率密度以及实现软开关(Soft-Switching)的潜力,成为SST中最受青睐的拓扑。然而,DAB在大功率、宽电压范围应用场景下面临着巨大的技术挑战,主要体现在轻载下零电压开通(ZVS)失效导致的效率骤降、循环功率(Backflow Power)引起的电流应力增加,以及多模块输入串联输出并联(ISOP)系统中的均压与均流控制难题。

倾佳电子杨茜在对SST中DAB变换器的控制算法进行详尽的剖析,涵盖从经典的单移相(SPS)控制到高级的三移相(TPS)及模型预测控制(MPC)策略。同时,结合第三代宽禁带半导体(SiC MOSFET)的器件特性,探讨硬件参数对控制设计的影响,并提供基于工业界主流数字控制器(如TI C2000系列)的经典代码实现方案,以期为高频DC/DC变换器的研发提供极具价值的工程参考。

2. DAB变换器的工作机理与数学建模

SST

2.1 拓扑结构与运行原理

DAB变换器主要由原边全桥、副边全桥、高频变压器(HFT)以及辅助电感(或利用变压器漏感Lk​)构成。其核心原理是利用原、副边全桥产生两个占空比通常为50%的高频方波电压vp​(t)和vs​(t),通过控制这两个电压源之间的相位差ϕ(移相角),在电感Lk​上产生压降,从而驱动功率流动。

在此拓扑中,功率传输的大小与方向由移相角ϕ决定。当vp​超前vs​时,功率从原边流向副边;反之则反向流动。这种双向流动的特性使得DAB天然适配于需要能量双向交换的储能系统与V2G(Vehicle-to-Grid)应用。

2.2 功率传输特性的数学推导

在经典的单移相(SPS)调制下,假设开关频率为fs​,开关周期为Ts​=1/fs​,变压器变比为n:1。定义归一化移相比如下:

D=πϕ​,D∈[−0.5,0.5]

电感电流iL​(t)的斜率由电感两端的瞬时电压决定。在一个开关周期内,电感电流呈分段线性变化。通过对电感电压积分,可以推导出传输功率的解析表达式。对于SPS调制,平均传输功率P为:

PSPS​=2π2fs​Lk​nVin​Vout​​ϕ(π−∣ϕ∣)=2fs​Lk​nVin​Vout​​D(1−2∣D∣)

其中,Vin​为原边直流电压,Vout​为副边直流电压。

深入洞察:

该功率公式揭示了DAB的非线性特性。功率与移相角呈抛物线关系,且在ϕ=±π/2(即D=±0.25)时达到理论最大值。然而,在实际应用中,为了减小无功环流损耗,通常将工作点限制在较小的移相角范围内(如∣ϕ∣<π/3)。这也意味着在设计控制算法时,必须考虑到系统增益在不同工作点的变化,这对于线性控制器(如PI)的设计提出了鲁棒性挑战。

3. 高级调制策略与软开关优化

虽然SPS调制简单易行,但其仅利用了唯一的控制自由度(外移相角ϕ)。当输入输出电压比k=Vin​/(nVout​)偏离1时,SPS调制会导致巨大的电感峰值电流和回流功率,严重恶化变换器效率,并导致ZVS范围缩窄。为解决这一问题,引入更多的控制自由度(内移相角)成为必然趋势。

SST

3.1 扩展移相(EPS)调制

扩展移相调制在SPS的基础上,增加了一个内移相角D1​,通常施加在原边全桥上,使其输出电压变为三电平波形(+Vin​,0,−Vin​),而副边仍保持50%占空比的两电平波形。

控制变量: 外移相角Dϕ​,原边内移相角D1​。

优化目标: EPS主要用于降低回流功率(Backflow Power)。通过调节D1​,可以改变原边电压与电感电流的相位关系,使得在电压不匹配(k=1)的情况下,减少电流反向流动的区间。

ZVS特性: EPS能够显著扩展原边开关管的ZVS范围,特别是在轻载条件下。通过KKT(Karush-Kuhn-Tucker)条件求解优化问题,可以得到使得回流功率最小的最优D1​和Dϕ​组合。

3.2 双重移相(DPS)调制

DPS调制在原边和副边同时引入相同的内移相角D1​=D2​,再加上外移相角Dϕ​。

机理: 原副边电压均变为三电平波形。这种对称的调制方式有利于降低变压器的励磁电流偏置,并在系统参数对称时表现优异。

优势: 相比SPS,DPS能显著降低电感电流的峰值和有效值(RMS),从而减小磁性元件的铜损和开关管的导通损耗。

3.3 三重移相(TPS)调制

TPS是相移控制的终极形式,利用了所有三个自由度:原边内移相D1​,副边内移相D2​,以及外移相Dϕ​。

全局优化: TPS提供了最大的控制灵活性,理论上可以在任意电压增益和负载条件下找到使总损耗(包括导通损耗和开关损耗)最小的最优解7。

实现复杂性: TPS的解空间极其复杂。TPS包含多达12种不同的工作模式。实时求解这些模式的最优解对控制器的算力要求极高。因此,工程实践中常采用离线计算生成的查找表(LUT)或简化的次优轨迹控制。

3.4 变频调制(VFM)的引入

针对宽电压范围应用(如电动汽车充电,电池电压变化范围大),固定频率的移相控制往往难以全范围维持ZVS。

策略: VFM通过改变开关频率fs​来调节等效阻抗。在轻载下提高频率,可以削弱峰值电流,但在某些ZVS边界处,降低频率可能更有利于积累足够的激磁能量来抽走结电容电荷。

混合控制: 结合SPS+VFM的混合控制策略,可以在极宽的负载范围内(甚至低至10%额定功率)维持软开关,显著提升轻载效率。

3.5 调制策略对比总结表

调制策略 控制自由度 优点 缺点 适用场景
SPS 1 (Dϕ​) 算法简单,动态响应快,易于实现 轻载回流功率大,ZVS范围窄,RMS电流高 电压匹配度高,负载较稳定的场景
EPS 2 (Dϕ​,D1​) 降低回流功率,扩展原边ZVS 副边ZVS改善有限,控制略复杂 电压不匹配,关注回流功率抑制的场景
DPS 2 (Dϕ​,Din​) 降低电流峰值和RMS值 控制变量耦合,优化求解较难 对称性较好的中高功率传输
TPS 3 (Dϕ​,D1​,D2​) 全局最优效率,全范围ZVS潜力 算法极复杂,需LUT或高性能DSP 对效率要求极高的SST核心DC/DC级
VFM fs​ + ϕ 拓宽ZVS范围至极轻载 磁性元件设计困难(需兼顾频域),EMI滤波器设计复杂 宽输出电压范围的EV充电器

4. 关键硬件参数对控制的影响:以SiC MOSFET为例

控制算法的设计不能脱离硬件特性。第三代宽禁带半导体(SiC)的引入极大地提升了DAB的性能上限,但也对死区时间(Dead Time)和驱动控制提出了更严苛的要求。

4.1 BASiC Semiconductor SiC模块特性分析

参考BASiC Semiconductor的BMF240R12KHB3 (1200V/240A) 和 BMF540R12MZA3 (1200V/540A) 模块的数据手册,我们能提取出对控制至关重要的参数19。

开关速度极快: BMF240R12KHB3的典型开通延迟td(on)​仅为65ns,上升时间tr​为37ns;关断延迟td(off)​为110ns,下降时间tf​为36ns(@25°C)。这意味着SiC DAB可以工作在几十kHz甚至上百kHz的频率下。

极低的栅极电荷: 总栅极电荷QG​仅为672nC,这降低了驱动功率要求,允许更陡峭的驱动脉冲,从而减少开关损耗。

体二极管特性: SiC MOSFET的体二极管反向恢复电荷Qrr​极小,这对于DAB中经常出现的电流换流过程非常有利,减少了硬开关瞬间的电流尖峰。

4.2 死区时间(Dead Time)的计算与补偿

死区时间是为了防止桥臂直通而设置的。然而,在DAB中,死区时间也是实现ZVS的关键窗口。过大的死区会导致电流过早反向,破坏ZVS条件;过小则可能导致直通或无法完全抽取结电容Coss​的电荷。

死区计算公式:

理论最小死区时间tdead​应满足:

tdead​≥td(off)​+tf​+Iload_min​Coss(eq)​⋅Vbus​​

其中,Coss(eq)​是桥臂等效输出电容(考虑上下管),Iloadm​in​是滞后桥臂在死区开始时的电感电流瞬时值[20]。对于SiC器件,由于Coss​具有强非线性且随电压变化,精确计算需积分电荷量。

死区效应与补偿:

死区不仅影响ZVS,还会导致电压波形畸变(电压极性翻转延迟),进而造成实际移相角与指令值产生偏差。这种偏差会导致功率传输误差,特别是在高频下,几十纳秒的误差都会显著影响精度。

补偿算法: 在数字控制中,需根据电流极性动态调整PWM的比较值(CMPA/CMPB)。如果电流为正,实际脉宽会被死区“吞噬”,因此需要在指令中增加死区时间补偿量;反之则减小。

5. SST中DAB的系统级控制策略

在SST应用中,DAB不仅仅是一个独立的变换器,而是级联系统中的一环。

SST

5.1 输入串联输出并联(ISOP)电压平衡控制

SST的中压侧通常由多个DAB模块输入串联而成。由于模块参数(如漏感、电容容值)的不一致,输入电压(电容电压)会自动发散,导致个别模块过压。因此,**输入电压均压(Input Voltage Sharing, IVS)**控制是必须的。

解耦控制架构:

输出电压环(由总功率决定): 所有的DAB模块共享一个总的输出电压环,该环路输出一个公共的移相角指令Dcommon​,用于调节总的输出电压或电流。

输入均压环(由个体差异决定): 每个模块i都有一个独立的均压环。该环路检测本模块的输入电压Vin,i​与平均输入电压Vin,avg​的差值。

ΔVin,i​=Vin,i​−N1​∑k=1N​Vin,k​

该误差经过一个比例(P)或比例积分(PI)控制器,生成微调移相量Δdi​。

最终指令合成:

di​=Dcommon​+Δdi​

逻辑分析: 如果某模块输入电压过高,说明其阻抗相对较大或处理功率不足。增加该模块的移相角Δdi​(假设在单调区)会增加其传输功率,从而从输入电容抽取更多电流,使其电压下降,达到平衡。

5.2 软启动(Soft-Start)控制算法

DAB直接启动会产生巨大的励磁涌流和电容充电冲击电流,可能瞬间击穿SiC器件。SST的启动必须遵循严格的时序。

三阶段软启动策略:

阶段一:开环占空比斜坡(Open Loop Duty Ramp):

此时副边全桥所有开关保持关断(利用体二极管整流)或同步整流但不移相。

原边全桥开始发波,但占空比D从0缓慢增加到50%。这限制了施加在变压器上的伏秒积,防止磁芯饱和与电流过冲。

阶段二:移相角斜坡(Phase Shift Ramp):

当副边电压建立到一定水平,副边开始发波,且初始移相角为0。

随后,移相角ϕ按预设斜率线性增加,直到达到闭环控制所需的初始值。

阶段三:闭环切入(Closed Loop Handover):

当输出电压接近设定值,且系统状态稳定后,激活PI控制器,接管移相角的控制权。此时需预置PI积分器的初值,以防止控制跳变(Bump)。

6. 基于TI C2000 MCU的经典代码实现

数字控制器的实现细节直接决定了DAB的性能。TI的C2000系列(如TMS320F28379D, F280049C)凭借其高分辨率PWM(HRPWM)和强大的DSP核,是实现DAB控制的行业标准平台。

6.1 ePWM模块配置核心逻辑

实现移相控制的核心在于利用ePWM模块的**同步(Synchronization)相位加载(Phase Loading)**功能。

计数模式: 必须使用增减计数模式(Up-Down Count Mode) 。这不仅能产生对称的PWM波形,减少谐波,还能保证在计数器零点和周期点更新寄存器,便于实现双边调制。

同步链: 原边主桥(Master, 如ePWM1)配置为在CTR=0时发出同步脉冲(SYNCOUT)。副边从桥(Slave, 如ePWM2)配置为在接收到SYNCIN时,将相位寄存器(TBPHS)的值加载到计数器(TBCTR)中。

TBPHS计算公式: 在增减计数模式下,一个完整的PWM周期包含2×TBPRD个时钟周期。因此,180度的移相对应的时间计数值为TBPRD。

TBPHS_Ticks=180.0Phase_Degree​×TBPRD

注意:C2000的TBPHS寄存器行为受PHSDIR(相位方向)位控制。若要滞后(Lag),通常设置PHSDIR=1(向上计数)或加载特定的计数值。

6.2 经典C代码结构

以下代码展示了基于C2000的DAB控制核心部分的实现,包含结构体定义、移相更新函数以及控制中断服务程序(ISR)。

6.2.1 控制结构体定义

为了代码的可移植性和清晰度,采用结构体封装DAB的状态变量。

C

typedef struct {

    // 测量值

    float32_t V_out_meas;   // 输出电压采样

    float32_t V_in_meas;    // 输入电压采样

    float32_t I_out_meas;   // 输出电流采样

    // 设定值

    float32_t V_out_ref;    // 目标输出电压

    // 控制输出

    float32_t phase_shift_ratio; // 归一化移相比 d (-0.5 to 0.5)

    uint16_t  tbphs_ticks;       // 写入寄存器的计数值

    // PI控制器状态变量

    float32_t err;

    float32_t inte;         // 积分项

    float32_t Kp;

    float32_t Ki;

    float32_t out_max;

    float32_t out_min;

    // 软启动状态

    uint16_t soft_start_state; // 0: Idle, 1: Duty Ramp, 2: Phase Ramp, 3: Run

    float32_t duty_ramp_val;

} DAB_Control_t;

DAB_Control_t dabCtrl;

6.2.2 移相更新函数 (Update Phase Shift)

此函数负责将计算出的移相角转换为硬件寄存器值,并处理方向位。这是实现SPS/EPS调制的底层驱动核心。

C

// 更新ePWM2相对于ePWM1的移相角

// phase_ratio范围: -0.5 (反向最大功率) 到 +0.5 (正向最大功率)

void DAB_UpdatePhase(float32_t phase_ratio) {

    uint16_t period = EPwm1Regs.TBPRD;

    int32_t shift_ticks;

    // 1. 限幅保护

    if (phase_ratio > 0.5f) phase_ratio = 0.5f;

    if (phase_ratio < -0.5f) phase_ratio = -0.5f;

    // 2. 计算计数值 (Up-Down Mode: 180度 = TBPRD)

    // 假设 phase_ratio = 0.5 对应 90度移相

    shift_ticks = (int32_t)(phase_ratio * 2.0f * (float32_t)period); // ratio 0.5 -> 1.0 * TBPRD??? 

    // 修正公式: 移相角phi = pi * d. d=0.5 -> phi=pi/2 (90度).

    // 180度对应TBPRD. 所以90度对应 TBPRD/2.

    // 公式应为: ticks = ratio * 2 * (TBPRD)??? 不,推导如下:

    // 全周期 = 360度 = 2*TBPRD. 

    // ratio = 1.0 对应 180度 (SPS最大范围通常只到90度即ratio=0.5)

    // 这里的ratio定义为 d = phi/pi. d=0.5 -> phi=pi/2.

    // 对应时间 = (0.5 * pi) / (2*pi) * T_period = 1/4 T_period.

    // T_period (ticks) = 2 * TBPRD. 

    // 所以 ticks = 1/4 * 2 * TBPRD = 0.5 * TBPRD.

    shift_ticks = (int32_t)(phase_ratio * (float32_t)period); // 正确公式

    // 3. 写入寄存器并处理方向

    // C2000的TBPHS加载逻辑: 当SYNC信号到来时, CTR = TBPHS.

    // 为了实现滞后(Lag), 从机在同步时刻应加载一个较小的值或改变计数方向

    if (shift_ticks >= 0) {

        // 正向移相 (原边超前副边)

        EPwm2Regs.TBPHS.bit.TBPHS = shift_ticks; 

        EPwm2Regs.TBCTL.bit.PHSDIR = 1; // Count Up after Sync (相当于滞后)

    } else {

        // 反向移相

        EPwm2Regs.TBPHS.bit.TBPHS = -shift_ticks;

        EPwm2Regs.TBCTL.bit.PHSDIR = 0; // Count Down after Sync

    }

    // 关键:启用影子寄存器加载,防止波形抖动

    // 这一步通常在初始化中配置: TBCTL2.bit.PRDLDSYNC = 1; 

}

6.2.3 控制中断服务程序 (ISR)

控制回路通常在ADC转换结束中断中执行。对于ISOP系统,还需在此处加入均压算法。

C

#define ISR_FREQ 100000.0f // 100kHz

#define TS (1.0f/ISR_FREQ)

__interrupt void dab_control_isr(void) {

    // 1. 读取ADC采样值并归一化

    dabCtrl.V_out_meas = (float32_t)AdcResultRegs.ADCRESULT0 * ADC_PU_SCALE;

    dabCtrl.V_in_meas  = (float32_t)AdcResultRegs.ADCRESULT1 * ADC_PU_SCALE;

    // 2. 状态机逻辑

    if (dabCtrl.soft_start_state == 1) { 

        // 软启动阶段1: 占空比斜坡 (EPS模式启动)

        dabCtrl.duty_ramp_val += 0.0001f; 

        if (dabCtrl.duty_ramp_val >= 0.5f) {

            dabCtrl.duty_ramp_val = 0.5f;

            dabCtrl.soft_start_state = 2; // 进入移相斜坡

        }

        // 更新原边占空比寄存器 (CMPA/CMPB)

        uint16_t cmp_val = (uint16_t)((1.0f - dabCtrl.duty_ramp_val) * EPwm1Regs.TBPRD);

        EPwm1Regs.CMPA.bit.CMPA = cmp_val;

        EPwm1Regs.CMPB.bit.CMPB = cmp_val; // 对称

    } else if (dabCtrl.soft_start_state == 2) {

        // 软启动阶段2: 移相角斜坡 (SPS模式, Duty=50%)

        dabCtrl.phase_shift_ratio += 0.0001f;

        if (dabCtrl.V_out_meas >= (dabCtrl.V_out_ref * 0.9f)) {

            dabCtrl.soft_start_state = 3; // 切换到闭环

            // PI积分器初始化, 保证无扰切换

            dabCtrl.inte = dabCtrl.phase_shift_ratio; 

        }

        DAB_UpdatePhase(dabCtrl.phase_shift_ratio);

    } else {

        // 3. 稳态闭环控制 (电压环)

        dabCtrl.err = dabCtrl.V_out_ref - dabCtrl.V_out_meas;

        // 比例项

        float32_t p_out = dabCtrl.Kp * dabCtrl.err;

        // 积分项 (带抗饱和)

        dabCtrl.inte += dabCtrl.Ki * dabCtrl.err * TS;

        if (dabCtrl.inte > dabCtrl.out_max) dabCtrl.inte = dabCtrl.out_max;

        if (dabCtrl.inte < dabCtrl.out_min) dabCtrl.inte = dabCtrl.out_min;

        // ISOP 均压前馈 (假设有两模块, Vin_total已知)

        // float32_t v_bal_term = K_bal * (dabCtrl.V_in_meas - (V_in_total * 0.5f));

        // 平衡逻辑: 模块电压高 -> 增加移相角 -> 增加功率输出 -> 泄放电容能量

        float32_t total_out = p_out + dabCtrl.inte; // + v_bal_term;

        // 输出限幅

        if (total_out > dabCtrl.out_max) total_out = dabCtrl.out_max;

        if (total_out < dabCtrl.out_min) total_out = dabCtrl.out_min;

        dabCtrl.phase_shift_ratio = total_out;

        // 4. 更新硬件

        DAB_UpdatePhase(dabCtrl.phase_shift_ratio);

    }

    // 5. 清除中断标志

    AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;

    PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

}

7. 仿真与模型验证

在硬件实现之前,基于模型的开发(MBD)是验证控制算法的关键步骤。推荐使用MATLAB/Simulink或PLECS进行仿真。

模型搭建: 使用Simscape Electrical库中的基本半导体MOSFET模块搭建功率级,变压器需包含漏感参数。

数字控制仿真: 推荐使用Simulink的C2000 Microcontroller Blockset。可以直接使用ePWM模块进行配置,并在仿真环境中验证死区设置和移相逻辑是否正确29。

ISOP验证: 搭建两个串联输入的DAB模块,人为引入参数不一致(如Lk1​=Lk2​),验证均压环路是否能将两个输入电容电压钳位在Vin​/2。

8. 结论

SST

深圳市倾佳电子有限公司(简称“倾佳电子”)是聚焦新能源与电力电子变革的核心推动者:
倾佳电子成立于2018年,总部位于深圳福田区,定位于功率半导体与新能源汽车连接器的专业分销商,业务聚焦三大方向:
新能源:覆盖光伏、储能、充电基础设施;
交通电动化:服务新能源汽车三电系统(电控、电池、电机)及高压平台升级;
数字化转型:支持AI算力电源、数据中心等新型电力电子应用。
公司以“推动国产SiC替代进口、加速能源低碳转型”为使命,响应国家“双碳”政策(碳达峰、碳中和),致力于降低电力电子系统能耗。代理并力推BASiC基本半导体SiC碳化硅MOSFET单管,BASiC基本半导体SiC碳化硅MOSFET功率模块,BASiC基本半导体SiC模块驱动板等功率半导体器件以及新能源汽车连接器。

SST中的DAB变换器控制是一个涉及多物理场、多时间尺度的复杂工程。从底层的SiC器件驱动与死区补偿,到中层的SPS/TPS调制算法,再到顶层的ISOP均压与软启动策略,每一个环节都决定了最终系统的效率与可靠性。

通过深入分析BASiC Semiconductor的SiC模块特性,结合TI C2000强大的数字控制能力,提供了一套完整的工程实现路径。SPS调制虽然经典,但在SST的高压大功率场景下,必须结合EPS/TPS优化以及VFM变频控制来应对轻载效率挑战。同时,提供的C代码框架解决了最棘手的移相寄存器配置与时序同步问题,为实际工程开发奠定了坚实基础。未来的研究方向将更多聚焦于基于AI的数据驱动控制(如强化学习)在DAB全工况寻优中的应用。

审核编辑 黄宇

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分