【进行离线数据的传感器仿真】使用永磁同步电机的无传感器滑模观测器研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、Simulink仿真实现


💥1 概述

进行离线数据的传感器仿真可以通过使用仿真软件(如MATLAB/Simulink、PSCAD等)来模拟永磁同步电机(PMSM)的工作。在研究无传感器滑模观测器时,您可以使用仿真软件建立PMSM的数学模型,并在其中集成无传感器滑模观测器。通过这样的仿真,您可以模拟PMSM在不同工况下的运行情况,观察无传感器滑模观测器对PMSM速度和位置的估计性能。

在进行离线数据的传感器仿真时,您需要考虑以下几个方面:
1. 建立PMSM的数学模型:包括电机的电气特性、机械特性和控制策略等。
2. 集成无传感器滑模观测器:设计并集成无传感器滑模观测器到PMSM的控制系统中。
3. 运行仿真并记录数据:通过对PMSM进行不同工况下的仿真运行,并记录PMSM的速度、位置等数据。
4. 评估无传感器滑模观测器性能:分析仿真数据,评估无传感器滑模观测器对PMSM速度和位置的估计性能。

在永磁同步电机领域,无传感器滑模观测器研究是一项重要的课题。通过分析和实验,我们可以深入了解无传感器滑模观测器在永磁同步电机控制中的应用,以及它在提高电机性能和降低成本方面的潜力。这项研究将有助于推动永磁同步电机技术的发展,并为未来的工业应用提供更加可靠和高效的解决方案。

通过以上步骤,您可以进行离线数据的传感器仿真,并研究无传感器滑模观测器在PMSM控制中的应用效果。

📚2 运行结果

主函数代码:

clear all
%%Set motor parameter
ls = 0.0085;
rs = 2.875;
rated_flux = 0.175;
Pole_pair = 4;

%%Run PMSM control model
SampingTime = 0.000001;
sim('pmsm_ideal/pmsm_ideal.slx');
DataLength = length(V);

%%Sliding Mode Observer Parameter
I_hat=[0;0];
I_Gradient_hat=[0;0];
k = 200;

%%Log Data
BackEMFCommandLog(1:DataLength,1:2) = 0; 
BackEMFAfterLPFLog(1:DataLength,1:2) = 0;
EstimateTheata(1:DataLength) = 0;
EstimateW(1:DataLength) = 0;
EstimateWAfterLPF(1:DataLength) = 0;
EstimateTheataAfterCompensate(1:DataLength) = 0;
RealAngle(1:DataLength) = 0;

for i=1:DataLength
    %%Sliding Mode Obsevvation
    I_hat = I_hat +  SampingTime * I_Gradient_hat;
    %k*sign(I_hat-I(i,:)') >= Max(ea,eb)
    u = k*sign(I_hat-I(i,:)');
    I_Gradient_hat = V(i,:)' / ls - I_hat * (rs/ls) - u /ls; 
    BackEMFCommandLog(i,1:2) = u;
    if (i == 1)
        continue;
    end 
    %%Get Back-EMF on Clarke axis
    %First order butterworth filter, cut-off Freq=50hz
    BackEMFAfterLPFLog(i,:) = 0.00015705*BackEMFCommandLog(i,:)'+0.00015705*BackEMFCommandLog(i-1,:)' + 0.99968*BackEMFAfterLPFLog(i-1,:)';
    
    %%Get Estimate Electrical Angle
    EstimateTheata(i) = atan2(-BackEMFAfterLPFLog(i,1),BackEMFAfterLPFLog(i,2));
    %Shift(-pi to pi)
    if(EstimateTheata(i) < 0)
        EstimateTheata(i) = 2*pi+EstimateTheata(i);
    end
    
    %%Get Estimate Electrical Speed
    EstimateW(i) = (EstimateTheata(i) - EstimateTheata(i-1));
    %Compensate phase change  
    if( EstimateW(i) > pi)
        EstimateW(i) =  2*pi-EstimateW(i);
    elseif ( EstimateW(i) < -pi)
        EstimateW(i) =  2*pi+EstimateW(i);
    end
    EstimateW(i) = EstimateW(i) / SampingTime;
    
    %First order butterworth filter, cut-off Freq=50hz
    EstimateWAfterLPF(i) =  0.00015705*EstimateW(i)+0.00015705*EstimateW(i-1) + 0.99968*EstimateWAfterLPF(i-1);
    
    %%Compensate Estimate Electrical Angle phse shift
    EstimateTheataAfterCompensate(i) = EstimateTheata(i) + atan(EstimateWAfterLPF(i)/(100*pi)); 
    if(EstimateTheataAfterCompensate(i) > 2*pi)
        EstimateTheataAfterCompensate(i) = EstimateTheataAfterCompensate(i) - 2 * pi;
    end
    
    %%Get Real Electrical Angle
    RealAngle(i) = atan2(sin(theata(i)),cos(theata(i)));
    %Shift(-pi to pi)
    if(RealAngle(i) < 0)
        RealAngle(i) = 2*pi+RealAngle(i);
    end
end


T = [0:SampingTime:SampingTime*(DataLength-1)];
%%Plot Estimate Angle and Speed
figure('Name','SMO Data');
subplot(2,1,1);
plot(T,EstimateTheata);
title('SMO  Estimate Electrical Theata');
xlabel('time')
ylabel('');

subplot(2,1,2); 
plot(T,EstimateWAfterLPF)
title('SMO  Estimate Electrical Speed');
ylabel('W');
xlabel('time')

%%Real Angle and SMO Angle
figure('Name','Real Angle and SMO Angle');
plot(T,RealAngle);
hold on
plot(T,EstimateTheataAfterCompensate,'--');
hold off
xlabel('time')
ylabel('');
legend('RealAngle','Senserless Angle')

仿真见第4部分。

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]刘计龙,肖飞,沈洋,等.永磁同步电机无位置传感器控制技术研究综述[J].电工技术学报, 2017, 32(16):13.DOI:10.19595/j.cnki.1000-6753.tces.160741.

[2]王辉,王长松,钟黎萍,等.基于滑模观测器的永磁同步电机低速下无传感器转子位置检测的研究[J].微电机, 2011, 44(1):61-64.DOI:10.3969/j.issn.1001-6848.2011.01.017.

[3]王悍枭,刘凌,吴华伟.改进型滑模观测器的永磁同步电机无传感器控制策略[J].西安交通大学学报, 2016, 50(6):6.DOI:10.7652/xjtuxb201606016.

🌈4 Matlab代码、Simulink仿真实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值