三相电压型双PWM变换器风力发电仿真系统
项目简介
本项目基于MATLAB脚本环境构建了一个完整的三相电压型双PWM变换器风力发电仿真模型。系统专为研究风力发电应用中的电能变换过程而设计,采用经典的背靠背(Back-to-Back)拓扑结构,包含机侧变流器(MSC)和网侧变流器(GSC)。
程序不依赖Simulink图形化模块,而是通过编写底层数学模型和控制算法代码(main.m),在离散时间步长下对从永磁同步电机(PMSG)到电网的整个电气系统进行全物理流程仿真。该仿真验证了矢量控制策略在双向功率流动、直流母线电压稳压以及最大风能捕获方面的有效性。
功能特性
- 全代码级物理仿真:脱离Simulink图形库,完全通过数学方程(欧拉法离散化)模拟电机、滤波器、直流电容等物理对象的动态响应。
- 网侧矢量控制(VOC):实现了基于电网电压定向的矢量控制,包含电压外环和电流内环,具备前馈解耦功能,确保单位功率因数并网。
- 机侧矢量控制(FOC):针对永磁同步电机采用了转子磁场定向控制,实现转速与转矩的精确调节,模拟发电工况。
- 锁相环(PLL)技术:内建软件锁相环算法,能够实时跟踪电网电压的频率和相位,为坐标变换提供基准。
- 动态工况模拟:模拟了风速变化导致的负载转矩突变过程,验证系统的抗干扰能力和动态调节性能。
系统要求
- MATLAB R2016a及以上版本
- 无需额外工具箱,基于MATLAB基础数学计算功能
使用方法
- 确保MATLAB环境已准备就绪,清除之前的变量空间。
- 直接运行主仿真脚本。
- 脚本将初始化系统参数,执行离散时间步长的迭代计算。
- 程序运行过程中会计算各节点的电压、电流、转速及功率数据。
代码实现逻辑详解
主脚本文件是通过离散时间迭代来模拟连续物理系统的。代码主要分为三个核心部分:参数初始化、状态变量定义、主仿真循环。
1. 系统参数初始化
代码首先定义了仿真和物理系统的关键常数:
- 仿真设置:定义了5微秒(5e-6s)的精细仿真步长,总时长设为0.4秒。
- 电网参数:设定380V/50Hz的标准三相电网,包含网侧滤波电感(Lg)和电阻。
- 直流母线:定义了直流电容值及700V的母线电压参考值。
- 电机参数:配置了4极对数的永磁同步电机(PMSG)参数,包括定子电阻、d/q轴电感、磁链及转动惯量。
- 控制参数:分别为GSC(电压外环、电流内环、PLL)和MSC(转速外环、电流内环)配置了PI控制器增益。
2. 状态变量初始化
在进入循环前,程序初始化了所有随时间更新的状态量:
- 电气状态:网侧和机侧的三相电流初始值为0,直流母线电压预设为参考值的90%(模拟预充电)。
- 机械状态:电机转速和转子位置初始化为0。
- 控制器状态:PLL积分项、各PI控制器的积分累积项(用于存储历史误差)。
- 数据记录:预分配了用于存储仿真结果的数组,以提高运行效率。
3. 主仿真循环
核心循环模拟了时间轴的推进,每一步执行以下四个环节:
#### A. 环境模型构建
- 电网电压生成:根据当前时间生成理想的三相正弦波电压。
- 风力机模拟:模拟机械转矩输入。代码设定在0.2秒前为-5.0 N·m(启动/低风速),0.2秒后突变为-20.0 N·m(额定负载)。负号明确表示电机工作在发电模式。
- 转速指令:简化了MPPT过程,设定恒定参考转速为100 rad/s。
#### B. 网侧控制(GSC)实现
该部分实现了完整的电压定向控制(VOC):
- 坐标变换:对采样得到的网侧电流进行Clark变换(abc静止坐标系转alpha/beta静止坐标系)。
- 软件锁相环(PLL):
* 通过Park变换计算q轴电压分量。
* 利用PI控制器调节q轴电压至0,输出估算频率和相角。
* 对积分后的相位角进行归一化处理(0到2π)。
- 双闭环控制:
*
电压外环:比较直流母线电压与参考值,PI输出d轴电流参考值(负责有功平衡),q轴电流参考设为0(单位功率因数)。
*
电流内环:比较实际d/q轴电流与参考值,PI输出控制电压。
*
前馈解耦:引入电网电压前馈和交叉耦合项($omega L$),消除d、q轴之间的耦合影响。
- SVPWM近似:代码采用平均电压模型,对计算出的参考电压进行幅值限幅(线性调制区由直流电压决定),直接作为物理模型的输入电压,未生成高频PWM脉冲,以提高仿真速度。
#### C. 机侧控制(MSC)实现
该部分实现了转子磁场定向控制(FOC):
- 坐标变换:基于电机转子实际位置(Theta_m)进行Clark和Park变换。
- 控制回路:
*
转速外环:控制电机转速跟踪参考值,PI输出q轴电流参考值(与电磁转矩成正比)。加入了电流限幅(+/- 40A)。
*
电流内环:采用$I_d=0$控制策略(表贴式PMSM最优转矩控制),d轴参考电流设为0。PI控制器结合交叉耦合解耦和反电势前馈,计算出电机端参考电压。
* 同样采用电压限幅处理,防止过调制。
#### D. 物理系统离散化求解
该部分利用欧拉法手动求解微分方程,更新系统状态:
- 网侧电路方程:基于电感电压方程 $Lfrac{di}{dt} = e_g - v_{conv} - iR$,计算电流导数。
- 状态更新:利用
当前值 + 导数 * 步长 的方式更新网侧电流状态。 - *(注:代码中包含了alpha/beta坐标系下的物理方程求解步骤)*
关键算法说明
- 坐标变换:程序手动实现了Clark(3/2变换)和Park(旋转变换)及其逆变换,是矢量控制的核心数学基础。
- PI调节器:所有的闭环控制(转速、电流、电压、PLL)均采用增量式或位置式PI算法,通过累积误差消除稳态误差。
- 前馈解耦:在网侧和机侧电流环中,均显式计算了耦合电压项并进行补偿,这显著提高了系统在动态过程中的响应速度和独立调节能力。
- 平均值模型:为了关注控制策略本身而非开关谐波,代码忽略了IGBT的开关过程,假设变流器能完美输出控制器计算的指令电压,这是一种常用的系统级仿真近似手段。