大家好、
我目前正在使用 TIDM-02007进行测试。 我测试的代码是 LEVEL4。
在启动过程中、电机将发生抖动。这似乎是在从"ENC_alignment"到"ENC_WAIT_for_index"的过程中引起的。
如图所示、当电流突然变化时、电机将振动。
我是否可以问导致这种情况的原因? 我们是否应该改善这种情况?这是不设置参数的影响吗?
谢谢
简森
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.
大家好、
我目前正在使用 TIDM-02007进行测试。 我测试的代码是 LEVEL4。
在启动过程中、电机将发生抖动。这似乎是在从"ENC_alignment"到"ENC_WAIT_for_index"的过程中引起的。
如图所示、当电流突然变化时、电机将振动。
我是否可以问导致这种情况的原因? 我们是否应该改善这种情况?这是不设置参数的影响吗?
谢谢
简森
您可以尝试一下。 或者、在调试窗口内、使用 calibratedAngle 的值进行播放。 基本上尝试调整值、以查看潜在的修复方法。
如果效果不好、我认为相电流反馈感应中的非线性(或误差)可能是原因所在。 该控制基于角度和电流。 如果角度不会导致误差、则它只能是电流。 看看相电流感应是否正常。
首先、您可以在两个方向上以开环方式运行电机、并确认方向是否不是电流波形问题。
您好 Ramesh、
感谢你的帮助。 我目前正在使用我们的参考设计来驱动客户的新电机。 目前、Level2可以正常工作。 但当我在3级时、我发现了一个奇怪的现象。
电机的 IQ_FbK 可遵循 IQ_ref 当我将 IQ_ref 设置为0.01时、IQ_FbK 可以很好地遵循 IQ_ref。 但电流波形会发生突变。 电机的扭矩非常小。 当我加载电机时、电机停止。
2.当我将 IQ 设置为0.1时,IQ_FbK 可以跟随 IQ_ref,但以下波动较大,电机电流也很奇怪。 电流环路的 PI 参数设置似乎存在问题。
电流环路的调整似乎有问题。 您对此有什么意见吗?
谢谢
简森
您好 Ramesh、
我检查 了电机的编码器线路、因为客户提供了错误数量的编码器线路、所以会出现此故障。感谢您的帮助。
此外、我还有一些问题:
1.当电机处于“等待索引”状态时 ,电机的旋转不是那么平稳。 虽然电流波形正常、但其效果与步进电机类似。 我不知道为什么。 我们想让电机进入速度环路。有没有办法让电机快速顺利地完成"等待索引"过程?
在从等待索引到 CALIBRAY_DONE 的过程中、电机有一定的失去控制的可能性。 电机速度将达到最大速度、并且不受控制。
但这只是一个偶然的现象,为什么呢? 您对此有什么意见?
谢谢
简森
您好 Ramesh、
我再次测试了我们的系统、以便在等待索引过程中使电机驱动更加平稳。 在此过程中、我将为 IQ=pid_spd.term.out。 从测试结果来看、似乎有了改进。 我想知道这样的变化有哪些隐藏的危险? 为什么最初应使用 IQ_引用?
2.在测试过程中、电机仍然很可能失控。 其性能是、当索引阶段的等待切换为完成时、电机电流将突然变化、然后电机的速度将达到最大值、无法控制。电流变化将突然增加、 然后、电机将达到正向/反向最大速度。 我是否可以问导致这种情况的原因? 您对此有何评论?
谢谢
简森
您可以减小对齐电流或 IqRef 以使其平滑。 最初的目的是处理任何可能与旋转方向相反的电机轴连接的负载。
[引用 userid="455975" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1026540/tidm-02007-tidm-02007-motor-start-up-problem/3821618 #3821618")在从等待索引到 CALIBRACING_DONE 的过程中,电机可能会失去控制。 电机速度将达到最大速度、不受控制。[/QUERP]嗯、没有答案、你可能需要对它进行调试
[引用 userid="455975" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1026540/tidm-02007-tidm-02007-motor-start-up-problem/3822622 #3822622)]我再次测试了我们的系统、以便在等待索引过程中使电机驱动更加平稳。 在此过程中、我将为 IQ=pid_spd.term.out。 从测试结果来看、似乎有了改进。 我想知道这样的变化有哪些隐藏的危险? 为什么最初应使用 IQ_REfer?[/quot]是的、有很多方法可以做到、建议提出您喜欢的内容。 我们的只是一个图示。
[引用 userid="455975" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1026540/tidm-02007-tidm-02007-motor-start-up-problem/3822622 #3822622">在测试期间、电机仍然很可能失控。 其性能是、当索引阶段的等待切换为完成时、电机电流将突然变化、然后电机的速度将达到最大值、无法控制。电流变化将突然增加、 然后、电机将达到正向/反向最大速度。 我是否可以问导致这种情况的原因? 您对此有何评论?[/引述]您可能需要完成此转换以查看缺少哪些参数。 很难在不实际调试问题的情况下提出具体建议。
您好 Ramesh、
感谢你的善意帮助。
我今天做了一个实验来测试电机失控事件的原因。
首先、从电流波形来看、在从等待索引完成的过程中、电流会突然变化、然后电机将以最快的速度运行。 不受速度环路控制。 我发现电流突然变化的可能原因是速度反馈的突然变化。 那么、我想知道如何计算电角以获得速度、以及如何设计低通滤波器?
另一个问题是从等待索引完成切换时、fclVars[0].pangle 从 fclVars[0].Rg.out 切换到 fclVars[0].QEP.ElecTheta。 这会产生系统冲击吗?
此外、对于等待索引的阶段、如果设置 IQ_ref 时 IQ_ref 的值太小、则无法旋转电机。 如果电机可以旋转、则在此阶段旋转将不会平稳。 该问题的解决方案是什么?
(电机失控时的电流波形)
再次感谢您的帮助!
简森
速度的计算方式为角度位置差、并通过 LPF。 如果您看到速度抖动、那么馈入速度分频器的输入位置是我怀疑的位置、而不是速度分频器例程本身。
[引用 userid="455975" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1026540/tidm-02007-tidm-02007-motor-start-up-problem/3824582 #3824582"]另一个问题是,从等待索引切换到完成时,fclVars[0].pangle 从 fclVars[0].Rg.out 切换到 fclVars[0].QEP.ElecTheta。 这会产生系统冲击吗?[/引述]理想情况下、它们应从相同的值开始、如果值存在巨大差异、则可能会导致此问题。
REG IqRef、您需要通过试用和错误来查找适合您的应用的内容。
您好 Ramesh、
感谢 您的患者帮助!
在校准过程中、我的理解是在当前位置将 QPOSCNT 写入为固定值? 这种理解是否正确? 如果您这么说、我想知道、由于电机的位置每次都不确定、是否可以使用固定的校准值进行处理? (我已经执行了一个实验并分配了 QPOSCNT 的值、但它在启动时会抖动、但在抖动后可以正常工作。 但是否有办法避免抖动? 如果您下次不从该位置开始、它可能不会以相同的 QPOSCNT 开始、对吧?)
电 流环路的输出电流。 我发现、如果电机失速、电机中的电流将达到固定值、然后不会增加(该值小于 M1_maximum_current 和 currentLimitit I set 的值)。 同时、我检查了电流的 IQ 环路、发现 IQ 此时 Umax 的输出没有问题、但 IQ_FB 始终是一个较小的值。 为什么现在呢? 是否有任何因素限制电流输出? (在18V 锁定转子下测试时、我的电机的锁定转子电流最高可达7A、而电流仅可达3A)
3、对于 LEVEL3、它可以正常工作、但我发现当 Iq 的值为0.005~0.006时、速度对应于0~50rpm、高于0.007时为60RPM (对应于最大电频率 I SET 的速度)。 我想知道该值的对应关系是什么? 由于相应的 IQ 非常小、我想知道是否有任何方法可以放大、以便我可以轻松地对其进行测试
谢谢
简森
您好 Ramesh、
感谢你的帮助。
我当前手动写入 POSINIT、然后在 CALIBRAY_DONE 中直接启动它、然后发现确实可以不进行校准。 这超出了我的理解范围、因为如果它被校准、POSINIT 是随机的、但是当手动分配值时、只能正常启动特定的值。 这是为什么? 我们的校准工作是什么? 为什么不正确的 POSINIT 会使电机无法正常工作? 我需要向客户详细解释这个问题、那么您能帮我理解吗、谢谢您?
简森
校准的目的是识别定子 A 相的电角零与 QEP 的索引脉冲之间的偏移计数。 在索引脉冲时,计数器可以重置为从零开始,或者当 POSCNT > POSMAX 时,计数器可以重置为零。
选项1:-如果使用索引脉冲将 POSCNT 重置为零、 我们必须添加偏移角度以获得 电角。
选项2:-如果索引脉冲不用于复位 POSCNT、并且 POSMAX 用于复位、那么在每个索引脉冲期间、将 POSINIT 的值重新加载到 POSCNT 中并从该值开始计数。 当 POSCNT 值超过 POSMAX 时、POSCNT 为零。
请查看代码、您应该能够找出逻辑。
您好 Ramesh、
非常感谢您的患者回答!
我将再次进行实验并阅读 C2000的 RTM、如果有后续问题、我将向您提出。
但目前我还有另一个问题、即电机的电流环路无法达到我想要的值。 在3级、我锁定了电机、IQ_FbK 无法达到 IQ 环路的最大值。 我已经检查了很多地方、看看是否有程序限制了它、但没有结果。 我使用的3级代码是未经修改的原始代码(电机参数已配置)、当值较小时、IQ_FbK 可以跟随 IQ_FbK、 但是、当 IQ_ref 较大时、IQ_FbK 无法跟随它来达到更大的值(当电机电压增大时、IQ_FbK 也会增大、这更接近 IQ_ref)、我找不到导致此问题的原因。 你能提供什么建议吗?
此外、我想问一下 M1_maximum_current 和 motorVars[0].currentLimitit 之间的差异。 我检查代码 M1_maximum_current 似乎没有限制电机的电流、它是否仅与 ADC 计算电机电流有关?
再次感谢。
简森
您好 Ramesh、
实际上、我增加了负载。 我使电机固定、并且不会旋转、仿真电机锁定时的电流。
实际上、我增加了负载。 我使电机固定并且不会旋转、在电机失速时模拟电流。 根据理想情况、当电机失速时、IQ 值应达到最大值、IQ_FbK 也将达到最大值(在电机的最大锁定转子电流范围内)、 但目前 IQ_FbK 尚未达到非常大的值、它仅在电机电压增加时才会增加、这使我非常困惑。您知道是什么原因导致此?
非常感谢!
简森
您好 Ramesh、
目前、客户要求向他们发送电流值、我从 ADC 获取电流值。 我使用以下代码获取当前值。
motorVars[0].currentAs = HWREGH (motorVars[0].cura_PPBRESULT)* motorVars[0].currentScale;
motorVars[0].currentBs = HWREGH (motorVars[0].路边_PPBRESULT)* motorVars[0].currentScale;
motorVars[0].currentcs = HWREGH (motorVars[0].curC_PPBRESULT)* motorVars[0].currentScale;
ADC 值当前可用、但有时 ADC 值是非常奇怪的 μ,
有时 ADC 数值是正确的、有时是527.9。 这让我想知道 motorVars[0].cura_PPBRESULT 数据是否溢出? 我应该如何修改它? 您有什么建议?
谢谢。
简森
您好 Ramesh、
我检查的是电流环路(IQ)的电流 pid 参数设置、如下所示。 此设置是否有任何理论基础? 是否有任何基准设置? 其次、如何大致调试速度环路的设置?
Iq_out 和 Iq_FBK 与电流值之间的关系是什么? 例如、如果我在电平中设置 IQ=0.5、那么电机的相应输出电流是多少? 他是否与 M1_BASE_CURRENT 相关? 它们之间的关系是什么。 (目前、客户使用3级并希望知道与输入 IQ 对应的输出电流是多少)
在等待索引时、需要调用此 RC 宏。 此模块的功能是什么? 我们为什么需要此模块?
谢谢。
简森
简森
我认为这条线程现在面临许多问题。 您能否关闭该线程并从现在开始为不同的查询启动新线程? 不过、我可以在这里回答这个特定的问题。
请参阅此链接
(+)让 PI 控制器行为起来(第 I 部分)-工业-技术文章- TI E2E 支持论坛
2.标么刻度将变量标准化为1.0刻度、基值是硬件感应电路可以感应的最大值。
请阅读用户指南以了解此功能的用途。
您好 Ramesh、
当然、如果有其他问题、我会重新打开一个新线程。非常感谢。但现在我仍然对这个问题有疑问
每个单元标度以1.0的标度对变量进行标准化、基值是硬件感应电路可以感应到的最大值。
是的、我同意您的观点。 但是、我想确认硬件感应电路在该程序中感应到的最大值是 M1_BASE_CURRENT、而不是 M1_MAXING_CURRENT、对吧?
请阅读用户指南以了解此功能的用途。
我已经检查了代码的注释、即"Ramp (Sawtooh) Generator Macro Definition (RAMP (Sawtooh)生成器宏定义)"。 但我认为这可能是启动时开环状态中角度的斜升。 是这样吗?
谢谢
简森