1. 课程导入与仿真环境搭建

电力系统动态仿真的核心任务,是研究系统在扰动后各状态量随时间的变化过程。稳态分析回答“最终运行点在哪里”,动态仿真回答“从扰动发生到重新稳定,中间经历了什么”。例如同步发电机转子摇摆、励磁系统调压、原动机调速、逆变型电源锁相环动态、直流输电换相失败等,都属于典型的动态问题。若只做潮流计算,这些过程无法体现;若只做电磁暂态仿真,又难以在数十秒到数分钟尺度上观察机电动态。因此,动态仿真通常以“机电暂态”为主,关注秒级到分钟级的功角、频率、电压和功率变化。

MATLAB/Simulink 在电力系统分析中的定位,可以概括为“算法验证与动态建模的通用平台”。MATLAB 擅长矩阵运算、数据处理、脚本化批量仿真和结果可视化;Simulink 擅长以图形化方式搭建微分方程、控制环节和电力网络。两者结合后,既能用脚本批量修改参数、自动运行多次仿真,也能用示波器观察波形、用工作空间保存数据。对于本课程,重点不是把 MATLAB 当作潮流计算器,而是把它当作动态仿真的实验台:用脚本准备参数,用 Simulink 搭建模型,用 MATLAB 分析结果。

在开始建模前,需要先完成环境搭建。第一步是确认 MATLAB 版本与工具箱。电力系统动态仿真常用到 Simulink、Simscape Electrical(旧称 SimPowerSystems)、Control System Toolbox 和 Signal Processing Toolbox。若只做基础机电暂态,Simulink 与 Simscape Electrical 是必需项;若涉及控制器设计,Control System Toolbox 会明显提高效率。安装时可在 MATLAB 的“附加功能”中搜索并安装,安装完成后用 ver 命令检查。

ver
% 检查是否包含以下工具箱:
% Simulink
% Simscape
% Simscape Electrical
% Control System Toolbox

第二步是配置工作路径。建议为课程建立独立目录,例如 D:\MATLAB_PSD\chapter01,并在其中建立 models、scripts、data、results 四个子目录。模型文件放在 models,参数脚本放在 scripts,实测或算例数据放在 data,仿真输出放在 results。这样做的目的是避免路径混乱,也便于后续用脚本自动加载参数。

% 设置工作路径示例
projRoot = 'D:\MATLAB_PSD\chapter01';
addpath(fullfile(projRoot,'scripts'));
addpath(fullfile(projRoot,'models'));
addpath(fullfile(projRoot,'data'));
cd(projRoot);

第三步是验证环境是否可用。最直接的方法是在 Simulink 中新建一个空模型,拖入一个 Simscape Electrical 中的 RLC 支路或 Voltage Source,连接一个 Scope,设置仿真时间为 0.1 s,运行后观察波形。若波形正常显示,说明工具箱安装与路径配置均无问题。若出现“未定义函数或变量”或“无法加载模块库”,通常说明工具箱未安装或路径未加入搜索路径。

建议在每次仿真前执行 bdclose all 和 clear all,避免旧模型和旧变量影响结果。若模型使用了 powergui 模块,需确保其采样时间与求解器设置匹配。

下面用一个最小示例说明“脚本准备参数—Simulink 搭建模型—MATLAB 分析结果”的闭环。假设一个单机无穷大系统,发电机惯性时间常数 H = 5 s,阻尼系数 D = 2,初始功角 delta0 = 30°,机械功率 Pm = 0.8 p.u.,电磁功率系数 K = 1.2。在 MATLAB 脚本中定义参数:

H = 5; D = 2; delta0 = deg2rad(30);
Pm = 0.8; K = 1.2;
sim('single_machine_model');
plot(tout, delta*180/pi);
xlabel('时间 t / s'); ylabel('功角 delta / °');
grid on;

运行后,若功角曲线在扰动后逐渐衰减并趋于新的稳态值,说明系统稳定;若功角持续增大或等幅振荡,则说明稳定裕度不足或阻尼偏弱。这里的关键不是记住某个数值,而是理解“参数—模型—波形—判断”的对应关系。后续章节会逐步展开发电机、励磁、调速、负荷和逆变型电源的详细建模。

MATLAB/Simulink 电力系统动态仿真环境搭建与最小闭环 环境搭建 安装工具箱 Simulink / Simscape Electrical 配置工作路径 models / scripts / data / results 验证模块库 RLC + Scope 空模型试运行 检查求解器 powergui 采样时间匹配 环境就绪 脚本与模型 参数脚本 H=5, D=2, delta0=30° Pm=0.8, K=1.2 Simulink 模型 单机无穷大系统 发电机 + 网络 + Scope 仿真命令 sim('single_machine_model') tout / delta 输出 结果分析 plot(tout, delta*180/pi) 观察功角衰减 结果判断 稳定 功角衰减并趋于新稳态 振荡幅值逐渐减小 不稳定 功角持续增大 或等幅/发散振荡 调整方向 增大 D 或减小 Pm 检查 K 与初始功角 形成参数—波形闭环 核心闭环:脚本准备参数 → Simulink 搭建模型 → 运行仿真 → 观察波形 → 判断稳定性 → 调整参数

需要特别说明的是,动态仿真中的“稳定”并不是一个绝对概念,而是相对于给定扰动和给定时间窗口而言。同样的系统,在小扰动下可能稳定,在大扰动下可能失稳;在 10 s 窗口内看似稳定,在 60 s 窗口内可能出现低频振荡。因此,仿真前必须明确扰动类型、故障持续时间、仿真时长和观察变量。后续章节会围绕这些要素逐步展开。

不要跳过环境验证直接建模。若工具箱未正确安装,Simulink 模型可能无法打开或运行时报错;若工作路径未配置,脚本中的 sim 命令可能找不到模型文件。建议每章开始前先运行一次 ver 和路径检查。

本章的最终目标,是让读者能够独立完成三件事:第一,确认 MATLAB/Simulink 及 Simscape Electrical 可用;第二,建立规范的课程工作目录;第三,运行一个最小单机无穷大模型并观察功角曲线。完成这三件事后,后续的发电机建模、励磁系统、调速系统和逆变型电源仿真才有稳定的实验基础。