zoukankan      html  css  js  c++  java
  • BLDC开发笔记5.过流保护时瞬时电流采样时刻点

    由于本人不是自动/电气专业,所以对这方面不太熟,希望了解的朋友可以指出错误。长期更新。

    TIM触发ADC的采样时刻

    电机的电流采样,在用于电流环时,有两种采样方式:

    1. 瞬时电流,采集真实的每个PWM周期上高电平到来时的电流,采集周期和控制周期短(us),响应快,程序较复杂。
    2. 平均电流,一直采集总线采样电阻上的电流,然后做平均处理,得到的结果基本和供电电源上电流一样,控制周期较长(ms),程序较简单。

    FOC驱动算法需要的就是实时采集真实的电流(瞬时电流),方波驱动做PID控制时,瞬时和平均都有人做,主要看控制对象和目的,选择合适就可以了。

    需要注意的是:

    过流保护是采的瞬时电流,因为开通和关断瞬间存在一个电流峰值,除此之外,如果电机短路,电机实际上就相当于一个很小的电阻(零点几欧~几欧),电流会非常大,假设这个时候mos管是打开的,因为这个过程是非常短的(ns-us),供电电源部分上的是平均电流,即使有保险丝,也可能反应不过来的,这个时间也是单片机根本处理不过来的(如果进行平均电流采样,由于要准确性可能采集多点进行平均,处理时间可能在ms级别),所以瞬时电流保护通常是纯硬件实现,然后给软件一个中断,告诉单片机,已经触发了瞬时电流保护,单片机再判断是下一个周期的时候让PWM再打开尝试,还是直接关闭PWM输出。

    这里主要讨论一下方波驱动时瞬时电流采样。

    瞬时电流的采样,并不能随机采样,一般是通过定时器去触发ADC进行采样,并且需要在特定的时间窗口进行采样。

    MCU输出PWM到裂变桥,是由延时的,我们可以用示波器比较出来。供参考的数值是大部分这个延时在2us左右。所以我们就不能用MCU的上升沿来采样,因为可能采到的是0。

    所以需要确定ADC的触发时刻。窗口时间的确定分为两个情况:
    在占空比大时候:

    1. 在MCU输出的控制PWM的高电平的中间进行采样。

      当PWM占空比比较大的时候,我们可以选择中间时刻采样,可以确保检流电阻上是流过电流的。这种方法本质就是延时一段时间,避开干扰区。在MOS开通瞬间有一个开通干扰,参考数值是干扰大概也在2us左右,所以需要等待一定时间,等电流稳定。需要避开干扰区测量。
      进行触发的定时器需要和输出PWM的定时器同步输出。

      在互补输出的时候,还有死区时间。采样窗口需要综合考虑干扰,死区时间与高电平时间的相对大小。

    2. 第二种方法,利用延时特性,在输出控制PWM的下降沿采样。

      简单,不需要根据MCU输出的PWM计算触发时刻,避开了干扰区,保证准确性。
      假设使用TIM1的CH4去触发ADC采样,因为这个CH4输出的PWM就是全时域的,所以需要初始就一直开着,初始化的时候给定一个很小的占空比即可(因为电机还没转起来),后面启动电机转动的时候再根据另外三个互补通道的占空比,更改CH4的占空比配置。
      以上两种方法都是在控制PWM的ON期间采样。规律:高电平时间越短,ADC采样窗口越往后靠。
      在占空比小时候:
      干扰区和高电平时间可以相提并论,加上系统延时,在PWM-ON期间可能都采不到检流电阻上波形。即使在下降沿采样,也可能采到干扰区,怎么办?
      在BLDC开发笔记8中提到,我们可以采集续流阶段相电流检流电阻上电流,此时方法就和占空比大的时候类似,但是是在输出控制PWM-off阶段检测。
      具体还是实际测试波形为准。

  • 相关阅读:
    C#利用反射动态调用类及方法
    系统程序监控软件
    SQL server 2008 安装和远程访问的问题
    sql server 创建临时表
    IIS 时间问题
    windows 2008 安装 sql server 2008
    sql server xml nodes 的使用
    Window 7sp1 安装vs2010 sp1 打开xaml文件崩溃
    CSS资源网址
    Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0
  • 原文地址:https://www.cnblogs.com/ckk-blog/p/13987077.html
Copyright © 2011-2022 走看看