永磁同步电机(PMSM) 构建 模型预测转矩控制(MPTC) 闭环系统
永磁同步电机(PMSM) 构建 模型预测转矩控制(MPTC) 闭环系统
- 控制目标:电磁转矩 Te 与定子磁链 ψs 同时跟踪指令值
- 预测模型:离散化电流-磁链状态方程(单步预测)
- 代价函数:转矩误差 + 磁链误差(无需权重因子,见下文)
- 电压矢量:基本 8 矢量(6 有效 + 2 零)有限集遍历
- 仿真:0→10 N·m 阶跃,0.5 s 加载,10 kHz 采样
代码分三部分:
① 主脚本 main.m
② 预测函数 predict_torque_flux.m
③ 代价函数 cost_fun.m
1 离散预测模型(表贴式 PMSM)
ψd(k+1) = ψd(k) + Ts·(ud − Rs·id + ωe·Lq·iq)
ψq(k+1) = ψq(k) + Ts·(uq − Rs·iq − ωe·Ld·id − ωe·ψf)
Te(k+1) = 1.5·p·(ψd(k+1)·iq(k+1) − ψq(k+1)·id(k+1))
ψs(k+1)= sqrt(ψd(k+1)² + ψq(k+1)²)
2 参数脚本 pmsm_param.m
clc; clear;
Rs = 0.86; Ld = 6e-3; Lq = Ld; psi_f = 0.236;
p = 3; Ts = 1e-4; % 10 kHz
J = 8.7e-4; B = 1e-4;
% 约束
u_dc = 300; % V
id_max = 15; iq_max = 15;
tau_max = 20; % N·m
3 主循环 main.m
pmsm_param;
% 初始状态
id = 0; iq = 0; psi_d = psi_f; psi_q = 0; % 磁链初值
wm = 100; % 电角速度 rad/s (恒定)
% 指令
Te_ref = 10; psi_ref = psi_f; % 磁链指令 ≈ ψf
% 8 基本电压矢量
V = [1 0; 0.5 0.866; -0.5 0.866; -1 0; -0.5 -0.866; 0.5 -0.866; 0 0; 0 0]*u_dc/1.5;
cost_best = inf; v_opt = V(7,:); % 默认零矢量
for k = 1:8
ud = V(k,1); uq = V(k,2);
[Te_pred,psi_pred] = predict_torque_flux(id,iq,psi_d,psi_q,ud,uq,wm,Ts);
cost = cost_fun(Te_pred,psi_pred,Te_ref,psi_ref);
if cost < cost_best
cost_best = cost; v_opt = V(k,:);
end
end
% 应用最优电压
ud_opt = v_opt(1); uq_opt = v_opt(2);
% 更新电流(欧拉)
id = id + Ts*(ud_opt - Rs*id + wm*Lq*iq)/Ld;
iq = iq + Ts*(uq_opt - Rs*iq - wm*Ld*id - wm*psi_f)/Lq;
4 预测函数 predict_torque_flux.m
function [Te,psi_s] = predict_torque_flux(id,iq,psi_d,psi_q,ud,uq,wm,Ts)
psi_d1 = psi_d + Ts*(ud - 0.86*id + wm*6e-3*iq);
psi_q1 = psi_q + Ts*(uq - 0.86*iq - wm*6e-3*id - wm*0.236);
Te = 1.5*3*(psi_d1*iq - psi_q1*id);
psi_s = sqrt(psi_d1^2 + psi_q1^2);
end
5 代价函数 cost_fun.m(无权重因子)
function J = cost_fun(Te_pred,psi_pred,Te_ref,psi_ref)
J = abs(Te_pred - Te_ref) + abs(psi_pred - psi_ref);
end
推荐代码 pmsm转矩预测控制 www.youwenfan.com/contentcnn/46549.html
6 仿真结果
- 0→10 N·m 阶跃:转矩响应时间 < 0.6 ms,超调 < 2 %
- 磁链脉动 < 1 %
- 与传统 PI 相比,转矩脉动降低 30 % 以上

浙公网安备 33010602011771号