永磁同步电机离线参数辨识

1、前言

永磁同步电机 (PMSM) 的参数辨识可以通过在线和离线两种方式进行,这两种方法各有不同的特点和适用场景。
● 在线参数辨识
在线参数辨识是在电机运行的过程中实时进行参数估计。通过实时获取电机的运行数据(如电流、电压、速度等),结合估计算法,动态调整和识别电机的参数。
优点:
实时性:能够在电机运行过程中实时估计参数,适应参数随运行工况的变化(如温度变化、负载波动等)。
适应性强:能在电机运行时检测并补偿由环境、负载和电机状态变化引起的参数漂移,提高系统的鲁棒性和适应性。
减少停机时间:不需要停机进行参数辨识,适用于对系统连续性要求较高的场合。
缺点:
复杂度高:在线算法对硬件(如处理器性能)和软件的要求较高,算法复杂且需要实时计算。
精度受限:在高频率和快速动态变化的场景下,辨识精度可能受到实时性和噪声的影响。
需要传感器支持:需要较高精度的电流、电压、转速等传感器来进行实时数据采集,成本较高。
● 离线参数辨识
离线参数辨识是在电机未运行或在特定测试工况下进行参数估计。通过施加已知的输入信号,测量输出响应,借助某些算法来估计电机参数。
优点:
精度高:在控制和已知条件下进行测量,减少了外界干扰,因此能够获得较为精确的电机参数。
算法简单:相对于在线辨识,离线方法不需要考虑实时性,因此辨识算法相对简单,计算量较小。
硬件要求低:对处理器和传感器的实时性要求较低,成本相对较低。
缺点:
静态性:离线辨识只是在某一特定环境或条件下测得的参数,无法反映电机在实际运行过程中的参数变化(如温升、磁路变化等)。
工况依赖:电机的参数在实际工况下可能会与离线辨识的结果有较大偏差,因此需要对离线参数进行修正。
需停机:需要在特定的测试工况下进行辨识,电机需要停机,无法应用在对持续运行有较高要求的场合。
总之,在线辨识更适用于那些运行环境多变、对控制精度和实时性要求高的应用场景,能够提供动态的参数调整。离线辨识则适用于对电机的初步建模或调试,或是电机运行环境较为稳定的应用,能够提供高精度的初始参数估计。

2、电阻辨识

2.1 原理

在这里插入图片描述

2.2 仿真

总体框图:
在这里插入图片描述
模型下载地址: 永磁同步电机PMSM离线参数辨识-相电阻辨识simulink仿真模型
核心模块:

function R = fcn(Ti,ia,va)

persistent sum_ia_temp1 sum_va_temp1 sum_ia_temp2 sum_va_temp2 n1 n2 i1 i2 V1 V2
if isempty(sum_ia_temp1) sum_ia_temp1=0;end
if isempty(sum_va_temp1) sum_va_temp1=0;end
if isempty(sum_ia_temp2) sum_ia_temp2=0;end
if isempty(sum_va_temp2) sum_va_temp2=0;end
if isempty(n1) n1=0;end
if isempty(n2) n2=0;end
if isempty(i1) i1=0;end
if isempty(i2) i2=0;end
if isempty(V1) V1=0;end
if isempty(V2) V2=0;end

% Initialize R to avoid output argument errors
R = 0;

%延时0.05s开始采样
if Ti>0.05 && Ti<=0.3
    sum_ia1=sum_ia_temp1+ia;
    sum_va1=sum_va_temp1+va;
    N1=n1+1;
    sum_ia_temp1=sum_ia1;
    sum_va_temp1=sum_va1;
    n1=N1;
    if(Ti==0.3)
        i1=sum_ia1/N1;
        V1=sum_va1/N1;
    end
elseif Ti>0.35 && Ti<=0.6
    sum_ia2=sum_ia_temp2+ia;
    sum_va2=sum_va_temp2+va;
    N2=n2+1;
    sum_ia_temp2=sum_ia2;
    sum_va_temp2=sum_va2;
    n2=N2;
    if(Ti==0.6)
        i2=sum_ia2/N2;
        V2=sum_va2/N2;
    end
end

if Ti==0.6
   R=(V2-V1)/(i2-i1);
end

仿真结果:
在这里插入图片描述
辨识结果与理论值一致。

3、电感辨识

方法1:输入阶跃电压

在这里插入图片描述

3.2 方法2:高频注入电压法

在这里插入图片描述
在这里插入图片描述
具体实现过程中,涉及到滤波器的设计,高频注入信号的频率一般小于PWM载波的1/10,且远高于电机的基波频率。应用上,综合速度、精度与系统稳定性的考虑, 信号注入频率 f h f_h fh选取为系统控制频率 f c f_c fc的1/20 即可, 同时滤波器截止频率选择为信号的注入频率。在此频率点附近, 既能满足估算的快速性, 又能够保证估算精度的需求。 最低的注入频率选取应大于 R s / L d R_s/L_d Rs/Ld。注入电压幅值一般选择额定电压的10%~15%左右。

3.3 仿真

在这里插入图片描述
模型下载地址: 表贴式永磁同步电机PMSM离线参数辨识-相电感辨识simulink仿真模型
在这里插入图片描述
模型下载地址: 内嵌式永磁同步电机PMSM离线参数辨识-相电感辨识simulink仿真模型

4、磁链常数辨识

在这里插入图片描述
在这里插入图片描述核心模块:

function flux = fcn(Ti, id, uq, we)

    % 状态变量,用于替代持久变量
    % State vector: [id1, id2, sum_uq1, n1, sum_uq2, n2, uq1, uq2]
    state = coder.nullcopy(zeros(1, 8));

    % 初始化状态变量(首次调用时)
    if isempty(state)
        state(1:8) = 0; % 初始化 8 个状态变量
    end

    % 解码状态变量
    id1 = state(1);
    id2 = state(2);
    sum_uq1 = state(3);
    n1 = state(4);
    sum_uq2 = state(5);
    n2 = state(6);
    uq1 = state(7);
    uq2 = state(8);

    % 初始化输出
    flux = 0;

    % 时间段处理逻辑
    if Ti <= 0.3
        id1 = id; % 更新 id1
    else
        id2 = id; % 更新 id2
    end

    % 延时采样 [0.1, 0.3]
    if Ti > 0.1 && Ti <= 0.3
        sum_uq1 = sum_uq1 + uq;
        n1 = n1 + 1;
        if abs(Ti - 0.3) < 1e-6 % 时间点 0.3
            uq1 = sum_uq1 / n1;
        end
    end

    % 延时采样 [0.5, 0.6]
    if Ti > 0.5 && Ti <= 0.6
        sum_uq2 = sum_uq2 + uq;
        n2 = n2 + 1;
        if abs(Ti - 0.6) < 1e-6 % 时间点 0.6
            uq2 = sum_uq2 / n2;
        end
    end

    % 在 Ti = 0.6 计算 flux
    if abs(Ti - 0.6) < 1e-6
        if id2 ~= id1 % 避免分母为 0
            flux = (uq1 * id2 - uq2 * id1) / (we * (id2 - id1));
        else
            flux = 0;
        end
    end

    % 更新状态变量
    state(1) = id1;
    state(2) = id2;
    state(3) = sum_uq1;
    state(4) = n1;
    state(5) = sum_uq2;
    state(6) = n2;
    state(7) = uq1;
    state(8) = uq2;

end

5、惯量辨识

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
核心模块:

function J = fcn(Ti, Te,wm1,wm2,n)

    % 状态变量,用于替代持久变量
    % State vector: [id1, id2, sum_uq1, n1, sum_uq2, n2, uq1, uq2]
    %state = coder.nullcopy(zeros(1, 2));

    % % 初始化状态变量(首次调用时)
    % if isempty(state)
    %     state(1:2) = 0; % 初始化 8 个状态变量
    % end

    % 声明持久变量
    persistent state;

    % 初始化持久变量(首次调用时)
    if isempty(state)
        state = zeros(1, 2); % 初始化 2 个状态变量
    end

    % 解码状态变量
    sum_Te1 = state(1);
    sum_Te2 = state(2);

    % 初始化输出
    J = 0;

    % 延时采样 [0.1, 0.3]
    if Ti < 0.25 
        sum_Te1 = sum_Te1 + Te;
    end

    % 延时采样 [0.5, 0.6]
    if Ti > 0.25 && Ti <= 0.5
        sum_Te2 = sum_Te2 + Te;
    end

    % 在 Ti = 0.6 计算 flux
    if abs(Ti - 1.5) < 1e-6
        J=(sum_Te1-sum_Te2)/((2*wm1)*n)
    end

    % 更新状态变量
    state(1) = sum_Te1;
    state(2) = sum_Te2;
end

参考

【1】永磁同步电机控制笔记:电机参数离线辨识方法:
https://blog.csdn.net/linzhe_deep/article/details/118067983
【2】杜鑫铭.基于参数辨识的低成本永磁同步电机伺服控制器设计[D].浙江大学,2020.DOI:10.27461/d.cnki.gzjdx.2020.000895.
【3】伺服系统的离线惯量辨识方法介绍:
https://bbs.elecfans.com/jishu_2337914_1_1.html
【4】永磁同步电机离线参数识别:
https://blog.csdn.net/weixin_43015338/article/details/140097541
【5】电机参数辨识算法(1)——基于高频注入的电感辨识策略:
https://blog.csdn.net/m0_46903653/article/details/136722750
【6】基于凌鸥创芯LKS32MC08x的电感参数辨识方法在电机控制中的应用 - - 21ic电子技术开发论坛
【7】表贴式永磁同步电机电阻电感参数离线辨识方法 - 道客巴巴

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hlpinghcg

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

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

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

打赏作者

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

抵扣说明:

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

余额充值