max_torque_idiq_speed.m 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. close all
  2. clear
  3. clc
  4. Rs = 0.011; %电机相电阻
  5. MotPoles = 4;
  6. vDC = 96; %母线电压96v
  7. MotDCMax = vDC * sqrt(3)/2; %dq 轴合称的电压矢量最大值 dc * 0.866
  8. MotVel = 8000; %需要计算的当前转速,rpm
  9. Omega = MotVel / 60 * MotPoles * 2 * pi;
  10. % A1 5匝电机数据
  11. % FluxD = xlsread('E:\works\项目\MC100\电机仿真数据\5N-phiD-Current.xlsx','Sheet1','B4:N12');
  12. % FluxQ = xlsread('E:\works\项目\MC100\电机仿真数据\5N-phiQ-Current.xlsx','Sheet1','B4:N12');
  13. FluxD = xlsread('E:\works\项目\MC100\电机仿真数据\PhiD-I230405.xlsx','Sheet1','B4:N12');
  14. FluxQ = xlsread('E:\works\项目\MC100\电机仿真数据\PhiQ-I230405.xlsx','Sheet1','B4:N12');
  15. currentVec = linspace(0,300,13); % 电流矢量
  16. advAngleVec = linspace(0, 80, 9); % 超前角
  17. nCurrent = length(currentVec);
  18. nAdvAngle = length(advAngleVec);
  19. idMat = zeros(nAdvAngle, nCurrent);
  20. iqMat = zeros(nAdvAngle, nCurrent);
  21. %生成DQ轴电流
  22. for i = 1:nAdvAngle
  23. for j = 1:nCurrent
  24. idMat(i,j) = -currentVec(j) * sin((advAngleVec(i))/180*pi);
  25. iqMat(i,j) = currentVec(j) * cos((advAngleVec(i))/180*pi);
  26. end
  27. end
  28. Torque = 3/2*MotPoles*(FluxD.*iqMat-FluxQ.*idMat);
  29. Ud = -FluxQ * Omega + idMat * Rs;
  30. Uq = FluxD * Omega + iqMat * Rs;
  31. Us = sqrt(Ud.^2 + Uq.^2);
  32. %Us = sqrt(FluxD.^2+FluxQ.^2)*Omega+sqrt(iqMat.^2+idMat.^2)*Rs;