1.park变换
Park变换,又称Clarke-Park变换或Park坐标变换,是一种在电力电子、电机控制等领域广泛应用的数学变换方法。它将三相静止坐标系(α-β坐标系)中的电压、电流或磁链等电气量转换为两相旋转坐标系(d-q坐标系)。这种变换有助于简化控制系统的设计和分析,特别是在交流电机(如感应电机、永磁同步电机等)的矢量控制中,Park变换起到了关键作用。
![8466424a9ab24d09987e60326e9ee602.png](https://i-blog.csdnimg.cn/blog_migrate/3b4b1e8ac773f262fa3234b5906daa23.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.运行结果展示
代码会把原本的三相电流和Park变换后的同时进行绘制,可以更好的展示Park变换的过程并保存为gif动图,可以看出原来定子的三相电流经过Park变换后d轴和q轴电流为直流,没有零轴电流,和例题中所描述的一致。