pmsm的启动堵转和运行堵转

*************

C++

topic: pmsm的启动堵转和运行堵转

*************

The locked rotor problem can be separated into start-up lockup and operational lockup. PMSM lockup can be toled. The rotor stops rotate, we call it lockup.

Start-up lockup happens when the PMSM speed from 0 rpm to 1300 rpm. You can see the phenomenon that rotor doennot ratate when the switch is on, the rotor remains still. Operational  lockup happens when the rotor is rotating.

Why PMSM rotates? Because the altenating current generates magnet. Phase A generats magnet A, so are phase B and C. The three phases generate a vector magnet, the generating magnet and the rotor's magnet works like two bar magnets repel each other when their same poles are facing, and attract each other when their opposite poles are facing.

As you can see in the left schematic, the position of rotor cannot be recognized because no position recognizing sensor, so the engineers are so smart that they use HFI to tell the rotor's position. But why HFI works we will talk it later. Not later but now. The motor has d-axis and q-axis, which are used to transform the coordinate system.

In a word, HFI means give stator the direct current to generate a magnet and the can recognize rotor's position. 

Back to the rhythm, if the position cannot be recognized, the rotor cannot rotate. So the true speed is 0 rpm, while the target speed is 1338 rpm, this is the start-up lockup. When the rotor is rrotating at true speed1338 rpm, it stacks and soon the true speed drops to 0 rpm. So the code should take the current into a consideration.

枚举 状态 { 正常, 启动堵转, 运行堵转 }

函数 判定堵转(
    未闭环,            // bool  (true = 启动阶段)
    目标速度,          // rpm
    实际速度,          // rpm
    实际Iq,            // A
    额定Iq,            // A
    加速度,            // rpm/s
    反电势已建立,      // bool
    启动已超时,        // bool
    闭环最小速度,      // rpm
    速度误差大,        // bool
    PWM已饱和,         // bool
    速度持续下降       // bool
) -> 状态
{
    高电流        = (实际Iq >= 0.75 * 额定Iq)
    启动进展低    = (实际速度 < min(0.3 * 目标速度, 闭环最小速度))
    加速度近零    = (abs(加速度) < 启动加速度阈值)        // 启动加速度阈值需配置
    加速度非正    = (加速度 <= 0)

    if (未闭环)  // 启动阶段
    {
        if (目标速度 > 0 && 实际速度 == 0 && 高电流)
            { return 启动堵转 }

        if (目标速度 > 0 && 启动进展低 && 高电流 && 加速度近零 && !反电势已建立)
            { return 启动堵转 }

        if (启动已超时 && 实际速度 < 闭环最小速度)
            { return 启动堵转 }

        return 正常
    }
    else  // 运行阶段
    {
        if (目标速度 > 0 && 实际速度 == 0 && 高电流)
            { return 运行堵转 }

        if (速度误差大 && 高电流 && 加速度非正 && (PWM已饱和 || 速度持续下降))
            { return 运行堵转 }

        return 正常
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值