喝雪碧要加盐 2024-07-01 16:13 采纳率: 0%
浏览 53

FOC 调试电流环的时候,电机有的时候是顺时针转,有时候逆时针转,但是关键是 iq id电流都能闭环闭起来 (iq都能闭到 0.8这个正值 也没有跑飞的情况)以下是我的电流环控制的代码,如何解决?

FOC 调试电流环的时候, 目标值每次都是给固定正值0.8,但是电机有的时候是顺时针转,有时候逆时针转,但是关键是 iq id电流都能闭环闭起来 (iq都能闭到 0.8这个正值 也没有跑飞的情况) 不理解为什么顺逆时针都能转且iq闭环
以下是我的电流环控制的代码

void Set_Current(float Targetq)
{
    // electricAngle() 是计算当前的电角度 并且已转换成 0- 2pi 范围内
    // FOC_Iabc_2_Idq()  -----> 三相电流Clark -- Park 获取 dq轴的电流
    FOC_Iabc_2_Idq_temp = FOC_Iabc_2_Idq(Ia_convert, Ib_convert, Ic_convert, electricAngle());
    
    //低通滤波   对 dq 电流滤波 后 PID计算
    Cur_q = LowPassFilter(&LPF_current_Iq, FOC_Iabc_2_Idq_temp.FOC_P_Iq);
    Cur_d = LowPassFilter(&LPF_current_Id, FOC_Iabc_2_Idq_temp.FOC_P_Id);
    
    //PI计算
    Iq = Iq_PI_Realize(&Iq_PI_Structure, Targetq, Cur_q);
    Id = Id_PI_Realize(&Id_PI_Structure, 0, Cur_d);
    
    //计算出 PWM 的 CCR
    FOC_TcmTypedef Temp_CCR = FOC_Idq_2_TcmABC(Id, Iq, electricAngle(), PWM_ARR*2, 24);
    
    TIM_CtrlPWMOutputs(TIM1, ENABLE);
        
    //设置 TIM1 - PWM 三相占空比
    SetCompare(&Temp_CCR);
}
  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-01 16:13
    关注

    引自免费微信小程序:皆我百晓生

    在FOC调试电流环时,电机的转动方向由dq轴的电流控制。当你设置目标电流值时,电机的转动方向实际上是由电流的初始状态和电流控制器的行为共同决定的。从你的代码来看,你的电流环似乎能正确地闭环,这意味着你的PI控制器在努力将iq电流调整到目标值0.8,无论电机是顺时针还是逆时针转动。

    关于电机转动方向的问题,可能有以下几个原因:

    1. 初态条件:电机的初始状态可能是在一个不确定的位置,因此在开始控制时可能会顺时针或逆时针转动以试图达到稳定状态。在稳态时,电机应该停止转动或在一个方向上稳定转动。
    2. PI控制器的行为:PI控制器会根据误差(目标电流与实际电流的差值)来调整控制量。如果电机的转动方向与你的控制目标方向不一致(例如目标值是正值但电机逆时针转动),PI控制器会调整其输出以改变电机的转动方向。这可能导致电机在两个方向上都有转动,但在稳态时应该有一个稳定的转动方向。

    为了解决这个问题,你可以尝试以下方法:

    1. 添加方向控制:在电流环控制中添加一个逻辑判断,根据电机的当前状态(例如电机的速度或位置)来决定电机的转动方向。你可以通过添加一个条件语句来判断电机的实际转动方向与目标方向是否一致,并据此调整Iq或Id的值以改变电机的转动方向。
    2. 优化PI控制器的参数:调整PI控制器的参数(比例增益和积分增益)以改善系统的响应性能和稳定性。适当的参数设置可以使系统在快速响应目标值的同时保持稳定。
    3. 确保电流测量的准确性:检查电流的测量值是否准确。不准确的测量可能导致电流环控制不准确和电机转动方向的不确定性。确保电流传感器校准正确,并在必要时更新软件中的测量算法。

    需要注意的是,FOC控制是一个复杂的过程,涉及到电机模型、PWM信号和其他许多因素。如果问题仍然存在,建议参考相关的电机控制教程或手册,或者寻求专业的技术支持来帮助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月1日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error