ZHCU083I January 2013 – October 2021 TMS320F2802-Q1 , TMS320F28026-Q1 , TMS320F28026F , TMS320F28027-Q1 , TMS320F28027F , TMS320F28027F-Q1 , TMS320F28052-Q1 , TMS320F28052F , TMS320F28052F-Q1 , TMS320F28052M , TMS320F28052M-Q1 , TMS320F28054-Q1 , TMS320F28054F , TMS320F28054F-Q1 , TMS320F28054M , TMS320F28054M-Q1 , TMS320F2806-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28068F , TMS320F28068M , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M-Q1
到目前为止,我们假设数字格式本身没有任何限制。如果使用的是浮点处理器,则无需担心 PI 项的小数部分。但出于成本考虑,大多数电机控制应用都将在定点计算机上实现。好消息是 TI 已开发出链接库可以解决这一问题,该库位于大多数 C2000 处理器的只读存储器 (ROM) 中。该链接库名为“IQ Math”库,代表“整数商”。借助该库,用户可以轻松地在定点计算机上处理浮点值,而不会像使用全浮点支持器件那样受到性能影响。IQ math 可在代码中创建新的变量类型,通过“IQ”后跟数字来指定。例如,如果使用 32 位变量,其变量类型为“IQ24”。这表示所有此类型的变量小数部分均为 24 位,整数部分均为 8 位。但偶尔会发生这样的情况:有人将 TI 代码复制到其设计中,但没有意识到系数是以 IQ 格式表示的。例如,如果 I 增益的计算结果为 10,000(IQ0 格式为 0x00002710),但未意识到代码已假设变量为 IQ24 格式,则最终得到的积分器增益为 0.596E-3 而不是 10,000。很明显这两个值不同。如果所有 PI 系数都发生了同样的错误,则电机很可能静止不动,因为所有增益均过低。因此,建议确保系数使用的数字格式已知。