该模型为三相绕组不对称的永磁同步电机/PMSM的simulink模型。 模型架构为PMSM的传统双闭环(PI)控制(版本2018b),模型中还包括以下模块: 1)1.5延时补偿模块 2)死区模块 3)中断模块(尽可能模拟实际控制系统中使用的中断函数) 市面上的永磁同步电机/PMSM的三相绕组不可能完全对称,会存在相绕组和相电阻的不对称。 三相绕组不对称会导致三相电流的基波电流幅值不同,同时还会在电机相电流中产生一定的三次谐波电流,其在dq坐标系下等效于二次谐波电流。 而simulink中自带的PMSM模型并未考虑三相绕组不对称,因此需要自己搭建相应的电机模型。 该电机模型包考虑了三相绕组不对称,因此其电机模型更接近于实际的电机模型。 系统已经完全离散化,与实验效果非常接近(如果需要关闭三相绕组不对称,可直接在仿真参数中,把三相绕组不对称参数设置为0)。 联系后,会将simulink仿真模型以及相应的参考文献及教材打包发送。

在电机控制领域,永磁同步电机(PMSM)以其高效、节能等优势被广泛应用。但现实中,PMSM 的三相绕组很难做到完全对称,相绕组和相电阻的不对称是普遍存在的情况。然而,Simulink 自带的 PMSM 模型却未考虑这一关键因素,所以,搭建更贴合实际的考虑三相绕组不对称的 PMSM 模型就显得尤为重要。今天就来跟大家分享下我搭建的这个三相绕组不对称的 PMSM 的 Simulink 模型。

模型架构

此模型采用的是 PMSM 传统的双闭环(PI)控制,版本是 2018b。这种经典的控制结构在 PMSM 控制中应用广泛,它能够有效实现对电机转速和电流的精确控制。

1.5 延时补偿模块

这个模块在系统中起到了关键的延时补偿作用。在实际的控制系统里,信号传输等过程不可避免地会产生延时,而这可能会影响系统的性能。通过这个 1.5 延时补偿模块,我们能对这些延时进行补偿,让系统更加稳定和准确。虽然这里没有具体代码展示,但大家可以想象它内部可能是类似这样的逻辑:

% 假设输入信号为input_signal,延时时间为delay_time
function compensated_signal = delay_compensation(input_signal, delay_time)
    % 获取信号长度
    signal_length = length(input_signal);
    compensated_signal = zeros(size(input_signal));
    for i = 1:signal_length
        if i <= delay_time
            % 补偿延时部分
            compensated_signal(i) = input_signal(i + delay_time);
        else
            compensated_signal(i) = input_signal(i);
        end
    end
end

上述代码只是简单示意如何进行延时补偿,实际模块内部的实现会基于 Simulink 的特定环境和算法。

死区模块

死区在电力电子电路中是常见的概念。在逆变器驱动 PMSM 时,为了防止上下桥臂直通短路,会设置死区时间。这个死区模块就是模拟这一情况。在 Simulink 中,它可以通过一些逻辑判断和时间设置来实现。以下是简单代码分析:

% 假设输入信号为input_signal,死区时间为dead_time
function output_signal = dead_zone(input_signal, dead_time)
    sample_time = 0.001; % 假设采样时间
    dead_zone_samples = round(dead_time / sample_time);
    output_signal = zeros(size(input_signal));
    for i = 1:length(input_signal)
        if i <= dead_zone_samples
            output_signal(i) = 0;
        else
            output_signal(i) = input_signal(i);
        end
    end
end

这个代码展示了如何根据设定的死区时间,对输入信号进行处理,在死区时间内输出为 0,之后恢复正常输入。

中断模块

中断模块致力于尽可能模拟实际控制系统中使用的中断函数。在实际控制中,中断函数用于处理一些紧急或特定的任务,比如故障检测、快速调整控制参数等。在 Simulink 里搭建这个模块,需要对事件触发机制有深入理解。

% 假设中断触发条件为某个信号达到阈值threshold
function [is_interrupt, interrupt_signal] = interrupt_module(input_signal, threshold)
    is_interrupt = 0;
    if input_signal >= threshold
        is_interrupt = 1;
        interrupt_signal = input_signal;
    else
        interrupt_signal = 0;
    end
end

以上代码模拟了一个简单的中断判断逻辑,当输入信号达到阈值时,触发中断并输出相应信号。

三相绕组不对称影响及模型优势

三相绕组不对称会带来一系列影响,最明显的就是三相电流的基波电流幅值不同,同时电机相电流中会产生一定的三次谐波电流,在 dq 坐标系下它等效于二次谐波电流。而我们搭建的这个电机模型包充分考虑了三相绕组不对称,相比 Simulink 自带模型,它更接近实际的电机模型。并且整个系统已经完全离散化,和实验效果非常接近。如果在某些情况下,你不需要考虑三相绕组不对称,操作也很简单,直接在仿真参数中,把三相绕组不对称参数设置为 0 即可。

该模型为三相绕组不对称的永磁同步电机/PMSM的simulink模型。 模型架构为PMSM的传统双闭环(PI)控制(版本2018b),模型中还包括以下模块: 1)1.5延时补偿模块 2)死区模块 3)中断模块(尽可能模拟实际控制系统中使用的中断函数) 市面上的永磁同步电机/PMSM的三相绕组不可能完全对称,会存在相绕组和相电阻的不对称。 三相绕组不对称会导致三相电流的基波电流幅值不同,同时还会在电机相电流中产生一定的三次谐波电流,其在dq坐标系下等效于二次谐波电流。 而simulink中自带的PMSM模型并未考虑三相绕组不对称,因此需要自己搭建相应的电机模型。 该电机模型包考虑了三相绕组不对称,因此其电机模型更接近于实际的电机模型。 系统已经完全离散化,与实验效果非常接近(如果需要关闭三相绕组不对称,可直接在仿真参数中,把三相绕组不对称参数设置为0)。 联系后,会将simulink仿真模型以及相应的参考文献及教材打包发送。

如果大家对这个模型感兴趣,联系我之后,我会将 Simulink 仿真模型以及相应的参考文献及教材打包发送,方便大家进一步研究和学习。希望这个模型能给各位在 PMSM 研究和应用方面带来一些帮助和启发。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐