Part Number:TMS320F28335Other Parts Discussed in Thread:CONTROLSUITE
现在在学习FOC控制,在看HVPM_Sensored_Servo工程。
对SVGEN.H里面的扇区时间计算不太理解。以扇区1为例:
T6 = (sqrt(3)*Ts/Udc) * Ubeta;
T4 = (sqrt(3)*Ts/Udc)*(sqrt(3)*Ualpha/2 – Ubeta/2);
但是TI里面的计算结果好像是占空比:T6/Ts和T4/Ts。并且公式里面没有这部分: sqrt(3)/Udc.
后来查了一些资料,说是做了标幺化处理,但是又好像只在这里看到了这个不一样的地方。还有就是说输入Ualpha和Ubeta的是在(-1,+1)之间。
在这个例程里面输入到SVPWM模块的Ualpha和Ubeta和实际的Ualpha和Ubeta之间的关系是怎样的?在实际中应该怎样处理?
在HVPM_Sensord_Servo_Servo_Setting.h里面的BASE_VOLTAGE,BASE_CURRENT,BASE_FREQ有什么作用,实际在哪里用到了?
有没有关于这个标幺化在FOC实际项目中的解释或者说明文档?
现在对这部分很困惑?期待大神们的解惑!谢谢!
Green Deng:
你好,你是指例程中将计算结果进行了“T6/Ts和T4/Ts”处理,以及哪里的公式里面没有“sqrt(3)/Udc”?
BASE_VOLTAGE,BASE_CURRENT,BASE_FREQ如果在你使用的例程中没有使用的话那么就是没有用。因为.h文件确保通用性,会将其他工程中用到的函数都在.h文件中定义好。另外也有一些函数由于时间关系,虽然已经不用了,但还是会在.h中出现定义。
关于标幺化的说明文档我会再找一下,但是好像没见过这种文档。
,
zhang yiming:
您好。在TI例程里面计算"T6/Ts"和"T4/Ts" 公式里面与理论计算值有差别,没有"sqrt(3)/Udc"。
后来查资料说是做了标幺化处理。
1.那么我想知道例程里面的标幺化的基值是选取的"sqrt(3)/Udc"吗?
2.如果是选取"sqrt(3)/Udc"做基值,在程序里面哪里有体现是以这个做基值对实际值做的处理啊?
3.是不是最后全部都体现在了PI调节器里面?只要保证PI调节器的输出在(-1,+1)之间就可以了?
,
Green Deng:
确实例程里面的命名风格有点混乱, 不过如果直接查看最终值的话,匹配是没问题的。
标幺化的问题,你可以查看这个文档:file:///C:/ti/controlSUITE/libs/app_libs/motor_control/math_blocks/v4.3/~Docs/DMC%20MATH_v13.1.pdf
,
zhang yiming:
你好。这篇文档也有看过,好像没有比较详细的说明标幺化的过程,只是对每个模块做了介绍。
,
Green Deng:
其他似乎也没有更详细的文档可以参考的了。具体到某个参数的话可能需要你找一下论坛上的帖子有没有介绍这个参数的标幺计算的
,
zhang yiming:
现在大概知道哪些参数需要做标幺化处理了。电流,转速,PID参数。电压标幺化应该也是要做的,是不是这部分归算到PID参数里面了?只要保证PID输出在(-1,+1)之间就可以了?我看到例程里面的PID的最大最小值取得不是+1和-1,这个是怎么算的啊?没有详细的说明,看的有点晕。
,
Green Deng:
其实不是“保证PID输出在(-1,+1)之间”,而是标幺化之后,参数值就是会在(-1,+1)之间。
标幺化有个基值,也就是你的问题中的BASE_VOLTAGE,BASE_CURRENT,BASE_FREQ等等这些参数,关于基值你可以参考一下这个帖子:https://e2echina.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/20639/thread
至于具体到某个参数,就如之前回复的,得单独讨论。