永磁同步电机双矢量模型预测电流MPCC控制仿真:传统与现代控制策略的对比分析
永磁同步电机双矢量模型预测电流MPCC控制仿真【参考文献】 1参考文献《永磁同步电机鲁棒双矢量模型预测电流控制_郭鑫》 2描述传统单矢量预测电流控制在单个控制周期内只能输出单个电压矢量且目标的电压矢量只有8个效果不行。 而双矢量模型预测电流控制在单个控制周期内输出两个有效的电压矢量,并合理的分配其占空比,相较于单矢量预测电流控制,增大了输出电压的幅值和角度的范围,具有更好的性能。 可以带载且带载后转速仍然能跟踪给定值永磁同步电机的模型预测电流控制MPCC最近在工业圈子里讨论得挺热闹。传统单矢量控制就像个只会用固定招式的老司机——每个控制周期只能从8个基本电压矢量里选一个这跟开手动挡车似的换挡间隙总得抖两下。转速带载后波形畸变明显工程师们看着示波器上的毛刺直摇头。这时候双矢量控制出场了这货的操作骚得很。它在一个控制周期里同时甩出两个电压矢量还能动态分配占空比。就像给电机装了个无极变速箱电压矢量的幅值和角度调节范围直接翻倍。实测带载工况下转速跟踪误差能压到单矢量控制的1/3以下。搞双矢量控制的核心算法得算占空比分配。用MATLAB写了个函数里面这段代码有点意思function [d1, d2] calcDutyCycle(V1, V2, i_ref, i_current, Ts, L) % 计算两个矢量的最优占空比 A [V1 V2] * [V1 V2] / (L^2); % 系统矩阵 b (i_ref - i_current) * [V1 V2] / L * Ts; duty quadprog(A, -b, [], [], [1 1], 1, [0;0], [1;1]); % 二次规划求解 d1 duty(1); d2 duty(2); end这里用二次规划求解最优占空比代价函数考虑电流跟踪误差和电压约束。V1和V2是候选的两个非零矢量L是电感参数。quadprog求解器处理边界条件很稳保证d1d21的同时避免过调制。永磁同步电机双矢量模型预测电流MPCC控制仿真【参考文献】 1参考文献《永磁同步电机鲁棒双矢量模型预测电流控制_郭鑫》 2描述传统单矢量预测电流控制在单个控制周期内只能输出单个电压矢量且目标的电压矢量只有8个效果不行。 而双矢量模型预测电流控制在单个控制周期内输出两个有效的电压矢量,并合理的分配其占空比,相较于单矢量预测电流控制,增大了输出电压的幅值和角度的范围,具有更好的性能。 可以带载且带载后转速仍然能跟踪给定值仿真模型里有个关键模块是矢量组合生成器。别傻乎乎地遍历所有组合用空间电压矢量分区法能减少70%计算量function [V1, V2] selectVectors(theta_e) sector floor(theta_e/(pi/3)) 1; % 60度分区 base_vec [0 1 2 3 4 5 6 7]; % 基本矢量索引 active_vec [sector sector1]; % 主次活动矢量 V1 base_vec(active_vec(1)); V2 base_vec(active_vec(2)); % 添加相邻零矢量作为候选 candidate [V1 V2 0 7]; % 零矢量用0或7表示 endtheta_e是电机电角度分区后只需考虑相邻两个非零矢量和零矢量的组合。实测这种方法在dSPACE控制器上能把计算时间压缩到50μs以内。带载测试时发现个有趣现象当突加5N·m负载双矢量控制的转速跌落比单矢量少200rpm。看这个转速响应曲线figure; plot(t, speed_ref, r--, t, speed_dual, b, t, speed_single, g); legend(给定,双矢量,单矢量); title(突加负载转速对比); xlabel(时间(s)); ylabel(转速(rpm));蓝色曲线在0.5秒负载扰动点只有轻微凹陷绿色曲线则出现明显坑洼。这得益于双矢量在占空比调节时补偿了负载转矩引起的电流突变。不过双矢量也不是万金油在过调制区域还是会露怯。这时候得切到SVPWM模式代码里加个切换逻辑if (modulation_index 0.95) { enable_svpwm 1; apply_voltage(svpwm_waveform); } else { enable_mpcc 1; apply_voltage(v1, v2, d1); }调制比超95%时自动切换到空间矢量脉宽调制避免电压饱和。这个平滑过渡策略让电机在高速区也能稳如老狗。折腾完仿真模型拿真实电机测试时发现个坑——死区效应会让实际输出电压偏离预期。后来在成本函数里加了电压补偿项才解决def cost_function(i_error, v_comp): v_loss 0.2 # 实测死区损失电压 compensated_error i_error v_loss * dt / L return np.linalg.norm(compensated_error)**2这0.2V的补偿量看着不起眼但实测能让电流THD从5.3%降到3.8%。所以说啊理论仿真和实战落地之间差的就是这些细节的打磨。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452342.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!