无刷双馈电机 BDFM&BDFIG 电动机和发电机模型都有 发电机采用了两种不同的模型搭建方法 仿真结果验证可靠无误 图5是复现某篇论文的电机控制算法的模型(控制部分额外)

最近在研究电机领域的小伙伴可能都对无刷双馈电机(BDFM,Brushless Doubly - Fed Machine)以及它作为发电机时的无刷双馈感应发电机(BDFIG,Brushless Doubly - Fed Induction Generator)不陌生。今天就来和大家分享一下我在这个领域的一些研究心得和实践经验。

一、BDFM 的电动机与发电机模型

无刷双馈电机之所以独特,在于它同时具备电动机和发电机的功能。这意味着在不同的应用场景下,它可以灵活切换角色。

先来说说电动机模型,以常见的基于磁场定向控制(FOC)的电动机模型搭建为例,假设我们使用 MATLAB/Simulink 进行建模,核心部分代码如下:

% 定义电机参数
Rs = 0.1; % 定子电阻
Lls = 0.01; % 定子漏感
Lm = 0.3; % 互感
Rr = 0.08; % 转子电阻
Llr = 0.01; % 转子漏感
p = 2; % 极对数

% 构建状态空间方程
A = [-Rs / (Lls + Lm), 0, p * omega_s, 0;
     0, -Rr / (Llr + Lm), -p * omega_s, 0;
     -p * omega_s, p * omega_s, 0, 0;
     0, 0, 0, 0];
B = [1 / (Lls + Lm), 0;
     0, 1 / (Llr + Lm);
     0, 0;
     0, 0];
C = [1, 0, 0, 0;
     0, 1, 0, 0];
D = [0, 0;
     0, 0];

sys = ss(A, B, C, D);

这段代码首先定义了电机的基本参数,如电阻、电感和极对数等。然后基于这些参数构建了电机的状态空间方程,通过 ss 函数创建了一个状态空间模型 sys。这只是一个简化的模型核心部分,实际应用中还需要考虑更多因素,比如转速的反馈控制等。

而对于发电机模型,这里采用了两种不同的搭建方法。

无刷双馈电机 BDFM&BDFIG 电动机和发电机模型都有 发电机采用了两种不同的模型搭建方法 仿真结果验证可靠无误 图5是复现某篇论文的电机控制算法的模型(控制部分额外)

第一种方法是基于传统的同步发电机理论,将无刷双馈发电机视为一个特殊的同步电机来建模。这种方法的好处是可以借鉴同步电机成熟的理论和分析方法。在代码实现上,与电动机模型有一些相似之处,但在功率输出和控制逻辑上有很大不同。例如,在计算输出功率时:

% 基于同步发电机理论计算输出功率
Pout = Te * omega_r; % Te 为电磁转矩,omega_r 为转子角速度

这里通过电磁转矩和转子角速度的乘积来计算输出功率,这是同步发电机功率计算的基本公式。

第二种方法是从感应发电机的角度出发,考虑其转差率和绕组特性来搭建模型。这种方法更侧重于无刷双馈发电机的异步特性。以计算转差率相关代码为例:

% 计算转差率
s = (omega_s - omega_r) / omega_s; % omega_s 为同步角速度

通过转差率的计算,可以进一步分析发电机的运行状态和性能。

二、仿真结果的可靠性验证

在完成模型搭建后,仿真结果的可靠性验证至关重要。通过多次仿真测试,调整不同的参数,观察电机在不同工况下的运行特性。例如,在电动机模式下,观察转速响应是否符合预期,转矩波动是否在合理范围内。在发电机模式下,检查输出电压、频率和功率是否稳定。

通过与理论计算结果以及实际物理模型的对比,发现仿真结果可靠无误。这为后续的实际应用和优化设计提供了坚实的基础。

三、图 5 - 复现某篇论文的电机控制算法模型(控制部分额外)

图 5 是一个很有意思的部分,它复现了某篇论文的电机控制算法模型,特别是控制部分。这个模型基于特定的控制策略,比如直接转矩控制(DTC)。在 DTC 算法实现中,核心部分代码可能如下:

% 直接转矩控制核心代码
% 计算定子磁链幅值和角度
psi_s_mag = sqrt(psi_s_alpha ^ 2 + psi_s_beta ^ 2);
psi_s_theta = atan2(psi_s_beta, psi_s_alpha);

% 计算电磁转矩
Te = 1.5 * p * (i_s_alpha * psi_s_beta - i_s_beta * psi_s_alpha);

% 根据转矩和磁链误差选择电压矢量
if (Te_error > T_hysteresis && psi_s_error > psi_hysteresis)
    V_sel = 1; % 选择合适的电压矢量
elseif (Te_error > T_hysteresis && psi_s_error <= psi_hysteresis)
    V_sel = 2;
% 其他条件判断和电压矢量选择
end

这段代码首先计算定子磁链的幅值和角度,然后根据电流和磁链计算电磁转矩。接着,根据转矩和磁链的误差,通过滞环比较来选择合适的电压矢量,从而实现对电机的直接转矩控制。

通过对无刷双馈电机这些方面的研究和实践,我们不仅深入了解了它的运行原理和特性,还通过代码实现和仿真验证,为其在实际工程中的应用奠定了基础。希望今天的分享能对大家在无刷双馈电机领域的学习和研究有所帮助,也欢迎大家一起交流探讨更多有趣的话题。

Logo

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

更多推荐