归一化从[-180,180]到[0,180]的角度

时间:2015-05-14 11:02:51

标签: matlab normalization angle

我的伺服电机只能从0转到180 我的角度范围从-180到180发送到伺服 我怎样才能在这两个范围之间进行标准化? 如果有任何MATLAB函数可以做到这一点? 感谢

1 个答案:

答案 0 :(得分:2)

你可以添加180并除以2,因为@High Performance Mark会针对您的具体问题建议,或者这是基于This帖子的广义版本。

此等式适用于任何限制

我根据等式编写了一个简单的函数:

function [out] = normalizeLim( A,oldL,oldR,newL,newR )

    out = newL*(1-((A-oldL)./(oldR-oldL))) + newR*((A-oldL)./(oldR-oldL));

end

示例:

x = randi([-180,180],1,8); %//  Generating a random vector within the range -180 to 180

>> x

x =

-153  -161    11   101   157  -134    25   -11

>> normalizeLim(x,-180,180,0,180) %// Specifying old and new required limits

ans =

13.5000    9.5000   95.5000  140.5000  168.5000   23.0000  102.5000   84.5000

如果您希望它们为整数,则可以使用round函数

对它们进行舍入

希望这会有所帮助!!