你是一名专业的算法大师,请帮我使用matlab编写代码求出电机1和电机2的最大转矩电流比(MTPA)曲线和最大转矩电压比(MTPV)曲线,计算不考虑饱和特性 已知:电机1参数分别如下:44kW PMSM:定子相电阻R=4m2定子链相绕组永磁磁链峰值;=0055Wb电机极对数p=4,转动惯量J=0.048kg·m,定子绕组相漏电感L=2pHd轴励磁电感L;=88pH,q轴励磁电感L=300pH,额定转速为 4000r/min,峰值转矩temax=210N·m。不考虑饱和特性。电机2参数分别如下:2100kW PMSM:定子相电阻R=83m定子链相绕组永磁磁链峰值=0.071Wb,电机极对数p=4,转动惯量J=0.1kgm,定子绕组相漏电感L=30uHd轴励磁电感L;=174uHq轴励磁电感 L=293pH,额定转速为4700r/min峰值转矩 temax256N·m
时间: 2023-08-17 15:04:10 浏览: 147
好的,根据您提供的电机参数,我可以帮您编写求解 MTPA 曲线和 MTPV 曲线的 Matlab 代码。代码如下:
```
% 电机1参数
P1 = 44e3; % 额定功率,单位:W
R1 = 4e-3; % 定子相电阻,单位:Ω
Ld1 = 88e-6; % d 轴励磁电感,单位:H
Lq1 = 300e-6; % q 轴励磁电感,单位:H
J1 = 0.048; % 转动惯量,单位:kg·m^2
p1 = 4; % 极对数
Flux1 = 0.055; % 定子链相绕组永磁磁链峰值,单位:Wb
N1 = 4000; % 额定转速,单位:rpm
Tmax1 = 210; % 峰值转矩,单位:N·m
% 电机2参数
P2 = 2100e3; % 额定功率,单位:W
R2 = 83e-3; % 定子相电阻,单位:Ω
Ld2 = 174e-6; % d 轴励磁电感,单位:H
Lq2 = 293e-6; % q 轴励磁电感,单位:H
J2 = 0.1; % 转动惯量,单位:kg·m^2
p2 = 4; % 极对数
Flux2 = 0.071; % 定子链相绕组永磁磁链峰值,单位:Wb
N2 = 4700; % 额定转速,单位:rpm
Tmax2 = 256; % 峰值转矩,单位:N·m
% 计算电机1的 MTPA 曲线
i1 = 0:0.01:1; % 电机1的电流比
w1 = N1 * pi / 30; % 电机1的角速度,单位:rad/s
T1 = 1.5 * p1 * Flux1 * i1 / w1; % 电机1的转矩,单位:N·m
Mtpa1 = Tmax1 * ones(size(i1)); % 电机1的最大转矩电流比
for k = 1:length(i1)
if T1(k) > Tmax1
Mtpa1(k) = i1(k) * Tmax1 / T1(k);
end
end
% 计算电机2的 MTPA 曲线
i2 = 0:0.01:1; % 电机2的电流比
w2 = N2 * pi / 30; % 电机2的角速度,单位:rad/s
T2 = 1.5 * p2 * Flux2 * i2 / w2; % 电机2的转矩,单位:N·m
Mtpa2 = Tmax2 * ones(size(i2)); % 电机2的最大转矩电流比
for k = 1:length(i2)
if T2(k) > Tmax2
Mtpa2(k) = i2(k) * Tmax2 / T2(k);
end
end
% 计算电机1的 MTPV 曲线
v1 = 0:0.01:1; % 电机1的电压比
Mtpv1 = Tmax1 * ones(size(v1)); % 电机1的最大转矩电压比
for k = 1:length(v1)
if v1(k) > sqrt(R1 / (Ld1 * w1))
Mtpv1(k) = sqrt((Tmax1 * sqrt(Ld1 / R1)) / (1.5 * p1 * Flux1 * w1)) / v1(k);
end
end
% 计算电机2的 MTPV 曲线
v2 = 0:0.01:1; % 电机2的电压比
Mtpv2 = Tmax2 * ones(size(v2)); % 电机2的最大转矩电压比
for k = 1:length(v2)
if v2(k) > sqrt(R2 / (Ld2 * w2))
Mtpv2(k) = sqrt((Tmax2 * sqrt(Ld2 / R2)) / (1.5 * p2 * Flux2 * w2)) / v2(k);
end
end
% 绘制 MTPA 曲线和 MTPV 曲线
figure;
subplot(2, 1, 1);
plot(i1, Mtpa1, 'r', i2, Mtpa2, 'b');
title('MTPA曲线');
xlabel('电流比');
ylabel('最大转矩电流比');
legend('电机1', '电机2');
subplot(2, 1, 2);
plot(v1, Mtpv1, 'r', v2, Mtpv2, 'b');
title('MTPV曲线');
xlabel('电压比');
ylabel('最大转矩电压比');
legend('电机1', '电机2');
```
这段代码会绘制出两个子图,分别是 MTPA 曲线和 MTPV 曲线,其中红色的是电机1的曲线,蓝色的是电机2的曲线。您可以根据需要自行修改代码中的参数和绘图方式。
阅读全文