永磁同步电机MTPA与弱磁控制

写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学习过程的记录。

1、前言

在这里插入图片描述
在这里插入图片描述

2、最大转矩电流比(MTPA)控制数学推导

在这里插入图片描述

2.1 拉格朗日乘数法

在这里插入图片描述

2.2 定义法偏导求解

在这里插入图片描述

3、MTPA模型仿真搭建和分析

3.1 电机参数与设置

在这里插入图片描述

3.1.1 模型参数设置

Vdc=311;
Rs=0.958;
Ld=5.25e-3;
Lq=12e-3;
flux=0.1827;
J=0.003;
B=0.008;
pole=4;
fx=0;

3.1.2 参数计算脚本

function fcn()

%4V/1000rpm
r=0.958;
Ld=5.25e-3;
Lq=12e-3;
Ts=0.0001;
%Ke=4/1000; 
pole=4;
J=0.003;
B=0.008;
flux=0.1827;
fx=0;

%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H

%电流环PI计算
A=[Ld/r Lq/r];
wc=2*pi/(min(A));
kcpd=wc*Ld;
kcpq=wc*Lq;
kci=wc*r;
 
%速度环PI计算
wn=wc/20;
Ba_temp=(wn*J-B)/(1.5*pole*flux);
%观察仿真结果,我们可以看出,系统响应速度较快,但是振荡得比较严重,系统不稳定。
%所以我们可以调节有功阻尼增益,减小有功阻尼增益,由表达式可以看出,转速环带宽与阻尼增益成正比。
% 根据自动控制原理可知,带宽越大,系统的快速性越好,稳定变差。B_a=0.13/10 B_a=0.013。PI参数不变。
Ba=Ba_temp/10;
kvp=wn*J/(1.5*pole*flux);
kvi=wn*kvp;


%数据打印
str='wc value is: ';
str=[str,num2str(wc)];
disp(str);

str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);

str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);

str='kci value is: ';
str=[str,num2str(kci)];
disp(str);

str='wn value is: ';
str=[str,num2str(wn)];
disp(str);

str='Ba value is: ';
str=[str,num2str(Ba)];
disp(str);

str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);

str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);

计算结果:
在这里插入图片描述

3.1.3 模型参数设置示意图

在这里插入图片描述
转子类型(Rotor type)选择Salient-pole(凸极型),其中round表示隐极型
在这里插入图片描述

3.2 模型总览

模型下载地址:永磁同步电机最大转矩电流比(MTPA)控制simulink仿真模型
在这里插入图片描述

3.3 核心模块-MTPA模块

在这里插入图片描述
MTPA计算脚本:

function [id,iq] = fcn(Te,flux,Ld,Lq,pole)

%计算iq
f1=8*Te*flux/(3*pole);
f2=Ld-Lq;
f3=4*Te/(3*pole);

v1=flux^2-4*((f2)^2);
v2=(f3^2)-flux^2;

iq=(f1+sqrt(f1^2-4*v1*v2))/(2*v1);

%计算id
id=(-flux+sqrt(flux^2 + 4*(f2^2)*(iq^2)))/(2*f2);

3.4 仿真分析

3.4.1 速度波形

给定速度(1000rpm)和速度反馈波形(MTPA控制策略):
在这里插入图片描述
给定速度(1000rpm)和速度反馈波形( i d ∗ = 0 i_d^*=0 id=0控制策略):
在这里插入图片描述
0.2s突加负载。可以看到在其它参数一致的情况下,MTPA比 i d ∗ = 0 i_d^*=0 id=0控制策略更稳。

3.4.2 电流波形

i q i_q iq i d i_d id反馈波形(MTPA控制策略)
在这里插入图片描述
负载10Nm稳定后,q轴电流幅值稳定在8.916A,d轴电流幅值稳定在-2.820A。
i s i_s is波形(MTPA控制策略)
在这里插入图片描述
负载10Nm稳定后,定子电流幅值约为9.248A。
转矩波形(MTPA控制策略)
在这里插入图片描述
负载转矩约为10Nm。

i q i_q iq i d i_d id反馈波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
负载10Nm稳定后,q轴电流幅值稳定在9.994A且不稳定,d轴电流幅值稳定在约0 A。
i s i_s is波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
转矩波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
在这里插入图片描述

3.5 曲线拟合法

计算脚本:

function fcn()

%----------------------------------------基本参数--------------------------------------------------------%
%4V/1000rpm
r=0.958;
Ld=5.25e-3;
Lq=12e-3;
Ts=0.0001;
%Ke=4/1000; 
pole=4;
J=0.003;
B=0.008;
flux=0.1827;
fx=0;

%----------------------------------------PI等参数计算--------------------------------------------------------%
%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H

%电流环PI计算
A=[Ld/r Lq/r];
wc=2*pi/(min(A));
kcpd=wc*Ld;
kcpq=wc*Lq;
kci=wc*r;
 
%速度环PI计算
wn=wc/20;
Ba_temp=(wn*J-B)/(1.5*pole*flux);
%观察仿真结果,我们可以看出,系统响应速度较快,但是振荡得比较严重,系统不稳定。
%所以我们可以调节有功阻尼增益,减小有功阻尼增益,由表达式可以看出,转速环带宽与阻尼增益成正比。
% 根据自动控制原理可知,带宽越大,系统的快速性越好,稳定变差。B_a=0.13/10 B_a=0.013。PI参数不变。
Ba=Ba_temp/10;
kvp=wn*J/(1.5*pole*flux);
kvi=wn*kvp;

%----------------------------------------数据打印--------------------------------------------------------%
str='wc value is: ';
str=[str,num2str(wc)];
disp(str);

str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);

str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);

str='kci value is: ';
str=[str,num2str(kci)];
disp(str);

str='wn value is: ';
str=[str,num2str(wn)];
disp(str);

str='Ba value is: ';
str=[str,num2str(Ba)];
disp(str);

str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);

str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);

%----------------------------------------计算id和Te拟合曲线 start--------------------------------------------------------%
% 预分配数组用于保存结果
numIterations = 1001;  % 0:0.1:100 共1001个点
idArray = zeros(1, numIterations);
iqArray = zeros(1, numIterations);
TeArray = zeros(1, numIterations);

% 使用结构体保存数据
dataStruct = struct('iq', iqArray,'id', idArray, 'Te', TeArray);

% 循环计算并保存结果
for idx = 1:numIterations
    iq = (idx - 1) * 0.1;  % 计算当前 iq 值
    
    % 计算 id 和 Te
    id = (-flux + sqrt(flux^2 + 4*((Ld-Lq)^2)*(iq^2))) / (2*(Ld-Lq));
    Te = 0.75 * pole * iq * (flux + sqrt(flux^2 + 4*((Ld-Lq)^2)*(iq^2)));
    
    dataStruct.iq(idx)=iq;
    dataStruct.id(idx)=id;
    dataStruct.Te(idx)=Te;

    % 将结构体保存到工作空间
    assignin('base', 'idTeData', dataStruct);
    % assignin('base', ['iq_' num2str(idx)], iq);
    % assignin('base', ['id_' num2str(idx)], id);
    % assignin('base', ['Te_' num2str(idx)], Te);  
end

% 使用polyfit计算拟合的iq,id值
iqFitCoeff = polyfit(dataStruct.Te, dataStruct.iq, 4);
disp('iqFitCoeff:');
disp(iqFitCoeff);

idFitCoeff = polyfit(dataStruct.Te, dataStruct.id, 3);
disp('idFitCoeff:');
disp(idFitCoeff);

% 使用polyval计算拟合曲线
iqFit = polyval(iqFitCoeff, dataStruct.Te);
idFit = polyval(idFitCoeff, dataStruct.Te);

% 绘制图像
figure;

% 绘制原始数据点
plot(dataStruct.Te, linspace(0, 100, numIterations), 'r*', 'DisplayName', 'Original Data');
hold on;
plot(dataStruct.Te, dataStruct.id, 'g*', 'DisplayName', 'Original Data');

% 绘制拟合曲线
plot(dataStruct.Te, iqFit, 'b', 'DisplayName', 'Fitted iq Curve');
plot(dataStruct.Te, idFit, 'm', 'DisplayName', 'Fitted id Curve');

% 添加标签和图例
xlabel('Te');
ylabel('Values');
title('Fitted Curves for iq and id');
legend;

% 重置图形
hold off;

% 将拟合系数保存到工作空间
assignin('base', 'idFitCoeff', idFitCoeff);
%----------------------------------------计算id和Te拟合曲线 end--------------------------------------------------------%

计算结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真模块:
在这里插入图片描述

3.6 查表法

首先需要确保workspace有表数据,本文使用3.5章节已有的数据,如下图:
在这里插入图片描述
查表法模块:
在这里插入图片描述
在这里插入图片描述
其中,其它模块以此类推
在这里插入图片描述

4、从MTPA到弱磁的转变

请参考: 电控4:永磁同步电机MTPA与弱磁控制的统一理解

5、弱磁控制数学推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、弱磁控制模型仿真搭建与分析

弱磁控制方法常用的有:
在这里插入图片描述
在这里插入图片描述

6.1 控制方法对比

在这里插入图片描述
这里使用超前角弱磁控制。

6.2 超前角弱磁控制实现

在这里插入图片描述

6.3 模型总览

模型下载地址: 永磁同步电机最大转矩电流比(MTPA)控制+弱磁控制simulink仿真模型
在这里插入图片描述

6.4 弱磁控制模块

MTPA+弱磁:
在这里插入图片描述
超前角弱磁:
在这里插入图片描述

6.5 控制效果

转速给定与速度反馈波形:
在这里插入图片描述
额定转速1000rpm,超过1000rpm控制正常,最后稳定在2100rpm。0.2s的波动是加了5 Nm的负载。达到控制效果。
磁链轨迹如下:
在这里插入图片描述

7、参考

[1] 宫伟迪. 基于电动飞机永磁同步电机的MTPA控制研究[D].沈阳航空航天大学,2022.DOI:10.27324/d.cnki.gshkc.2022.000062.
[2] PMSM 的弱磁控制(使用 MTPA)
https://ww2.mathworks.cn/help/mcb/gs/field-weakening-control-mtpa-pmsm.html
[3] 电控3:从电压矢量角度来理解“永磁同步电机弱磁控制
https://zhuanlan.zhihu.com/p/652838870
[4] 电控4:永磁同步电机MTPA与弱磁控制的统一理解:
https://zhuanlan.zhihu.com/p/654926284
[5] 永磁同步电机的矢量控制策略(十二)一一一MTPA最大转矩电流比控制:
https://blog.csdn.net/qq_42249050/article/details/107451798
[6] 永磁同步电机最大转矩电流比(PMSM-MTPA)Simulink仿真教程:
https://zhuanlan.zhihu.com/p/385828327
[7] 基于MPTA+弱磁控制(直接计算法)+电流解耦器PMSM系统simulink实现
https://blog.csdn.net/weixin_44312889/article/details/124467496
[8] 理解弱磁控制及其一种工程实现方法
https://zhuanlan.zhihu.com/p/441544928
[9] 永磁同步电机矢量控制(六)——弱磁控制
https://zhuanlan.zhihu.com/p/648282522

内容概要:本文详细介绍了永磁同步电机的最大转矩每安培(MTPA)控制策略在Simulink中的实现过程。首先,文章解释了MTPA控制的基本原理,即通过优化d轴和q轴电流的比例,在不同转速区间内实现最佳性能。接着,文章展示了具体的数学模型和控制算法,如电流环控制、转速观测器以及控制逻辑的状态机切换。特别是在控制方面,文章讨论了如何通过调整d轴电流来减少电流冲击并提高系统的稳定性。此外,文中还提供了多个MATLAB/Simulink代码片段,用于实现关键控制功能,如电流控制器、转速观测器和过调制处理模块。最后,文章通过仿真波形和实验数据验证了所提出控制策略的有效性和优越性。 适合人群:从事电机控制系统设计的研究人员和技术工程师,特别是对永磁同步电机有研究兴趣的专业人士。 使用场景及目标:适用于需要深入了解永磁同步电机控制原理及其实现方法的技术人员。目标是在实际应用中优化电机性能,确保在高转速下既能提供足够的动力又能保持系统的稳定性和效率。 其他说明:文章不仅提供了详细的理论分析,还包括了许多实用的代码示例和仿真结果,有助于读者更好地理解和掌握相关技术。同时,文中提到的一些优化技巧,如改进型滑模观测器的应用和温度补偿接口的设计,对于提高系统的鲁棒性和适应性具有重要意义。
好的,我可以帮助您解决这个问题。电机的稳态分析可以用MATLAB中的Simulink工具箱来完成。以下是解决问题的步骤: 1. 打开MATLAB软件并新建一个Simulink模型。 2. 添加电机模型。在Simulink库中,可以找到Motor Control Blockset库,在其中选择PMSM模块并添加到模型中。 3. 配置电机参数。在电机模块中,需要配置电机的参数,包括:定子相电阻R、定子链相绕组永链峰值、电机极对数p、转动惯量J、定子绕组相漏电感Ld、q轴励电感Lq等参数。 4. 添加PID控制器。在Simulink库中,可以找到Control System Toolbox库,在其中选择PID Controller模块并添加到模型中。 5. 配置PID控制器参数。在PID控制器模块中,需要配置控制器的参数,包括比例、积分和微分系数等。 6. 添加作为输入的模块。在Simulink库中,可以找到Sources库,在其中选择Step模块并添加到模型中。 7. 配置Step模块。在Step模块中,需要配置输入的幅度和时间等参数。 8. 添加作为输出的模块。在Simulink库中,可以找到Sinks库,在其中选择Scope模块并添加到模型中。 9. 配置Scope模块。在Scope模块中,需要配置输出的变量和显示的时间范围等参数。 10. 运行模型并查看结果。运行模型后,可以查看Scope模块中的输出,得到电机稳态分析的结果,包括最大转矩电流比(MTPA)曲线和最大转矩电压比(MTPV)曲线。 需要注意的是,以上步骤只是一个简单的示例,具体的实现需要根据电机模型的具体情况进行调整。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hlpinghcg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值