This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] DRV8301-69M-KIT:InstaSpin FOC 稳定性问题

Guru**** 2539500 points
Other Parts Discussed in Thread: DRV8301-69M-KIT, MOTORWARE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/877697/drv8301-69m-kit-instaspin-foc-stability-problem

器件型号:DRV8301-69M-KIT
主题中讨论的其他器件: MOTORWARE

我在测试台上安装了一个小型表面贴装永磁电机。  我将使用 InstaSPIN 实验室中稍作修改的实验11版本来驱动它。  我移除了速度环路、因此我直接命令相电流。  在任何速度下、如果我超过特定的电流(20Apk)、控制器似乎会丢失。  相电流会急剧变为非正弦、电机会发出明显的噪声。  如果我减小电流命令、电机将恢复并平稳运行。  我的命令始终是100% q 轴电流。  我命令 d 轴电流为零。

我无法判断这是 FAST 估算器失去角度锁定、导致电流调节器施加错误电压、还是稳压器脱落、导致估算器丢失。  但是、无论我如何处理 PI 增益、问题仍然存在。

我之前发布过这篇文章、下面的线程深入探讨了硬件的任何潜在问题、包括一些与8301本身有关的问题。  所有这些都很短、我相信演示套件还可以、并且应该能够以请求的电流运行该电机。  该线程或多或少会死、因为我不小心将其标记为已解决。  如果有任何硬件建议、我希望将其保留在该主题中、仅出于组织原因。  这里是该线程、仅供参考。

e2e.ti.com/.../869797

我想探讨哪些因素可能会导致估算器失去锁定。  我有一些在我之前发布时不可用的新信息。

首先、我添加了一些额外的代码、让我截取 FAST 估算器、并以固定频率以开环模式运行电机。  工作台负载是连接到可变电阻组的直流机器、因此在固定频率下、如果我不改变负载电阻、则电机转矩应恒定。  这也意味着 q 轴电流应该是恒定的。  如果我在估算器完好无损的情况下运行电机高达20A、我可以观察相电压(以及命令的 d 轴和 q 轴电压)。  当我截取具有相同电压的估算器时、一切都保持不变。  但是、在这里、我能够调节相电压振幅、直到相电流达到最小值。  基本上、我可以进行猜测和检查、直到我们处于每安培工作点的最大扭矩、这也意味着我们以前没有。  这表示施加到电机的相电流具有一个 d 轴分量。

其次、当我接近20Apk 上限时、估算角度开始"摇摆"。  我的意思是、三角波顶部有一个振荡(我可以直接从28069中提取数据并将其绘制出来)。  当我拦截估算器并以开环方式运行电机时、该振荡更好、但仍然存在(FAST 估算器仍在后台运行;我只是不使用角度来驱动相电压)。

第三、我在测试台添加了位置传感器。  它是一个具有索引脉冲的正交编码器。  我将指数脉冲校准到反电动势、因此我知道转子位置将指数脉冲由196°μ s 电气脉冲超前。  当我使用完全控制系统运行电机并在 DAC 端口上向外旋转角度时、估算角度会从实际转子位置提前。  这不仅仅是在大电流下发生的...即使在 IQ_ref = 0.1pu (5A)时也会发生。  随着测得的相位角提前、电流控制器将提供一些消磁电流。  这是有道理的、因为即使在低速和低电流下、我获得的每安培扭矩也小于我期望从扭矩常数获得的扭矩。

我已经检查了电机参数并对其进行了两次测量、但它们是可以的。  调节电感没有太大帮助。

现在、我要做几件事。  首先、我将使用开环操作来尝试确定机器开始饱和的位置、因为我确信这不会起作用。  第二、我将绘制角度偏差与电流电平之间的关系。  最后、我有一个库、可以让我在运行期间调整磁通常量、但我没有时间使用它。  也许这与电感调整的结合将会有所帮助、我相信、如果电机饱和、这将是必要的。  但是、即使在低电流下、估算角度似乎也与测量角度不同步。

我很高兴运行任何建议的测试。  我可以在示波器或 DSP 内部生成几乎任何内容的图。  我们非常感谢您的任何帮助。

谢谢、

Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Matt Meier">首先、我添加了一些额外的代码、让我截取 FAST 估算器、并以固定频率在开环模式下运行电机。  [/报价]

    您是否已验证添加代码的中断抽取率?

    5.1.5抽取率
    抽取率允许用户配置每个循环速率以满足其代码执行要求。 建议使用默认抽取率作为起点。 用户必须验证是否满足实时调度、验证单个中断周期是否允许执行 ISR 中的所有软件。 这可以通过简单地切换(2)个 GPIO 引脚来完成、一个在 ISR 开始时、另一个在 ISR 结束时、并观察示波器。 如果不满足实时调度、则 InstaSPIN 性能不可预测。 为了实现一致的 InstaSPIN 性能、需要进行实时调度。


    以下是默认抽取率:
    //定义每个 ISR 时钟节拍的 PWM 时钟节拍数
    //注意:有效值仅为1、2或3
    #define USER_NUM_PWM_TICKS_PER_ISR_TICK (1)
    //定义每个控制器时钟节拍(软件)的 ISR 节拍数(硬件)
    #define USER_NUM_ISR_TICKS_PER_CTRL_TICK (1)
    //定义每个估算器时钟节拍的控制器时钟节拍数
    #define USER_NUM_CTRL_TICKS_PER_EST_TICK (1)
    //定义每个电流控制器时钟节拍的控制器时钟节拍数
    #define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK (1)
    //定义每个速度控制器时钟节拍的控制器时钟节拍数
    #define USER_NUM_CTRL_TICKS_PER_SPEED_TICK (10)

    //定义每个轨迹时钟节拍的控制器时钟节拍数

    #define USER_NUM_CTRL_TICKS_PER_TRAJ_TICK (10)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将以30kHz 的频率在每个 PWM 周期运行一个 ISR 执行。  估算器和电流调节器每次运行。  控制器不运行。

    添加的代码不会影响系统的性能或系统在分配的时间内执行的能力。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    抽取点与电机速度直接相关、后者会导致 SOC 与 ISR 时序之间的偏差、从而导致在时序环路中添加任何代码。 文本表明、对于 FAST 估算器的闭环时序中添加的代码、必须通过上述任一方法来验证时序。 默认值为1 tick @20kHz、这可能是在更高的 PWM 30kHz 下估算器处于不同状态的原因。 调整刻度很简单-你必须放松。

    [报价用户="Matt Meier"]估算器和电流调节器每次运行。

    但是、如果您在循环中添加任何代码、SOC 中的节拍率可能会因 PWM 触发器而偏斜。 调整节拍率、第9章、第364页。

    从中断到控制器的节拍率可能高于1的原因有两个:
    •第一个原因是减少 CPU 使用率。
    •第二个是允许更高的 PWM 频率并降低节拍率、以便 InstaSPIN 仍可在更高的频率下执行。 例如、如果 PWM 频率为50kHz、如果未使用硬件抽取(本文档稍后将讨论)、则转换 ISR 的结束速率为50kHz。 1/50kHz =μs μ s 内需要有足够的时间来执行所有功能。 μs ISR 内的→μs μs 30 μ s、那么:执行时间> ISR 周期30 μ s > 20 μ s 这将导致中断溢出、导致 ADC 采样被覆盖、并且控制时序也将受到影响。 如果中断的执行时间短于执行时间、那么在考虑以下准则的情况下、使用不同的 ISR 到 CTRL 节拍率是安全的。
    验证中断中是否有足够的时间来执行 InstaSPIN。 这是因为在中断服务程序中执行 InstaSPIN 时、必须有足够的时间来避免转换溢出。 例如、如果一个 ISR 未被处理、而第二个 ISR 进入、则第一个 ISR 完全丢失、并且时序受到影响。 图9-7中显示了一个很好的示例、即 ISR 有足够的时间使 InstaSPIN 在没有 ISR 溢出的情况下完成执行

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    默认值实际上是45kHz PWM、ISR 分频为15kHz。  当我运行默认值时出现了这个问题。  我提高了 ISR 速率、以便在 PI 控制器中获得更好的分辨率、这对解决不同的问题大有帮助。  我可以使用30kHz 或60kHz 作为 PWM 频率。  我选择30kHz 是因为它足够快、能够获得干净的电流。

    在30kHz 时、有足够的时间执行 InstaSPIN 和我添加的代码。  没有中断溢出;我通过实验验证了这个。  该系统在低电流下也能正常运行。  如果发生溢出、系统在任何操作点都无法工作。

    此问题在 TI 的原始实施方案中仍然存在。  我开始修改软件、因为原始的开箱即用软件不起作用(我不希望它在没有调整的情况下能够完美运行)。  我添加了其他代码来帮助跟踪问题。  它是在问题之后出现的。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Matt Meier"] ISR 的默认值实际上是45kHz PWM,除以15kHz [/引用]

    这与 InstaSpin Rev.H 用户指南在与 x49c (100Mhz)相同的讨论中展示的 X69套件(90Mhz)完全不同。 SDK user.h 显示了4-5种不同的 PWM 频率、但在20Khz 处停止。  

    //! \brief 定义脉宽调制(PWM)频率、kHz
    //!
    //#define USER_PWM_FREQ_kHz ((float32_t)(5.0)) //5kHz PWM 频率
    //#define USER_PWM_FREQ_kHz ((float32_t)(10.0)) //10kHz PWM 频率
    //#define USER_PWM_FREQ_kHz ((float32_t)(12.0)) //12kHz PWM 频率
    //#define USER_PWM_FREQ_kHz ((float32_t)(15.0)) //15KHz PWM 频率
    #define USER_PWM_FREQ_kHz ((float32_t)(20.0) //20kHz PWM 频率
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我只能告诉您我正在使用的演示套件的 user.h 文件中的默认值是什么、以及我将它们更改为什么。  不存在溢出、问题既不是环路频率的函数、也不是 PWM 频率的函数。

    以下是这不是溢出问题的证据。  我在主 ISR 开始时将该 I/O 引脚设置为高电平、然后在 ISR 结束时将其设置为低电平。  对于该图、我强制每个可能的代码段全部运行、以便我们可以看到 ISR 所需的绝对最长时间。  如您所见、完整的 ISR (由于存在分支、因此永远不会完整运行)需要~27us。  如果出现、我还验证了主异步环路也会继续运行。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有一些新的有趣信息。  我今天收集了足够的数据来演示以下内容。

    1、 电流调节器在估算角度前90°施加电流时表现良好。  我在数字 I/O 引脚上发出180°方波、并将其与相电流一起记录在示波器上。  假设估算角度正确、则电流应位于此处。

    2、 估算角度不准确、导致实际转子角度变化、并随施加的电流量而变化。  我的示波器上连接了一个位置传感器、我可以在其上触发。  将转子保持在2000rpm、当我将 gIdq_ref_pu[1]从0.1 (5A 峰值)增加到0.425 (21.25A)时、估算角度中的误差会增加。  它的°也不是很好(它最初在 q 轴前大约30 μ s)。  3000rpm 时会发生类似的情况、但看起来与速度无关。  我明天将完成该测试。  我尝试同时和单独更改电机电感值和磁通常数、但这并没有太大帮助。  但是、如果我将电感值与报告的值相比增加得太多、电流将开始出现低频(2-3Hz)振荡、我可以通过调节稳压器增益来解决该振荡。

    3. 当我接管控制权并以开环模式运行电机时,我可以获得比控制器在任何工作点提供的每安培扭矩明显更高的扭矩。  考虑到控制器正在施加大量消磁电流、这也是合理的。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    3krpm 测试显示了电流命令范围内的类似趋势。  我还在开环测试期间验证了以下内容。

    1、 最小相电流时的电流角度与转子前方90°对齐(它在 q 轴上、与反电动势同相)。

    2. 该工作点的每安培扭矩是磁通常数预测的值。

    3. 估算器角度仍然引导转子、角度与使用估算器角度在闭环运行机器时的角度大致相同。

    前两个参数显然是预期值、但当测量值彼此匹配并与理论预测结果匹配时、这是很好的。  我想知道测试是有效的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Matt Meier"]我尝试同时和单独更改电机电感值和磁通常数、但这并没有提供太多帮助。  [/报价]

    有趣的一点、您是否检查了表8.1补丁已应用(2SPRUHJ1H–2013年1月–2019年6月修订) 更新? 奇怪的是、如果旧版控制套件中存在整个补丁、它们会显示整个补丁。

    8.1.1 softwareUpdate1p6()-用户代码中需要函数
    函数 softwareUpdate1p6 ()是 InstaSPIN-FOC v1.6中的错误的变通方法、用于更正使用 user.h 中的电感时电感如何从亨利转换为标么值 使用 InstaSPINFOC v1.6时、只要从 user.h 加载电机参数、就需要调用此函数。
    此修补程序中包含以下修复程序:
    •添加了每个电感的最大值。 因此、我们希望标么值电感值相对于该最大值进行缩放。 这也会影响电感值的 Q 格式。

    •根据这些新的标么值电感值设置电流控制器增益值(ID/IQ 电流控制器)。

    下面是补丁的源代码、它在每个 InstaSPIN-FOC v1.6和 InstaSPIN-MOTION 实验示例中都使用。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法直接应用该函数、因为它会调用所有计算的常量、我希望在我动态更改这些常量时观察估算器、但是的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否有任何电机相 电流波形来显示该问题? 设置最大扭矩电流时、电机的峰值相电流是多少? 您 的项目中的 USER_ADC_FULL_SCALE_CURRENT_A、USER_MOTOR_MAX_CURRENT 和 USER_MAX_VS_MAG_PU 是什么?  

    请在 CCS 监视窗口中监视 gMotorVars.Vs 并检查它是否接近 USER_MAX_VS_MAG_PU。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    到目前为止、我有大量的图、我很乐意分享它们或获取更多数据。  我可以根据您的需要进行处理。  当我设置最大扭矩电流时、我不确定您对峰值相电流的理解。  您是指每安培最大扭矩运行点的峰值相电流吗?  它根据扭矩而变化。  扭矩常数为~7.8mNmNm /安培、在最佳工作点、我们得到的扭矩约为每安培相同。  它确实会在20Apk 以上稍微下降、因为机器开始稍微饱和一点。

    USER_ADC_FULL_SCALE_CURRENT_A = 82.5。  这是一个 DRV8301-69M-KIT、因此我们只剩下这个。

    USER_IQ_FULL_SCALE_CURRENT_A = 50

    USER_MOTOR_MAX_CURRENT = 40

    USER_MAX_VS_MAG_PU = 0.5

    我在下面附加了一系列波形、这些波形显示了测得的电流在降级时的性能。  图1位于 gIdq_ref_pu[1]= 0.425、图2为0.45、图3为0.475。  对于第一幅图、输出|Vs|为~0.068。  对于较高的电流、它开始显著振荡。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我应该补充说、对于这些测试、我还具有估算器角度、C2000中测得的相电流以及 gVdq_out_pu 的图(尽管与示波器图不完全相同)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    更多信息。

    我增加了电压测量电路中的截止频率、因为尽管我在上一个线程中报告了测试、但我不能在如此接近滤波器截止频率的电气频率下正常运行。  我在演示套件的正确封装中有10、000pF 的电容器、因此我刚刚使用了这些电容器、将截止频率设置为3356Hz (而不是构建套件时的335.6Hz)。  我使用的是30kHz PWM 频率、因此反馈纹波仍然不是问题。

    然后、我重新运行测试、将电流基准从0.15pu (7.5A)扫描到0.4pu (20A)、并观察应用的电流角度的偏差。  它大致相同。  估算器在大约相同的电流下仍然处于不同的状态。  这就证明了反馈滤波器不会对系统产生重大影响、至少在2000rpm 时是如此。

    我还在向 PI 控制器馈送之前、对估算角度应用固定偏移。  乍一看、这似乎正常工作...我可以使电流与电机的反电动势保持一致。  这是一个有前景的雪橇、但这是我需要收集的大量数据、以便为整个工作范围内的角度偏移生成查找表。  此外、这并不是一个非常令人满意的解决方案。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我实现了该库、它允许我在电机运行时更改磁通常数、但这也不是很重要。  我还尝试更改 user.h 中的值并重新编译软件、但结果大致相同、因此我很确信实时调整不存在缺陷。

    更改电机参数(电感和磁通常数)确实会稍微改变一些东西、但它并不能解决角度误差问题。  它对控制器完全发生故障的情况毫无帮助。

    扼要重述一下、我认为我们有两个问题。  我不确定它们是否相关。  第一个问题是、在控制器完全分离的情况下、我不能要求超过0.4pu (峰值20A)的 q 轴电流。  这可能与定子钢 saturating...it 有关、看起来在该工作点周围有一些轻微饱和。  这不应导致系统完全丢失、我希望我们能够调整电机模型来对此进行补偿。  但是、调整磁导率相关的电机变量在这里没有任何影响。  我想我会接受这样的解释、即 TI 估算器根本无法处理即使是轻度饱和的情况。  我只是希望有人在我们放弃尝试之前确认这一点。

    在调查这一问题时、我遇到了第二个问题。  即使在低电流条件下、估算器的角度也会在定子钢开始饱和之前提前30°或更大。  这是我们无法容忍的。  我想我有一个现在可以使用的 klodge、但它既单调又沉闷、无法解决下一个项目的问题。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yanming、您在上一个主题中请求了我的 user.h。  我将其连接在底部。  我还附上了施加的电流相位角(相对于位置传感器测量)与幅度的关系图。

    e2e.ti.com/.../6131.user.h

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Matt Meier"]以下是证明这不是溢出问题的证据。

    您好、Matt、

    然而、我们如何确定捕获中是否未包含 PWM 驱动信号以指示 FAST 在该高电流负载下不会倾斜? 抽取点时序主 ISR GPIO 可证明 ROM 调用与 EOC 中断触发器、CPU 中断时序保持同步。 我的捕获显示、GPIO 在每个 PWM 50µs 周期的中点变为高电平、并在每个50µs 周期的下降沿之前结束10µs μ s。 GPIO 总高电平导通时间为32µs μ s、在任何速度下都保持非常一致。 任何高于20Khz 的频率都可能需要根据文本添加几个额外的节拍来维持 ISR 时序。 您是否尝试过2-3个节拍?

    我注意到您上面发布的电流捕获看起来与今天的几次 LAB13场强减弱(FW)尝试非常相似。 转子实际上在其应根据 SDK PG.114图77 Bmtpw (扭矩/A)环路下方的 Bfw 环路(id/IQ) XY 图加速时减速。 当实时启用 FW 开关时、电流似乎几乎翻了一倍。 我想知道、当电流跳跃时、这是否会发生、因为 ROM 中存在两种开关模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="GL"]

    您好、Matt、

    然而、我们如何确定捕获中是否未包含 PWM 驱动信号以指示 FAST 在该高电流负载下不会倾斜? 抽取点时序主 ISR GPIO 可证明 ROM 调用与 EOC 中断触发器、CPU 中断时序保持同步。 我的捕获显示、GPIO 在每个 PWM 50µs 周期的中点变为高电平、并在每个50µs 周期的下降沿之前结束10µs μ s。 GPIO 总高电平导通时间为32µs μ s、在任何速度下都保持非常一致。 任何高于20Khz 的频率都可能需要根据文本添加几个额外的节拍来维持 ISR 时序。 您是否尝试过2-3个节拍?

    [/报价]

    是的。  我使用了多个 PWM 频率和 ISR 抽取、包括默认值。  这两个问题仍然存在,在质量上没有什么不同。

    该图显示我们的当前系统正常、因为我们的控制器的总 ISR 时间、即使使用额外的代码、也是26us。  其中包括从 ISR 调用的 FAST 估算器。  有足够的时间将其安装到30kHz ISR 循环中。  我真的不知道您对电流负载快速偏斜的理解。  但是、我知道读取分流电流的时序很重要。  无论如何、从 ISR 开始到 ADC 读取的代码完全不变。

    [报价用户="GL"]

    我注意到您上面发布的电流捕获看起来与今天的几次 LAB13场强减弱(FW)尝试非常相似。 转子实际上在其应根据 SDK PG.114图77 Bmtpw (扭矩/A)环路下方的 Bfw 环路(id/IQ) XY 图加速时减速。 当实时启用 FW 开关时、电流似乎几乎翻了一倍。 我想知道、当电流跳跃时、这是否会发生、因为 ROM 中存在两种开关模式。

    [/报价]

    我真的不知道、但根据您的场强减弱限制、您实际上可能需要双倍的总相电流才能获得您请求的速度。  这尤其与该线程有何关系?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Matt Meier"] 我真的不知道当前负载使 FAST 倾斜的含义。  [/报价]

    抽取点是使用 GPIO 周期捕获来探测一个或多个 PWM 驱动器、以显示 InstaSpin 时序在每个 PWM 周期之外不偏斜、尤其是在高电流条件下。 这不能由发布的 GPIO 周期捕获单独确定。 InstaSpin SPRUHJ1H–2013年1月–2019年6月修订 版规定了20Khz 调制的默认节拍时间。 用户必须按照手册中的步骤确定软件抽取时间或添加更多的周期。

    [引用用户="Matt Meier">我真的不知道、但根据您的场强减弱限制、您实际上可能需要双倍的总相电流才能获得您请求的速度。  [/报价]

    这似乎是合乎逻辑的,也许是一个错误的结论。 根据实验13指南、将负 id 电流注入气隙、以减小转矩、从而提高转子速度。 奇怪的是、较低的 FW 环路图指示应减少 ID、但不应减少。 发生的情况是、直流总线电压随着电流在两个串联电源的峰值附近上升而下降。 请注意、红色环路为 FW、绿色环路为 MTPA 每安培最大扭矩、与 X69 ROM 上的情况相同。 闪存/RAM 开关方法可能不同、但两者之间的差异不大。

       

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Matt Meier">更改电机参数(电感和磁通常数)确实会有所改变、但它并不能解决角度误差问题。  它对控制器完全失败的情况毫无帮助

    您是否在软件中添加了在线 RS 计算、以应对此类高相电流下的线电阻变化? 这似乎是通过 x49套件实验室 is02/is10确定的一点、这是调用 RS 在线偏移重校准的原因。 文本用手标出定子电感随温度升高而变化的信息。 如果您在定子上放置一个热探头、在上面布置的电流谐波期间它是否会快速上升?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们也对 Rs 充满了限制,但没有积极的结果。  20A 不在这些绕组中、因此当我们在工作台上运行时、电机不会发热。  我们不需要使用 Rs_online、因为电阻在我们的终端应用中是可预测的。

    电感(和磁导率)不会发生很大变化。  除了电机不会发热之外、即使电机达到100°C、我们也只讨论了几个百分点  此外、我们还使用了这些值、但没有看到任何效果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [报价用户="GL"]

    抽取点是使用 GPIO 周期捕获来探测一个或多个 PWM 驱动器、以显示 InstaSpin 时序在每个 PWM 周期之外不偏斜、尤其是在高电流条件下。 这不能由发布的 GPIO 周期捕获单独确定。 InstaSpin SPRUHJ1H–2013年1月–2019年6月修订 版规定了20Khz 调制的默认节拍时间。 用户必须按照手册中的步骤确定软件抽取时间或添加更多的周期。

    [/报价]

    抽取的目的是在再次调用 ISR 之前允许执行 ISR 和所有必需的任务。  如果主 ISR 所用时间长于 PWM 周期、则系统将无法工作。  另一个考虑因素是、主后台循环也需要运行、因为它包含一些重要的任务、尽管这些任务不是时间关键型任务。  我也检查了这个。  主循环有足够的时间在 ISR 之间继续执行。  实际上、我们在该芯片上开发的 AVR 上确实存在溢出问题、但这是一个极端情况。  我想我理解您现在所说的"偏斜"是什么意思。  这不是问题、也与电机中的电流量无关。

    我们不是场强减弱、至少不是故意的。  我们通过命令 ID = 0来手动控制 MTPA 操作中的电机。  控制器在内部将 ID 调节为零、但我们可以测量正交电流、ID 不是零、这意味着角度错误。  估算器角度与实际转子角度的关系图证明了这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

    请在 监视窗口中监视 gMotorVars.vs、检查其值是否接近 USER_MAX_VS_MAG_PU。  以下代码应该位于 updateGlobalVariables()中,如果没有,请添加它。

    //计算向量 vs 以标么值表示
    gMotorVars.vs =_IQsqrt (_IQmpy (gMotorVars.vd、gMotorVars.vd)+_IQmpy (gMotorVars.VQ、gMotorVars.VQ));

    2.您需要先校准编码器的偏移、并在角度计算中删除偏移、然后将编码器的角度与估算器的角度进行比较。 在任何状态下、误差都应非常小。

    3.增加 USER_MOTOR_RES_EST_CURRENT、 USER_MOTOR_IND_EST_CURRENT 和 USER_MOTOR_FLUX_EST_FREQ_Hz。 然后使用 lab02c 再次识别电机。 电机参数似乎不是真实的识别值。

    4.看起来您使用的是30kHz ISR 和电流控制带宽、ISR 代码执行时间非常接近 ISR 周期。 您可以尝试40kHz PWM 频率、并将 USER_NUM_PWM_TICKS_PER_ISR_TICK 设置为2。 20kHz 可能足以控制电机。  如果没有电流采样饱和、则无需更改硬件、请检查电机的峰-峰值相电流。

    5.您能否发布主项目文件并向您展示如何设置电机电流? 如果存在稳定性问题、什么是基准扭矩电流、速度和负载? 如何在电机上增加负载? 增加的负载是否超过电机的额定扭矩?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Yanming Lua"]

    您好、Matt、

    请在 监视窗口中监视 gMotorVars.vs、检查其值是否接近 USER_MAX_VS_MAG_PU。  以下代码应该位于 updateGlobalVariables()中,如果没有,请添加它。

    //计算向量 vs 以标么值表示
    gMotorVars.vs =_IQsqrt (_IQmpy (gMotorVars.vd、gMotorVars.vd)+_IQmpy (gMotorVars.VQ、gMotorVars.VQ));

    [/报价]

    当我在13号导轨上走这些电流迹线时、我们确实做到了这一点。  这些图的值 I 为~0.068。  它离 USER_MAX_VS_MAG_PU 不近。

    [引用用户="Yanming Lua"]

    2.您需要先校准编码器的偏移、并在角度计算中删除偏移、然后将编码器的角度与估算器的角度进行比较。 在任何状态下、误差都应非常小。

    {/引述]

    我们确实做到了。  我们通过将机器驱动为空载发电机并集成电压来获得电机磁通来校准传感器。  从这里我们知道 d 轴和 q 轴的位置。  我们还可以使用反电动势过零、但我们采取了额外的步骤、以便将过零与磁通波形相匹配。  估算器角度将转换为方波。  该方波与施加的电流完全匹配、因此我知道 PI 控制器正在正确调节 d 轴和 q 轴电流。  但是、估算器角度和编码器角度之间的误差并不小。  尽管如此、我在这个帖子后面添加了一个短帖子、这让我对上述帖子中有关更改电压反馈滤波器的问题产生了疑问。

    [引用用户="Yanming Lua"]

    3.增加 USER_MOTOR_RES_EST_CURRENT、 USER_MOTOR_IND_EST_CURRENT 和 USER_MOTOR_FLUX_EST_FREQ_Hz。 然后使用 lab02c 再次识别电机。 电机参数似乎不是真实的识别值。

    [/报价]

    电机 ID 对于该电机失败;我不确定原因、但我们从未真正困扰过它。  我们直接测量了电机参数。  它们与客户的测量值匹配、并且也接近有限元分析的值。  如果我们必须执行电机 ID、那么我们可以尝试找出它失败的原因。

    [引用用户="Yanming Lua"]

    4.看起来您使用的是30kHz ISR 和电流控制带宽、ISR 代码执行时间非常接近 ISR 周期。 您可以尝试40kHz PWM 频率、并将 USER_NUM_PWM_TICKS_PER_ISR_TICK 设置为2。 20kHz 可能足以控制电机。  如果没有电流采样饱和、则无需更改硬件、请检查电机的峰-峰值相电流。

    [/报价]

    GL 回到抽取主题后、我尝试了几种组合、以便我可以将这个想法放在休息位置。  其中包括 MotorWare 默认值(45kHz PWM 和15kHz 主 ISR)以及您建议的组合。  我们还使用了20kHz PWM 和20kHz ISR、20kHz PWM 和10kHz ISR、60kHz PWM 和30kHz ISR。

    峰间相电流为40A (20Apk)、刚好在系统开始发生故障之前。  这大约是该演示套件满量程测量容量的50%。

    如果您愿意、我可以改回电压反馈滤波器。

    [引用用户="Yanming Lua"]

    5.您能否发布主项目文件并向您展示如何设置电机电流? 如果存在稳定性问题、什么是基准扭矩电流、速度和负载? 如何在电机上增加负载? 增加的负载是否超过电机的额定扭矩?

    USER_MAX_VS_MAG_PU

    [/报价]

    我附加了我们正在使用的 main.c。  我报告的所有故障都发生在该程序中。  唯一的区别是、我无法运行这个开环、它没有添加内部绘图。  此文件与 proj_lab11.c 之间的唯一区别是我删除了速度环路。

    我们直接在调试器窗口中设置电机电流。  参考电流和速度随第13篇我的文章中的电流图列出。

    负载为~130mNm 左右。  振荡开始后很难分辨、但如果您需要、我可以添加一个数字滤波器来平均转矩表读数。  它由连接到可变电阻组的直流发生器供电。  我可以根据需要改变负载扭矩。

    此电机尚未达到扭矩额定值。  我无法使用此套件进行足够好的热测试、因此我们不知道它的限制是什么。  电机的设计目标是150mNm。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Matt Meier"]

    更多信息。

    我增加了电压测量电路中的截止频率、因为尽管我在上一个线程中报告了测试、但我不能在如此接近滤波器截止频率的电气频率下正常运行。  我在演示套件的正确封装中有10、000pF 的电容器、因此我刚刚使用了这些电容器、将截止频率设置为3356Hz (而不是构建套件时的335.6Hz)。  我使用的是30kHz PWM 频率、因此反馈纹波仍然不是问题。

    然后、我重新运行测试、将电流基准从0.15pu (7.5A)扫描到0.4pu (20A)、并观察应用的电流角度的偏差。  它大致相同。  估算器在大约相同的电流下仍然处于不同的状态。  这就证明了反馈滤波器不会对系统产生重大影响、至少在2000rpm 时是如此。

    [/报价]

    这可能不是100%精确。  今天早上、我发现位置传感器已经移动。  我想、在运行此测试之前、我们可能已经调整了扭矩支架对齐、并且可能已撞住传感器。  我将重做此试验、以查看角度误差是否更好。  无论如何、估算器仍照常在~20Apk 下处于不同的距离、这与传感器无关。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Matt、

    1.我认为 ~0.068不是 gMotorVars.vs 的正确值。 请帮助再次验证。

    2.您可以如我上面所述调整识别变量、尝试通过识别来获得电机参数。 它对于在该套件上运行电机应该很有用。

    3.您无需更改电压感应电路。 建议电压采样滤波器的截止频率介于300~1000Hz 之间。 高频电机可以使用更高的截止频率。  

    4.您能否再次发布 main.c、因为我在此线程中找不到它?

    5.如果可能,您是否可以尝试以相同的速度在电机上添加较低的负载? 看看发生了什么。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1. 正确。  如果您构建相量图也很有意义:

    总线电压设置为28V、因为之前、当我们在6500rpm 时遇到问题时、我们希望消除相电压对调制限制的影响。  此工作点的相电压仅为2.3V。  当我运行该测试时、总线电压可能会有点高、因为它是不可调节的、所以它会根据一天中的时间发生变化。

    我已经降低和增加了总线电压、除非我迄今为止将其降低到达到调制限值、否则看不到任何效果。

    2、 我将在重新执行测试3并重新更改硬件后再处理它。

    使用 新滤波器重新绘制相位与电流间的关系图后、我会将其改回。

    4. 很抱歉。  我不确定发生了什么。  我再次尝试了。

    5. 我有。  电流干净稳定、但位置不正确。  从2月18日开始、在这个线程中、使用电流请求与相位角查看我的图。  除了相位问题外、转矩确实会随相电流的变化而变化。

    e2e.ti.com/.../4162.main.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    重新运行测试后、我大约95%相信演示套件的截止频率是导致问题的主要因素。  当我正确校准传感器并运行测试时、转子角度和估算器角度之间可能会出现5°-10°的误差。  我获得的每安培扭矩与机器的扭矩常数相匹配、如果我接管并跳转到开环控制、我无法做得比控制器施加的扭矩好得多。  °、当我重新打开旧滤波器时、角度误差会跳回到25 μ s 或更多、并随着电流的增加而增加。

    这是合乎逻辑的。  我不知道估算器是如何针对测量误差进行调整的、但在167Hz (我们的电气频率)下、相位电压衰减13.3dB (而电阻分压器仅为13.1dB)、但相移为26.5°。  这在很大上可以适应后测量。

    我想全面记录这个问题、因此我将拆卸测试台以校准扭矩表、然后再次运行这两个测试。

    除了修复角度误差外、不稳定性也没有那么糟糕。  通过对 PI 控制器进行按摩、我能够将电流推至30A、很好地进入电机的饱和区。  角度是可预测的不准确、但这并不奇怪、因为电机参数都不正确。

    当我完成数据重置后、我将把所有内容放在一起。  我必须在明天早上之前完成另一个项目的一些工作、因此如果我今晚不能完成、明天我就会对这一切进行总结。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用用户="Matt Meier"]转子角度和估算器角度之间可能会出现5°-10°的误差。  [/报价]

    哪个发生器触发 ID/Vd 的 ADC 采样窗口 SOC ?  如果  您将 INT 优先级( ID)更改为 EOC #1 、 将 EMF (Vd)更改为 EOC #0 或 循环 其他、该怎么办? 那么、在  ROM 调用中、旋转角度是否优先于当前角度中断?  我想知道 ROM 计算的采样值是否是静态变量分配。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    三相电压、三相电流和直流总线电压模拟测量均由 ePWM 中断(主 ISR)触发。  根据我的理解、每个 PWM 环路都会为它们提供服务;它几乎逐字运行实验11中的 TI 软件。  必须计算 ID 和 IQ、因此我不确定更改 ID 中断优先级意味着什么。  我也不知道 ROM 计算的采样值是什么意思。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我将讨论 ADC 采样 EOC 中断优先级顺序、以确定与电压/电流相关的 PWM 触发时间。 有趣的是、电感电流如何随着链路覆盖而滞后电压。 与发送到 Clarke/Park 变换的数据的 ADC 采样顺序时间关系直接相关、以保持每个 Uout 扇区的正确相位。 PWM 占空比是否在全部分离时达到100%调制、或者它是否保持在调制之下? 实验室硬件配置是基本结构、我需要通过改进来实现您所寻求的更精细粒度?

    https://www.nde-ed.org/EducationResources/CommunityCollege/EddyCurrents/Physics/circuitsphase.htm

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    模拟测量在每个周期进行。  由于主 ISR 仅由 ePWM 模块间接触发、因此在估算器运行时、这些函数都完成。  实际上、PWM 触发器会启动 ADC 转换、当 ADC 完成后、它们会触发主 ISR。  主 ISR 在下一次转换开始之前就已完成、因此您可以将转换视为 ISR 开始时模拟信号状态的快照。  以这种方式设置 ISR 触发链是该系统的一项很好的功能;在许多 MCU 中、ADC 必须由软件或外部触发器启动。  无论如何、该方法通常是类似的。  您读取模拟信号、然后进行数学运算、然后应用 PWM 信号。

    我将保证 ADC 不会并行发生、因此、理论上、第一个事件发生到最后一个事件完成之间存在延迟。  但是、与所控制的机器相比、这种滞后非常小。  在这个系统中完成转换所需的时间少于2us。  

    在2000rpm 时、2us 仅为0.12 μ s、°您可以看到从一个转换到下一个转换的延迟微不足道。

    PWM 占空比从未达到100%、因为软件中的占空比限制为95%(请记住、除了移除速度环路外、基本软件是完整的)。  但是、它也永远不会接近极限。  在2000rpm 的满电流下、我们的占空比限制小于10%。

    °,5°-10误差在我看来是完全合理的。  我会认为这是"解决了"的、因为我甚至没有尝试调整我们可以访问的内容。  我们尚未对电机参数或 PI 控制器进行微调、在更高的电流下、我们知道电机正在饱和、但我们尚未对此进行考虑。

    我几乎已经完成了对这两个数据集的收集。  我很快就会发布它们。

    Matt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我被绕过了。  我发现转子相对于安装在扭矩表上的位置传感器而不是机器本身打滑、因此之前的一些结果不完全准确。  从概念上讲、我们看到的问题都是真实的、但对于最终的写操作、我希望确保我们的所有内容都尽可能准确、因此我安装了一个新的套筒并安装转子、这样它就不会随着时间的推移而继续漂移。  对于此数据、我在每个传感器之前和之后校准了位置传感器、以便我知道没有任何变化。

    下面是我遇到的内容的摘要、包括重要事项和不重要事项的备注、回到上一个主题。  我不会列出我们尝试过的与估算器本身无关的所有东西、但有很多。

    1. 当我们开始时,电机运行在所需的运行点(6500rpm 和125mNm)时不稳定。  为了删除一些变量、我们增加了直流总线电压并更改了电机速度、但如果我们尝试获得大于20Apk 的电流、稳定性问题仍然存在。

    2. 为了调查稳定性问题、我们添加了一些软件、允许我们截取控制器(估算器和 PI 控制器)并以开环模式运行电机。  我们发现、这使得在20Apk 范围内平稳运行成为可能、但我们还发现、在开环模式下运行程序使我们能够生成比 InstaSPIN 系统完整时更高的每安培扭矩。  这向我们表明电流角度不是90°。

    2. 我们在系统中添加了一个位置传感器、然后再次运行机器、并看到每安培最大扭矩时的电流相位角为~90°、但在估算器接合的情况下、电流角度提高了20°-30°。

     °使用 GPIO 端口报告估算的相位角、我们看到 PI 控制器施加的电流几乎比估算角度快90°、这本身使转子超前20-30 μ A。  我们观察到、随着电流的增加、转子角度会变得更糟、这可能是由于转子逐渐滑动造成的。  如果我校正转子和传感器之间随时间变化的漂移(我们可以通过两种不同的方法)、那么我们得到的曲线通常与下面的曲线类似。

    4、 我们尝试以3000rpm 的转速运行系统、角度误差稍差一些。

    5. 我们更改了电压反馈滤波器,并重新运行了估算器角度与电流间的关系扫描。  它显著地引导转子的 q 轴、并继续变得更糟。  我认为、这是转子在高扭矩水平下开始在常量上滑动的地方。

    5. 在尝试确定估算器出现如此严重错误的原因时,我们尝试调整电机参数。  我们有一个来自之前项目的库、除了电感和电阻之外、我们还可以即时调整电机的磁通常数。  通过调整这些参数、我们能够改善角度、但由于调整过大、操作变得嘈杂且有点不稳定。  °能够从最佳组合中获得大约10 μ A 的改进。

    6. 我发现位置传感器与转子发生了滑动,所以我重新校准了所有内容,并重新扫描了电流角度与施加的电流。  我在°前后校准了角度、发现它漂移了~10 μ s。  因此、我将支架分开、并使用新衬套和更大的固定螺钉重新安装转子。

    7. 我重新开始测试、电流角度更好、转子没有换档。  超过20Apk 后、振荡返回、但明显改善了...我想知道在之前的测试中转子是否也有点偏心。  我能够调节 PI 控制器以消除不稳定、并将电流推高50%(很好地达到定子的硬饱和状态)、而不会变得过于不稳定。

    8 、我把试车重跑了25 Apk (0.5 pu)、结果不错。

    9. 我将电机提升到6500rpm/125mNm 的目标值、然后恢复了不稳定、通过调整 PI 控制器、我这次能够消除这种情况。

    10. 我将滤波器更换为标称值,并以2000rpm 的转速重新运行 IQ 扫描,前后校准位置传感器,以确保没有漂移。

    这里是转子角度与两个滤波电容器的命令电流之间的关系图。

    在默认情况下(蓝色曲线)、我调整了电机参数、以获得我能实现的最佳运行。  我确信、对参数进行聚合将进一步减少红色曲线中的误差。  右侧的下降是因为我们不会调整电机参数以实现饱和、如果没有正确的电机参数、估算器显然无法跟踪转子。

    如果有 TI 希望我运行的测试、那么我对它很开放...从文档中我知道估算器必须对滤波器频率进行补偿(有一个部分建议滤波器频率可以低至电机的基本频率)、 但我不知道如何操作、因此如果没有一些帮助、我就无法进一步跟踪这个。  无论如何、我很高兴能够将演示套件发送给在泵用电机上执行流体测试的人员。

    非常感谢 GL 和 Yanming 付出的时间和努力。

    再次感谢、

    Matt