同意 eydj2008:
其实在控制领域里, 很多地方需要浮点运算.且不说矢量控制, FFT数字滤波,PID运算这些复杂算法.
就说简单的步进电机速度控制, 由于单片机只能控制时间单位(通过时钟脉冲计数来实现), 于是出现了倒数计算, 一个非线性的变化. 这时候如果用浮点数, 可以很轻松地表示这个可能的范围(不需要担心溢出问题).
很多地方都需要浮点, 然而普通的单片机因为没有浮点的计算能力, 所以程序员们不得已而采用迂回的方法, 先转换成整数或定点数来计算. 为了效率而牺牲代码的可读性和算法的简洁性.
就说 X86 平台上的软件. 因为处理器有着高效的浮点单元, 要我们再编控制程序, 那么常用的数据控制变量, 如速度, 温度,电压,电流, 电阻, 时间, 频率 这些不具有散列特性的变量, 不都是会用浮点数吗
所以, 即使是简单的控制系统, 不是里面用不到浮点数, 而是实实在在地在躲避它. 处理器没有能力, 也就是没有办法的办法. |