2015-05-14 308 views
0

我有伺服電機只能從0到180旋轉 而我有角度範圍從-180到180發送到伺服 我怎麼能在這兩個範圍之間進行標準化? ? 如果有任何MATLAB函數來做到這一點? 謝謝正常化角度從[-180,180]到[0,180]

+2

您對負角度有什麼輸出? – FreeNickname

+2

加180併除以2,但是你將整個圓圈壓成一個半圓。 –

回答

2

您可以添加180和除以2高性能標記針對您的具體問題建議或這裏是它的基礎上的廣義版本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函數將它們四捨五入

希望這有助於!