双馈发电机 (DFIG) 转子侧变流器 (RSC) 控制电路仿真
项目简介
本项目是一个基于MATLAB代码构建的双馈感应发电机(DFIG)转子侧变流器(RSC)控制系统仿真模型。代码模拟了1.5MW级别的双馈风力发电机在并网运行状态下的动态特性。项目核心在于实现了基于定子电压定向(SVO)的矢量控制策略,通过转子侧电流的双闭环调节,实现了对发电机定子侧有功功率和无功功率的独立解耦控制。
功能特性
- 定子电压定向矢量控制:采用理想的定子电压定向(Stator Voltage Orientation, SVO)策略,将旋转坐标系的d轴定向于定子电压矢量方向,从而简化功率控制方程。
- 双闭环控制架构:
*
外环(功率环):直接控制有功功率(P)和无功功率(Q),通过PI调节器生成转子电流参考值(Idr_ref, Iqr_ref)。
*
内环(电流环):精确跟踪转子d轴和q轴电流,通过PI调节器生成转子电压参考值(Ur_ref)。
- 解耦与补偿:代码中显式实现了前馈解耦项,用于消除d-q轴之间的交叉耦合电压,并包含简化的反电动势(Back-EMF)补偿,以提高动态响应性能。
- 工况模拟:预设了阶跃响应测试场景,模拟了发电机在亚同步转速(0.8 p.u.)下,有功功率和无功功率指令发生突变时的系统行为。
- 变流器调制模拟:包含针对SVPWM的电压限幅逻辑,模拟实际物理硬件的直流母线电压限制。
系统要求
- MATLAB R2018b 或更高版本
- 不需要额外的Simulink工具箱,基于纯脚本(m-file)运行
实现细节与算法分析
本项目的核心逻辑集中在一个主控脚本中,利用离散时间步进模拟连续系统的动态行为。以下是代码实际实现的详细逻辑流程:
1. 系统参数定义
仿真对象为一台
1.5MW、690V、50Hz 的双馈异步发电机。代码中详细定义了发电机的物理参数,包括:
- 定子与转子电阻、漏感、互感。
- 计算了全电感和漏磁系数(Sigma),这是解耦控制的关键参数。
- 设定了直流母线电压为1200V,仿真步长为50微秒(20kHz控制频率)。
2. 初始化与状态设置
- PI控制器:分别为电流环(内环)和功率环(外环)配置了经验整定的Kp和Ki参数。
- 初始状态:电机初始化在亚同步运行状态(转速为同步转速的80%),初始时刻电磁量均为零。
3. 主仿真循环逻辑
仿真通过一个时间步进循环执行,每个周期执行以下操作:
#### A. 同步与定向 (理想PLL)
代码未采用基于电压采样的锁相环(PLL),而是直接利用仿真时间生成理想的电网角度(theta_g),并假设定子电压完全定向在d轴(Usd = Um, Usq = 0)。
#### B. 转差与角度计算
根据恒定的电机转速和电网频率,计算转差频率(w_slip)和转差角。这是实现磁场定向控制(FOC)坐标变换的基础。
#### C. 指令生成 (Reference Generation)
代码内置了一个时间触发的序列发生器,用于测试控制器的阶跃响应:
- 0 ~ 0.2秒:空载运行。
- 0.2 ~ 0.5秒:有功功率阶跃至 -50% 额定功率(发电模式)。
- 0.5秒以后:投入无功功率指令,阶跃至 -30% 额定功率(感性无功)。
- 平滑处理:对阶跃指令应用了一阶低通滤波器,以模拟软启动并防止过大的冲击。
#### D. 测量与反馈
利用上一时刻的电流状态,依据SVO控制下的功率方程计算当前的瞬时有功(Ps)和无功(Qs)作为反馈量。
#### E. 矢量控制策略 (核心算法)
- 功率环(外环):
* 计算功率误差(参考值 - 测量值)。
* 由于在发电机惯例和SVO定向下,有功功率与转子q轴电流呈负相关(Ps ~ -Iqr),无功功率与转子d轴电流呈负相关(Qs ~ -Idr),代码在PI运算后进行了负号处理,将控制信号转换为正确的电流参考方向。
* 包含电流限幅逻辑,确保生成的参考电流矢量幅值不超过变流器最大允许电流。
- 电流环(内环):
* 计算转子电流误差(Idr, Iqr)。
* 通过PI调节器计算基础电压控制量。
- 前馈解耦:
* 代码显式计算了交叉耦合项:
V_comp_d = -w_slip * sigma * Lr * Iqr 和
V_comp_q = w_slip * sigma * Lr * Idr。
* 这些项被叠加到PI输出上,用于抵消旋转坐标系下d轴和q轴电流的相互干扰,实现独立控制。
- SVPWM 等效处理:
* 计算出的参考电压矢量(Udr, Uqr)经过幅值检查。
* 如果请求电压超过了直流母线电压限制下的SVPWM线性区(Vbus/sqrt(3)),则对电压矢量进行等比例缩放(削顶),模拟过调制或电压饱和现象。
#### F. 物理模型求解
虽然代码主要关注控制器实现,但其结构包含了物理对象的离散化求解逻辑(注释中体现),利用差分方程更新下一时刻的定子和转子电流状态,从而闭合仿真回路。
使用方法
- 确保MATLAB环境已安装。
- 直接运行主脚本文件。
- 仿真将自动执行0.8秒的动态过程。
- 脚本运行结束后,通常会生成数据记录数组(如
log_Is_abc, log_P, log_Q 等),可利用 MATLAB 的 plot 命令直接绘制波形,观察有功/无功功率的跟踪效果及电流响应曲线。