基于matlab的电力系统暂态分析(第四版)例2-4的Park变换

1.park变换

Park变换,又称Clarke-Park变换或Park坐标变换,是一种在电力电子、电机控制等领域广泛应用的数学变换方法。它将三相静止坐标系(α-β坐标系)中的电压、电流或磁链等电气量转换为两相旋转坐标系(d-q坐标系)。这种变换有助于简化控制系统的设计和分析,特别是在交流电机(如感应电机、永磁同步电机等)的矢量控制中,Park变换起到了关键作用。

8466424a9ab24d09987e60326e9ee602.png

同步发电机的空间相量图

2.matlab绘图

原题提供了三个定子三相电流的瞬时值,这里只做了第一个,其它两个方法基本相同。由于原题中部分参数并为给出,采取自定义。

3.matlab代码

%% 定义参数
T = 50; % 时间范围
num_samples = 100000; % 样本数量
dt = T / num_samples; % 时间步长
t = 0:dt:0.2; % 时间向量
Iml = 45; % 幅值
omega = 100 * pi; % 角频率
alpha1 = 135; % 初始相位角
theta = omega * t + 30; % 角度向量

%% 计算三相电流瞬时值
ia = Iml * cos(omega .* t + alpha1);
ib = Iml * cos(omega .* t + alpha1 - 2 .* pi / 3);
ic = Iml * cos(omega .* t + alpha1 + 2 .* pi / 3);

%% 计算Park变换后的Id, Iq和I0
%采用课本49页公式2-68
Id = 3 / 2 * (ia .* cos(theta) + ib .* cos(theta - 2 .* pi / 3) + ic .* cos(theta + 2 .* pi / 3));
Iq = -3 / 2 * (ia .* sin(theta) + ib .* sin(theta - 2 .* pi / 3) + ic .* sin(theta + 2 .* pi / 3));
I0 = (ia + ib + ic) / 3;

%% 创建图形窗口并设置子图
figure; % 创建一个新的图形窗口
ax1 = subplot(2, 1, 1); %设置第一个子图在第一行第一列 
ax2 = subplot(2, 1, 2); %设置第二个子图在第二行第一列

% 第一个子图设置
axis(ax1, [min(t) max(t) -Iml Iml]); % 调整坐标轴范围
hAx = subplot(2, 1, 1); % 获取第一个子图句柄
xlabel(hAx, 't(s)');%命名x轴标签为‘t(s)’
ylabel(hAx, '电流(A)');%命名y轴标签为‘电流(A)’
line1 = animatedline('Parent', ax1, 'Color', 'r', 'LineWidth', 3);
line2 = animatedline('Parent', ax1, 'Color', 'g', 'LineWidth', 3);
line3 = animatedline('Parent', ax1, 'Color', 'b', 'LineWidth', 3);
legend(ax1, 'ia', 'ib', 'ic', 'Location', 'NorthEast'); % 添加图例

% 第二个子图设置
axis(ax2, [min(t) max(t) min(-105) max(10)]); % 调整坐标轴范围
hAx = subplot(2, 1, 2); % 获取第二个子图句柄
xlabel(hAx, 't(s)');
ylabel(hAx, '电流(A)');
line4 = animatedline('Parent', ax2, 'Color', 'r', 'LineWidth', 3);
line5 = animatedline('Parent', ax2, 'Color', 'g', 'LineWidth', 3);
line6 = animatedline('Parent', ax2, 'Color', 'b', 'LineWidth', 3);
legend(ax2, 'Id', 'Iq', 'I0', 'Location', 'NorthEast'); % 添加图例

hold(ax1, 'on'); % 保持第一个子图的绘图状态
hold(ax2, 'on'); % 保持第二个子图的绘图状态

%% 同步绘制两个子图
pic_num=1;
for i = 1:length(t)
    addpoints(line1, t(i), ia(i));
    addpoints(line2, t(i), ib(i));
    addpoints(line3, t(i), ic(i));

    addpoints(line4, t(i), Id(i));
    addpoints(line5, t(i), Iq(i));
    addpoints(line6, t(i), I0(i));

    F=getframe(gcf);
    I=frame2im(F);
    [I,map]=rgb2ind(I,256);
    if pic_num==1
    imwrite(I,map,'Park_transformation.gif','gif','Loopcount',inf,'DelayTime',0.01);  % DelayTime设置的越大,生成的gif绘图速度越慢
    elseif mod(pic_num,3)==1
    imwrite(I,map,'Park_transformation.gif','gif','WriteMode','append','DelayTime',0.1);
    end
    pic_num = pic_num + 1;
    drawnow;
end

hold(ax1, 'off'); % 结束第一个子图的保持状态
hold(ax2, 'off'); % 结束第二个子图的保持状态

4.运行结果展示

2a805b886dd646a1b72821253eeef0a9.gif

代码会把原本的三相电流和Park变换后的同时进行绘制,可以更好的展示Park变换的过程并保存为gif动图,可以看出原来定子的三相电流经过Park变换后d轴和q轴电流为直流,没有零轴电流,和例题中所描述的一致。

 

 

 

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值