You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Modelica中逆变器与PMSM连接仿真结果异常求助

排查Modelica逆变器-永磁同步电机模型仿真异常问题

先帮你梳理下模型里的几个关键问题点,以及对应异常现象的原因:

一、模型结构的潜在问题

1. 直流电源连接逻辑

你用了两个ConstantVoltage串联来提供直流母线电压,虽然理论上能得到100V母线电压(50V+50V),但接地方式(ground.p接constantVoltage_p.n)会让逆变器的dc_p为+50V、dc_n为-50V,这种对称接地的方式可能会在仿真中引入数值稳定性问题,而且不如直接用单个DCVoltage直观。

2. PWM相序错误

你的三相正弦信号相位设置为-Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m),对于m=3的情况,symmetricOrientation(3)输出正序相位[0, 2π/3, 4π/3],加负号后变成了逆序相位,这会导致电机旋转方向与预期相反,甚至出现转矩抵消、转速振荡的情况。

3. 电机与负载参数不匹配

你设置的负载转矩TLoad=181.4N·m,但根据电机参数计算:

  • 永磁磁链ψ_m = VsOpenCircuit/(2πf1) = 100/(2π*50) ≈ 0.318Wb
  • 最大输出转矩(假设Lmd=Lmq)T_max = 3/2 * p * ψ_m * I_max,而电机的最大电流受限于母线电压和定子阻抗,估算下来远不足以支撑181.4N·m的负载,会导致电机失速。

4. 无阻尼笼导致稳定性差

你把SM_PermanentMagnet的useDamperCage设为false,永磁同步电机没有阻尼笼时,空载或负载突变时容易出现转速振荡,甚至失步。


二、针对两种异常现象的具体分析

1. JLoad=0且TLoad=0时,转速呈小幅值正弦波动

  • 无阻尼笼的永磁电机在空载时,若初始转速为0,需要逐步建立磁链并加速到同步转速(375rpm,约39.27rad/s),但因为没有阻尼笼抑制振荡,加上逆序PWM信号的干扰,会出现小幅值的转速波动。
  • 另外,仿真初始条件未设置为稳态,电机从静止开始启动,也会有短暂的过渡过程振荡。

2. JLoad=0.29且TLoad=-180时,施加转矩后转速变负

  • 首先是转矩方向定义错误:Modelica中Rotational.TorqueStep的stepTorque为负时,代表负载给电机施加反向转矩;加上之前的逆序PWM信号,电机本身旋转方向就可能是反向的,施加反向负载转矩后会直接导致转速变为负值。
  • 其次是负载转矩过载:电机无法提供足够的转矩对抗负载,直接失速反转。

三、模型调整建议

1. 修正直流电源配置

替换两个串联的ConstantVoltage为单个DCVoltage,简化连接:

Modelica.Electrical.Analog.Sources.DCVoltage dcBus(V=100) annotation(Placement(...));
connect(dcBus.p, inverter.dc_p);
connect(dcBus.n, inverter.dc_n);
connect(dcBus.n, ground.p);

2. 修正PWM相序

将Sine源的相位改为正序:

Modelica.Blocks.Sources.Sine sine[m](
    phase = Modelica.Electrical.MultiPhase.Functions.symmetricOrientation(m),
    startTime = zeros(m),
    amplitude = fill(0.5, m),
    offset = fill(0.5, m),
    freqHz = fill(f1, m)
) annotation(...);

3. 匹配电机与负载参数

  • 要么降低负载转矩至电机可承受范围(比如先测试50N·m),要么调整电机参数(比如增大VsOpenCircuit、减小Rs),确保电机能输出足够的转矩。

4. 启用阻尼笼

将SM_PermanentMagnet的useDamperCage设为true,提升系统稳定性:

Modelica.Electrical.Machines.BasicMachines.SynchronousInductionMachines.SM_PermanentMagnet smpm(
    Jr = 0.29, 
    p = 8, 
    fsNominal = f1, 
    VsOpenCircuit = 100, 
    TsOperational = 293.15, 
    TrOperational = 293.15, 
    Rs = 4.7, 
    TsRef = 293.15, 
    alpha20s = Modelica.Electrical.Machines.Thermal.Constants.alpha20Aluminium, 
    Lssigma = 0.001, 
    Lmd = 0.0133, 
    Lmq = 0.0133, 
    useDamperCage = true  // 改为true
) annotation(...);

5. 调整转矩方向与初始条件

  • 将TorqueStep的stepTorque改为TLoad(正数值),这样负载转矩是阻碍电机转动的阻转矩,符合实际负载逻辑。
  • 在仿真实验设置中,将电机初始转速设为同步转速(39.27rad/s),缩短过渡过程:
    annotation(
        experiment(
            StartTime = 0.00, 
            StopTime = 5, 
            NumberOfIntervals = 5000, 
            __Wolfram_Algorithm = "dassl", 
            Tolerance = 1e-6, 
            __Wolfram_SynchronizeWithRealTime = false,
            InitialValues = {smpm.w = 39.27}  // 添加初始转速
        ), 
        Diagram(...)
    );
    

内容的提问来源于stack exchange,提问作者Moebo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:05:17