该模型是内置式的MTPA控制,速度环的输出为给定转矩,然后方式1通过求解MTPA方程得到dq给定电流,方式2进行工程近似得到dq给定电流,并外和id=0控制进行比较
在电机控制领域,内置式 MTPA 控制可是个热门话题。今天咱就来唠唠它其中速度环以及不同电流给定方式,还会带点代码示例,让大家更直观地感受下。
咱先说说速度环,它在整个控制架构里扮演着很重要的角色。速度环的输出就是给定转矩,这就好比给电机下达了一个“用力”的指令。接下来,就到电流给定的环节啦,这里有两种方式。
方式 1:求解 MTPA 方程得到 dq 给定电流
MTPA(Maximum Torque per Ampere,最大转矩电流比)方程可是个关键玩意儿,通过求解它能得到最理想的 dq 给定电流,让电机在产生最大转矩的同时,消耗的电流最小,就像一个精打细算的小能手。
下面咱来看段伪代码示例(这里以 Python 语言为例,只是简单示意,实际应用可能基于特定硬件平台和控制算法库):
import math # 电机相关参数 Ld = 0.01 # d 轴电感 Lq = 0.02 # q 轴电感 psi_f = 0.1 # 永磁体磁链 Te = 10 # 速度环输出的给定转矩 # 求解 MTPA 方程得到 dq 电流 id = (math.sqrt(Te * Lq / (psi_f * (Ld - Lq))) - psi_f / (2 * (Ld - Lq))) / 2 iq = Te / (3 * 1.5 * psi_f * (1 + Ld * id / psi_f)) print(f"通过 MTPA 方程求解得到的 id: {id}") print(f"通过 MTPA 方程求解得到的 iq: {iq}")在这段代码里,我们首先定义了电机的一些关键参数,像 d 轴电感Ld、q 轴电感Lq、永磁体磁链psi_f以及速度环输出的给定转矩Te。然后依据 MTPA 方程的数学原理,通过一系列计算得到id和iq。这里面id的计算是基于转矩和电感、磁链的关系,iq的计算同样考虑了转矩、磁链以及id的影响。这种方式虽然理论上能得到最优解,但实际实现时,对计算资源要求可能较高,因为求解 MTPA 方程往往涉及复杂的数学运算。
方式 2:工程近似得到 dq 给定电流
工程近似的方式呢,就是在保证一定控制效果的前提下,采用更简单的方法来获取 dq 给定电流。这种方法可能没有精确求解 MTPA 方程那么“完美”,但胜在简单高效,适合一些对计算资源有限制的场景。
下面还是来看段伪代码示例:
# 电机相关参数 Ld = 0.01 Lq = 0.02 psi_f = 0.1 Te = 10 # 工程近似计算 dq 电流 K = (Lq - Ld) / Lq id_approx = -K * Te / (3 * 1.5 * psi_f) iq_approx = Te / (3 * 1.5 * psi_f) print(f"通过工程近似得到的 id: {id_approx}") print(f"通过工程近似得到的 iq: {iq_approx}")在这段代码中,我们同样先定义了电机的关键参数。这里通过一个简单的系数K来近似计算id和iq。idapprox的计算利用了转矩、电感和磁链的关系,并且通过这个系数简化了计算过程。iqapprox的计算相对更直接,直接根据转矩和磁链计算得出。虽然这种方法简单,但和精确求解 MTPA 方程相比,可能在转矩输出的精确性和电流利用率上会稍有差距。
与 id = 0 控制的比较
再来说说 id = 0 控制,它是一种比较基础的控制策略。在 id = 0 控制中,直接将 d 轴电流给定为 0,这样可以简化控制算法,但同时也放弃了利用 d 轴电流来调节电机性能的机会。和前面两种方式相比,id = 0 控制相对简单,但电机的运行效率可能不如采用 MTPA 控制方式。
举个简单例子,在某些对转矩响应要求不高,而对控制简单性要求较高的场景下,id = 0 控制可能是个不错的选择;但如果追求电机在各种工况下都能高效运行,像电动汽车驱动这类场景,求解 MTPA 方程或者采用工程近似的方式来获取 dq 给定电流就显得更有优势了。
总之,在实际的电机控制项目中,我们需要根据具体的应用场景、硬件资源等因素,综合考虑选择合适的电流给定方式,让电机发挥出最佳性能。
希望通过上面这些代码和分析,大家对内置式 MTPA 控制里的速度环输出以及电流给定方式有了更清晰的认识。要是有啥问题,欢迎在评论区留言讨论呀!