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.

[参考译文] TMS320F280025C:在通用电机控制项目中需要正弦电流和霍尔传感器反馈。 此时在我的电动自行车集线器电机上获得带有可闻噪声的步进式电流。

Guru**** 2398695 points
Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F280025C

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor

主题中讨论的其他器件:MOTORWARELAUNCHXL-F280025C

工具与软件:

您好!

为了在不同条件下为我的电动自行车应用获得最佳的起始性能,需要使用霍尔传感器反馈。  

无传感器快速算法 在某些条件下(例如车辆处于斜坡上、负载更大等)不会启动

使用 FAST 算法可以获得非常好的正弦电流波形。 但使用霍尔反馈时、电流波形太糟糕。   电流波形有阶跃。 这会导致 电机发出大量可闻噪声、对于应用而言是不正常的。

请建议如何 使用霍尔传感器反馈获得正弦电流。

下面是 使用 A 相上的电流探头捕获的示波器电流波形  

黄色信号是霍尔 A、 蓝色是 A 相电流。   

速度基准频率为20Hz。

(无传感器)快速算法、霍尔 A、A 相电流、速度基准 20Hz  

(传感) HALL+ FAST 算法、霍尔 A、相位 A 电流、速度基准 30Hz

(传感) HALL+ FAST 算法,霍尔 A,相位 A 电流,速度基准 100Hz

我相信这种类型的电流 形状不适合 大多数有霍尔传感器的应用、TI 会做一些工作来通过霍尔传感器获得正弦电流。   

所有可用于 电动自行车应用的控制器,提供正弦,可闻无噪声电流。

谢谢、此致、

Anil

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

    您好!

     本文 捕获了市场上采用传感器电机控制器的霍尔 A 与 A 相电流的关系、如下所示。 我们应该得到类似的东西。

    市面上的电动自行车控制器-霍尔 A 与 A 相电流 间的关系(20Hz 速度)。

    此致、

    Anil

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

    尊敬的 Anil:

    您是否计划仅使用霍尔传感器进行启动、然后切换到 FAST (或其他无传感器观测器)? 这 是一个很好的解决方案、并在 InstaSPIN Lab 11e (这是 Motorware 解决方案、但是不是 MCSDK)中进行了记录/实施(在本 E2E 中也对此进行了说明)。  或者、您是否计划使用霍尔传感器反馈来闭合所有运行条件下的速度环路? 或别的什么东西吗?

    要产生正弦电流、您需要一个线性角度、而数字(6步长)霍尔传感器不提供该角度。 我认为在电机启动时使用霍尔反馈实现正弦电流不可能、或者至少会很困难。 一旦电机达到一定速度就能实现更多、您可以估算两个霍尔步进之间的位置。  

      捕获市面上有传感器电机控制器的 Hall A 与 A 相电流对比、如下所示。 我们应该得到类似的东西。

    这看起来仍然是6步梯形控制、但电流转换是平滑的。 对此、调节 PI 电流控制器可能有助于实现更平稳的电流变化、需要进行一些测试。  

    此致!

    Kevin

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

    请参阅以下文档中的 Motorware 目录 C:\ti\motorware\motorware_1_01_00_18\docs\labs 中的 Lab 11e Hall Start 并过渡到 FAST

    e2e.ti.com/.../8880.instaspin_5F00_labs.pdf

    此致!

    Kevin

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

    非常感谢 Kevin 老师的讲解!

    我已经 测试过  "从霍尔开始、然后转到快速"。 这在功能上很好。 问题是启动期间的可闻噪声(在霍尔模式下)。  

     从 lab11e 电流波形非常清楚,这种 电流的突然变化会在中/高电流应用中减轻可闻噪声。

    如前所述、 市场上的控制器必须使用平滑边缘等操作。

    我们也可以在算法中做类似的事情吗?  接下来、我们将为 Iq ref 添加一个斜坡   

    类似于随附的图像、在 lab11e 电流波形上标有红线。 请建议我们需要在代码中的什么位置进行 这些修改。 我有一种感觉,没有这一点,我们不能使用我们的算法为电动自行车应用。

    我的原型产品已在 仅 FAST 模式的电动自行车现场试用中( 由于 噪音问题、停止使用"从霍尔开始、然后更改为快")、并在一些情况下(如斜坡等)面临启动问题  

    谢谢、此致、

    Anil

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

    尊敬的  Anil:

    您能否提供启动的相电流波形捕获? 我想看看它的形状是怎样的。  

    您可以在代码中删除对齐步骤。 由于通用转子位置已知、因此无需启动数字霍尔传感器。 如果启动时的噪声是由于对齐导致的、这可能会有所帮助。

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5368684 #536864"]

    如前所述、 市场上的控制器必须使用平滑边缘等操作。

    我们也可以在算法中做类似的事情吗?  接下来、我们将为 Iq ref 添加一个斜坡   

    [报价]

    在通用电机实验中、电流波形实际上取决于角度反馈。 我不确定如何使用6步长霍尔传感器使电流波形在启动时不是梯形、因为位置反馈粗略地采用60度阶跃。 我在网上发现的大多数读数都是这样做的。

    可能具有 Iq_ref 的斜坡曲线、直至电机开始旋转 另见 计算霍尔效应和无传感器的混合动力、以实现更平滑的位置反馈。

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5368684 #536864"]类似于随附图像、且 lab11e 电流波形上标有红线的内容。 请建议我们需要在代码中的什么位置进行 这些修改。 我有一种感觉,没有这个,我们不能使用我们的算法为电动自行车应用程序。[/报价]

    我认为这些增强可以 很好地适应代码的状态机。 您甚至可能需要添加新状态。

    此致!

    Kevin

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

    尊敬的 Kevin:

    [报价 userid="315587" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5369060 #5369060"]

    尊敬的  Anil:

    您能否提供启动的相电流波形捕获? 我想看看它的形状是怎样的。  

    您可以在代码中删除对齐步骤。 由于通用转子位置已知、因此无需启动数字霍尔传感器。 如果启动时的噪声是由于对齐导致的、这可能会有所帮助。

    [报价]

    只要 我们处于霍尔模式、就存在可闻噪声。 而不仅仅是在启动期间。  

     我的帖子中有霍尔开关的稳态(固定速度)相电流波形。 希望 这是足够的分析。  

     如果在启动并达到一定速度后切换到快速 模式、那么切换点将不会有噪声。  

    我认为这些增强功能可以 很好地应用于代码的状态机。 您可能需要添加新的状态(偶数)。

    您能否指导在固件中进行这些更改?

    此致、

    Anil

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

    尊敬的  Anil:

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5370088 #5370088"]只要 我们处于霍尔模式、就存在可闻噪声。 而不仅仅是在启动期间。  [报价]

    好的、理解。  

     霍尔传感器的稳态(固定速度)相电流波形在我的帖子中。 希望 这是足够的分析。  [报价]

    看到电机启动的更宽波形捕获仍会有所帮助。

    您能否指导在固件中进行这些更改?

    一名团队成员目前正在致力于改进一些数字霍尔算法并生成正弦电流(即线性角度斜坡、而不是步进)。 我们可以分享代码片段供您进行集成和测试、一旦代码片段处于更好的状态、也最好获取您的反馈。

    在切换到正弦电流之前的第一个电周期(或前几个)内、电机启动仍将是6步/梯形电流、由于数字霍尔传感器的性质、这是不可避免的。

    此致!

    Kevin

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

    尊敬的 Kevin:

    将非常高兴与您的团队成员一起工作/测试、以使用霍尔使电流波形变得平滑。  对于我们的应用而言、从霍尔开始并切换到 FAST 是完美的选择。

    Benjamin 已经发送了一些代码 详细信息。  我将在明天进行测试并提供更新。

    此致、

    Anil

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

    尊敬的  Ben Collier:
    我会很乐意测试该代码。  我们将在明天(印度时间8月28日)执行任务并为您提供最新消息。

    此致、

    Anil

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

    尊敬的 Ben:

      根据 上述建议修改了以下4个文件。  

    hall.h、 hal.h、 hal.c、motor1_drive.c  

    无论速度命令是什么、电动机始终以20Hz 的频率运行。  如果我评论一下运动、就 得到 适当的速度控制。  

    附加4个修改后的文件、作为单个 压缩文件。 所有更改都在#define HALL_TI 下。 请看一下。

    我们使用的是 #define USER_M1_SIGN_CURRENT_SF      (-1.0f)  user_mtr1.h 、这是非常有用的。  请查看它是否会影响任何新逻辑。

    尝试以运行速度加载。 不会提供太大的扭矩。 电机停止运转。  

     在正常运行时连接霍尔 A 与 A 相电流(使用连接到示波器的外部电流传感器测量)并开始 现有代码和修改后的代码。 请仔细查看、看看 它是否能帮助您找出可能存在的问题。

    使用方向代码比较霍尔 A 与 A 相电流时、 如果霍尔 A 为1、我将获得负 A 相电流。

    修改后的代码正好相反。

    霍尔 A 与 A 相电流 及负载-原始代码

    启动期间霍尔 A 与 A 相电流间的关系 1 -原始代码

    启动期间霍尔 A 与 A 相电流间 的关系2 -放大后-原始代码

    霍尔 A 与 A 相电流始终以20Hz 的频率运行 -修改后的代码

    霍尔 A 与 A 相电流始终以20Hz 的频率运行 、起始 编号为1 -修改后的代码

    霍尔 A 与相位 A 电流的运行频率始终为20Hz (起始频率为2)、放大 后的代码-修改后的代码

    e2e.ti.com/.../HALL_5F00_TI_5F00_code_5F002800_TI_5F00_suggestons_2900_-29Aug2024.zip

    感谢 您的支持

    此致、

    Anil

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

    好的、让我检查一下我是否留下了任何东西。 即使缺少一些小的代码片段也可能导致这一问题。  

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

    尊敬的 Ben:

    您能看一下我在集成您提供的代码后提到的问题吗? 请查看 我之前的邮件中所附的4个文件。

    我的电动自行车正在现场试用。 除了 有启动问题外、FAST 的性能还不错。 有助于 尽早解决霍尔问题(可闻噪声+启动扭矩较小)。

     我最近在低速测试时发现、霍尔效应使启动扭矩减小。  

    我们以30Hz 的速度运行 、1) FAST、2)霍尔、3)市场上可用的控制器  和应用制动器。 有了霍尔、它很容易停止、其他2种情况下、它会继续运行。  我附上 一些屏幕截图进行比较。 (我是否应该再开始讨论霍尔低扭矩? )

     霍尔 A 与 A 相电流>>1)霍尔 2)快速  3) 市场上的控制器、可提供良好的霍尔性能  

    如果比较第一个波形和最后一个波形、则过零是对称的  、具有市场和 FAST 的控制器。 对于霍尔算法、上升电流和下降电流具有不同的零电平。 这是否会导致 任何问题? 请说明一下。

    市场上的控制器-启动-霍尔 A 与 A 相电流

    请参阅市场上提供的控制器的起始电流。 产生平滑的电流。

    如果您今天能回答详细信息、我将不胜感激。

    谢谢、此致、

    Anil

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

    Anil:

    e2e.ti.com/.../hall_5F00_zip.zip

    我已经从我编辑过的项目中压缩了所有文件。 我似乎 没有在上一篇文章中包含所有这些更改。 我还使用了预定义符号 HALL_Sine 来过滤掉这项新内容。

    因为我使用了不同的 MCU 和不同的板、所以我认为您可以将除 hal.h 和 hal.c 之外的这些文件复制/粘贴到自己的项目中。 对于 hal.h 和 hal.c、您应该可以复制/粘贴我上周发布的已更改代码。  

    请告诉我这是否适合您。  

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5391299 #5391299"]

     我最近在低速测试时发现、霍尔效应使启动扭矩减小。  

    我们以30Hz 的速度运行 、1) FAST、2)霍尔、3)市场上可用的控制器  和应用制动器。 有了霍尔、它很容易停止、其他2种情况下、它会继续运行。  我附上 一些屏幕截图进行比较。 (我是否应该再开始讨论霍尔低扭矩? )

    [报价]

    我还没有时间在 FAST 和我们新的大厅之间测试扭矩、本周我将努力回到你的身边。

    我想现在让我们重点关注确保进行正确的编辑、以使正弦电流霍尔示例正常工作。  

    此致、

    Ben Collier

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

    尊敬的 Ben:

    感谢这里的 细节

    我们按原样使用了4个文件、 hal.c 和 hal.h 复制了 HALL_SINE 下的代码。

    最初、motor1_drive.c 中新添加的一些代码 显示为注释。  意识到我们   只能使用 MOTOR1_HALL。 我们 也使用了 MOTOR1_FAST。 使其成为  MOTOR1_FAST_N   现在、编译工程时不会出现任何错误。

    电机正在运行、有时是 FW、有时是 REV。 在具有巨大急冲的正向运行和与原始代码一样的反向运行中、但是具有50Hz 的恒定速度。

     如果我 在图形工具中提供了一些参数、它将有助于调试。 如果是、请提供参数建议。

    此致、

    Anil

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

    Anil:

    我有以下与霍尔相关的预定义符号:

    Hall_Sine

    HALL_ENABLE

    MOTOR1_HALL

    HALL_CAL

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5394574 #5394574"]

    电机正在运行、有时是 FW、有时是 REV。 在具有巨大急冲的正向运行和与原始代码一样的反向运行中、但是具有50Hz 的恒定速度。

     如果我 在图形工具中提供了一些参数、它将有助于调试。 如果是、请提供参数建议。

    [报价]

    当然可以、您可以绘制 霍尔对象中的 Hall_Hz 图吗? 还请绘制  hallSineAngle 和  angleFOC_rad

    此致、

    Ben Collier

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

    尊敬的 Ben:

    好消息。  在启用 HALL_SINE 的情况下、我们能够以正常速度控制方式运行电机。  

    在昨天的设置中更新 hal.h 和 hal.c 时出现一些错误。 更正了这些错误。

    与 使用原始代码运行相比、可闻噪声更小。 (使用 MOTOR1_HALL 算法)。 电流波形看起来非常 接近正弦

    下面是我们现在遇到的一些问题。

    -低速性能不是很好。 明天查看详细信息。

    -示波器中的霍尔 A 与 A 相电流波形  在使用 HALL_SINE 与 FAST 算法的情况下显示了几乎90度的相移。

    在下方附加捕获的振荡波形。

    下面  是您询问的3个参数、这些参数以图表形式捕捉

    hallSineAngle wert hallhallSineAngle wert hall

    angleFOC_rad wrt hallangleFOC_rad wrt hall

    Hall_Hz 露天音乐厅

    非常感谢 您的帮助。 这是一个非常好的改进。  

    此致、

    Anil

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

    Anil:

    我们计划添加一项功能、通过某种校准消除这种相移的可能性。 这一点在任何给定电机中都可能有所不同、我们希望创建通用解决方案。 该问题来自我们、假设电气0度与特定的霍尔边沿相匹配、尽管每个电机都不相同。

    特别是对于您的问题、您可能会在 motor1_drive.c 中进行以下更改:  

    //
    //计算正弦角
    //
    (obj->hallHandle)->hallSineAngle =(obj->hallHandle)->hallECAPTime)/(obj->hallHandle)->timeStampCAP);

    //
    //如果电机速度减慢、请限制位置估算
    //
    if ((obj->hallHandle)->hallSineAngle>1.047f){
    (obj->hallHandle)->hallSineAngle = 1.047f;
    }

    obj->angleFOC_rad =(obj->angleHall_rad)+(obj->hallHandle)->hallSineAngle - 1.5. 7
    if ((obj->hallHandle)->hallIndexPrev!=( obj->hallHandle)->hallIndex){
    //
    //如果霍尔状态已更改、只需使用 angleHall_rad
    //
    obj->angleFOC_rad = obj->angleHall_rad - 1.5 7;  //   90度= 2 π/4 rad ~= 1.57
    }

    这个-1.57常数可能并不完全正确、但我认为可以通过恒定偏移来解决您的问题。 请告诉我这是如何工作的!

    此致、

    Ben Collier

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

    尊敬的 Ben:

    当我将 motorVars_M1.3011设置 Ref_Hz 为正时、电机可以正常运行。

    但是、当 motorVars_M1.4592 Ref_Hz 设置为负值时、电机会以不受控制的速度高速旋转。

    HALL_SINE 是否支持电机的正向和反向旋转?

    此致、

    Gary

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

    您好!

    [报价 userid="431230" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5398412 #5398412"] HALL_Sine 是否支持电机的正向和反向旋转?

    抱歉、我发送给您的代码仅在转发模式下有效。 这是我将在未来几周内补充的内容。  

    我很快就会为您提供一些相关指导。  

    此致、

    Ben Collier

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

    尊敬的 Ben:

    很好的改进…

    1. 将常量改为 -1.57后,没有相移。 我们现在拥有足够的扭矩、降低了噪声、但仍能听到轻微的可闻噪声(FAST、无噪声)
    2.启动时的电流波形也不是正弦波。

    请参阅示波器捕获的相电流 A 与霍尔 A、  启动时间电流(节流电压与相电流等)的波形

    霍尔 A 与电流 A 之间的关系、具有-1.57常数

    启动期间节气门电压与 A 相电流间的关系

    请建议如何进一步降低可闻噪音。 我们应该尝试使用 PWM 频率的任何东西。 (现在为15kHz)

    还有一点、在我之前的设置中、我们从霍尔传感器开始、然后切换到快速传感器。  在当前代码中、FAST 未启用。  您认为我们应该在 稳定的起步后改为快速还是  仅继续使用大厅?

    正在进行详细测试。 将 在次日更新更多测试结果。

    谢谢、此致、

    Anil

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

    尊敬的 Anil:

    很高兴听到您的偏移已纠正、我们计划为此例程添加一些校准、但我们尚未这样做。

    2. 另外、启动时的电流波形也不是正弦波形。

    遗憾的是、这将是该方法的缺点。 当速度快速变化时(如在启动期间)、位置估算器将不会非常精确、因此电流不是正弦波。

    请推荐要进一步降低可闻噪音的方法。 我们应该尝试使用 PWM 频率的任何东西。 (现在为15kHz)[/QUOT]

    理想的开关频率取决于您的特定电机。 我认为尝试不同的频率将是一个好主意。

    在当前代码中、未启用 FAST。  您认为我们应该在 稳定的启动或  仅继续使用大厅后转换为快速吗?[/报价]

    我不建议您在此使用、这是特定于应用的。 我还没有对这种新的霍尔模式进行足够的测试来了解它是否优于 FAST、但我想 FAST 会更准确。

    此外、我还添加了一些粗略的双向功能。 附加新的 motor1_drive.c 文件:  

    e2e.ti.com/.../hall_5F00_zip1.zip

    此外、我还在 hal.h 中更改了此函数:  

    //! \brief     Read the CAP counters, change CAP pin
    //! \param[in] handle      The hardware abstraction layer (HAL) handle
    //! \return    The relevant CAP counter
    static void HAL_changeCAPPins(HAL_MTR_Handle handle, uint32_t hallState, float32_t hallSpeed)
    {
    
        if(hallSpeed>0){
            if((hallState == 3)||(hallState == 4)){  // state 2,5
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_V_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_V_INSEL);
            }
            else if((hallState == 1)||(hallState == 6)){  // state 1,4
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_W_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_W_INSEL);
            }
            else if((hallState == 2)||(hallState == 5)){  // state 3,6
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_U_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_U_INSEL);
            }
        }
        else{
            if((hallState == 3)||(hallState == 4)){  // state 2,5
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_U_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_V_INSEL);
            }
            else if((hallState == 1)||(hallState == 6)){  // state 1,4
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_V_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_W_INSEL);
            }
            else if((hallState == 2)||(hallState == 5)){  // state 3,6
                XBAR_setInputPin(INPUTXBAR_BASE, MTR1_CAP_U_XBAR, MTR1_HALL_W_GPIO);
                //ECAP_selectECAPInput(obj->capHandle[0], MTR1_CAP_U_INSEL);
            }
        }
    }

    我们现在根据电机方向查看不同的霍尔信号。  

    我想向您重点介绍其中一件事。 我将此代码添加到 motor1_drive.c 中、是因为它有助于在进行速度控制时实现前进和后退之间的转换、但您可能希望将其删除:

            if((obj->speedHall_Hz > -.1f)&(obj->speedHall_Hz < .1f)){
                //
                // If motor is very slow (possibly from changing directions), do starting procedure
                //
                obj->angleFOC_rad = obj->angleHall_rad;
                obj->enableSpeedCtrl = false;
    
                obj->Idq_out_A.value[0] = 0.0f;
    
                if(obj->speedRef_Hz > 0.0f)
                {
                    obj->IsRef_A = obj->startCurrent_A;
                    obj->Idq_out_A.value[1] = obj->startCurrent_A;
                }
                else
                {
                    obj->IsRef_A = -obj->startCurrent_A;
                    obj->Idq_out_A.value[1] = -obj->startCurrent_A;
                }
    
                //obj->motorState = MOTOR_CL_RUNNING;
                PI_setUi(obj->piHandle_spd, (obj->frswPos_sf * obj->Idq_out_A.value[1]));
            }

    此致、

    Ben Collier

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

    尊敬的 Ben:

    以下是 Hall_Sine 与 FAST >>的简要总结

    1)未看到启动急冲、 扭矩几乎与速度相同。

    问题>

    1.在所有速度范围内电机中都存在可闻噪声。

    2.起始波形不是正弦波
    3. 通过设置负速度基准不会反向运行  

    4、 低速运行不稳定。

     请查看下面市场控制器 和 Hall_Sine 之间的一些比较、这些比较可帮助 您改进 HALL_Sine 算法  

    1) 1)请参阅  稳态电流期间 Hall_Sine 和市场控制器之间的 A 相电流波形比较。  对于第二个稳压器、 相电流  提前一点达到零、并在一段时间内保持为零使用 Hall_Sine 时、它在霍尔转换边沿到达零。 有时,电流   在这一点有一个突然的步进。 我 有一种感觉这种突然变化的电流,可以导致可闻噪声。 请查看是否可以避免这种情况。 我 在下面随附的图像中对此进行了标记。

    HALL_Sine 与市场控制器-稳态 A 相电流- 零转换。

    有一种感觉,如果1、2可以类似于3、4 ,我们可能能够 AVOD 的小突然变化/步数接近零过渡

     电流突然的边沿

    如果我们做 algorith 得到一个稍微平展的零区域,像市场控制器,这些边缘,我们有时 会得到不会发生,我觉得。 这可能会导致可闻噪声。

    2)下面是一些比较波形-霍尔 A 与相位 A 电流,油门电压与相位 A 电流。 或者会与  
     * Hall_Sine 与 FAST
    * Hall_Sine 与 Market 控制器(有传感器、霍尔)  

    请参阅、您可以从中有所了解、从而在开始时消除前1-2个周期的电流阶跃和高振幅。

     Hall_Sine 起始 霍尔 A 与 A 相电流间的关系  

    第一个周期具有更高的振幅和更多的步进。

     使用 Hall_Sine 和市场控制器启动霍尔与相电流之间的关系

    HALL_Sine 在第一个电流周期中具有更高的电流幅度和阶跃。  

    谢谢、此致、

    Anil

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

    Anil:

    3. 未 通过设置负速度参考值来反向运行 

    我最近一篇文章中的代码应该能够解决这个问题。  

    不幸的是、我将不得不离开这一问题大约两周、所以请不要指望在这一时间范围内有任何改进。

    之后,我会考虑你的反馈,我会再次尝试改进!

    此致、

    Ben Collier

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

    尊敬的 Ben:

    当您 接下来的2周处于忙碌状态时、我们将在车辆上进行 更多测试、并为您提供更多  霍尔波形与电流波形、以帮助您   

    1.避免前一个周期 电流 波形不良  (相对于市场控制器)
    2.可闻噪声  

    我们只剩下这2个问题。  车的性能其他方面都很好。

    还有一个。。。

    3.一旦电机启动并达到一个速度,我们可以 旋转到快。 如果您也包含这个函数就更好了...与 FAST 相比、在 Hall_Sine 中 MOSFET 会发热更多。  详细测试/数据。

    在反向运行方面、 新代码正在运行。 但是、运行并不像正向运行那样平稳。

    谢谢、此致、

    Anil

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

    尊敬的 Ben:

    希望 您再次回到该项目。  我们正在等待您的帮助以继续。

    到目前为止、有2 项主要要求

    1使稳态电流波形与市场上的控制器电流波形相似。  在市场控制器中、电流  比我们使用 HALL_Sine (一个小的平坦区域)达到零的时间要早一点。  我认为这也会消除可闻噪声(  此主题中前一篇文章中的图像和其他详细信息)

    2.启动电流改性。  起始时霍尔 A 与 A 相电流 的比较(使用 HALL_SINE、FAST 和 Market 控制器时 )在前一帖子中附有。 通过 HALL_Sine 消除急冲、我们将获得一个与使用霍尔反馈的市场控制器相似的平稳启动。  (  本主题中上一篇文章中的图像和其他详细信息)

    3.还需要 Hall_sine/Hall 进行快速切换(一旦状态= 10) 以获得最佳性能。

    我们期待您的支持、

    谢谢、此致、

    Anil

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

    抱歉、Anil、我将在未来几周内不再从事此项目。  

    不过,我还是想帮你解决这个问题。

    3. 还需要 HALL_SINE/HALL 快速切换(一旦状态= 10) 以获得最佳性能。[/QUOT]

    这不能让您绕过第一个要求吗? 您可以从霍尔模式开始、然后切换到快速模式?  

    至于启动电流的问题、您能否尝试调整 PI 控制器、以查看这是否会改善启动性能?  

    谢谢!

    Ben Collier

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

    尊敬的 Ben Collier:

    我正在查看 电机启动期间的单霍尔周期非正弦尖峰电流 。  可以找到以下要点...

     * Iqref 在一个霍尔周期后具有很大的尖峰。 我觉得这可能是由于 在一个霍尔周期后估算速度(使用霍尔脉冲宽度)、 这会导致速度 Pi 降低 IqRef。   是否最好忽略前几个 霍尔周期速度估算并对 PI 使用平均速度值?

     *在 HALL_SINE 的情况下也可以找到,我们没有状态5、6。  它直接进入状态9。  但在大厅,它在5和6一段时间,然后进入9状态。 为什么使用 HALL_SINE 删除状态5、6? 是不是导致了任何急冲或 iqref 尖峰?

    请评论以上意见...

    BTW、您何时能够支持待解决的2个问题-  1.在第一个霍尔周期中开始急冲/电流尖峰  2.可闻噪声/电流波形与我之前发布的市场控制器电流波形相似。  有了 这两款产品、我们将能够很好地将产品推向市场。 感谢您的快速支持...

    将 第一个 周期非正弦电流波形重新发布 在下面。

    谢谢、此致、

    Anil

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

    尊敬的 Anil:

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5458572 #5458572"] * Iqref 在一个霍尔周期后出现很大的尖峰。 我觉得这可能是由于 在一个霍尔周期后估算速度(使用霍尔脉冲宽度)、 这会导致速度 Pi 降低 IqRef。   是否最好忽略前几个 霍尔周期速度估算并对 PI 使用平均速度值?[/报价]

    我认为这是可以的、我们希望将来能够改进、但现在它在启动时并不十分准确。  

     *也可以在 HALL_Sine 的情况下找到、我们没有状态5,6。  它直接进入状态9。  但在大厅,它在5和6一段时间,然后进入9状态。 为什么使用 HALL_SINE 删除状态5、6? 是否导致任何急冲或 iqref 尖峰?

    我想这是霍尔的错误、它在进入电机运行状态之前进行了一些对齐。 对于霍尔编码器、我认为这不是必需的、尤其是如果考虑了霍尔传感器零点和电机电气零位之间的偏移的话。

    顺便说一句、您何时能够支持未决的2个问题-  1.在第一个霍尔周期中开始急冲/电流尖峰  2.可闻噪声/电流波形与我之前发布的市场控制器电流波形相似。  有了 这两个开始,我们将很好地把产品推向市场。[/报价]

    遗憾的是、我现在无法提交日期、因为我已被拉至其他一些项目。  

    我很乐意回答您的问题。  

    此致、

    Ben Collier

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

    尊敬的 Ben:

    每10-15次尝试启动一次急冲。 剩余时间没有急冲。

    可以识别急冲发生的   情况、每当它达到以下 IF 条件时。

    可以看到状态9、iqref 在增加、速度几乎为零。 如果条件、iqref 变为零、则进入该范围。  

    看上去、  当它脱离此 IF 条件时会发生急冲。   

       obj->enableSpeedCtrl = false (if 条件内)相关的任何操作。  ?  

    if ((obj->SDN>-.1f Hall_Hz)&(Hall_Hz <.1f)){
    //
    //如果电机速度非常慢(可能偏离方向)、请执行启动程序
    //
    obj->angleFOC_rad = obj->angleHall_rad;
    obj->enableSpeedCtrl = false;

    obj->Idq_out_A.value[0]= 0.0f;

    if (obj->240 Ref_Hz >0.0f)

    obj->IsRef_a = obj->startCurrent_a;
    obj->Idq_out_A.value[1]= obj->startCurrent_a;
    }
    设计

    obj->IsRef_a =-obj->startCurrent_a;
    obj->Idq_out_A.value[1]=-obj->startCurrent_a;
    }

    //obj->motorState = motor_cl_runing;
    pi_setui (obj->piHandle_spd、(obj->frswPos_sf * obj->Idq_out_A.value[1]));
    }

    此致、

    Anil

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

    Anil:  

    我认为如果没有此代码、就值得进行测试、我进行了此更改、但没有进行全面测试。 我使用它作为带式辅助装置、因为在改变方向时速度控制有时非常慢、但它很粗糙、显然并不总是按预期工作。

    此致、

    Ben Collier

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

    尊敬的 Ben:  

       如果逻辑  i、e  >   if (Hall_Hz >-.1f)&(obj->ECG Hall_Hz <.1f)){,则已测试注释已满。  

    地址。

           *有时电机无法启动

          *电动机启动时, 起动非常平稳。

    当未开始时、发现  "obj->angleFOC_rad"  比"obj->angleHall_rad"大1.047。  

       *"( obj->hallHandle)->hallSineAngle"  是 1.047 在开始之前霍尔开始改变其值

        * obj->454(     应用速度参考时)  在霍尔值开始 变化前 Hall_Hz 为0.4

    创建了 如下所示的权变措施代码(略高于注释中的 if 代码)。

      if ((obj->vc.0>-1.0f Filter_Hz)&&(obj->457I Filter_Hz < 1.0f)){
              obj->angleFOC_rad = obj->angleHall_rad;
        }

    使用此功能时、电机总是起动平稳、除了在第一个霍尔循环中出现轻微振动。 这是因为 HallSineAngle 在 Filter_Hz 高于1 Hz 时才被使用。

    我们可以消除该起始轻微振动  IF   

     1)(obj->hallHandle)->hallSineAngle 是在霍尔状态开始改变之前从零开始的

     2 ) Hall_Hz = 0( 不是0.4我们正在得到)在开始之前的大厅状态开始变化

    感谢您的意见、以 修复2分以上的问题。  

    谢谢、此致、

    Anil

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

    Anil:

    很抱歉耽误你的时间。

    [报价 userid="165238" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1400217/tms320f280025c-need-sinusoidal-current-with-hall-sensor-feedback-on-universal-motor-control-project-getting-step-type-current-with-audible-noise-as-of-now-on-my-ebike-hub-motor/5487062 #5487062"]

     1)(obj->hallHandle)->hallSineAngle 是在霍尔状态开始改变之前从零开始的

     2 ) Hall_Hz = 0( 不是0.4我们正在得到)在开始之前的大厅状态开始变化

    [报价]

    这些似乎是合理的修复方法。 我不确定我能否帮助实施它们、听起来您现在已经熟悉了该项目、而您将能够安全地进行这些更改。  

    此致、

    Ben Collier

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

    嗨、Ben、

    我一直在努力遵循本主题中提到的建议更改和添加内容。
    但是、我克隆的代码中没有提及 HALL_ENABLE 和 HALL_SINE 标志、因此显然要进行定义
    它们无效。

    我目前正在使用 LaunchXL-F280025C 和 DRV8323RS。

    您是否知道为什么我的代码中不包含有关这些标志的任何内容?

    谢谢!
    Eyal

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

    您好!

    您看到我之前附上的 zip 文件了吗? 其中包含我对通用电机控制工程文件所做的所有更改、这些更改中应该包含这些标记。

    此致、

    Ben Collier

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

    感谢响应 Ben、

    明天我会介绍。

    祝您愉快!