Pregunta

tengo un vector giratorio R(x(t), y(t)) y quiero encontrar un ángulo en función del tiempo.El atan2 se determina entre -pi y pi, sin embargo me resulta inconveniente analizar todas las dinámicas.Entonces, ¿hay alguna manera de ampliar atan2 de -inf a inf?

¿Fue útil?

Solución

Tu pregunta no es muy clara, pero supongo que estás buscando la función. desenvolver.Esto corregirá todos los 2 pi saltos que obtienes cuando tu vector gira a través del eje x negativo.Lo usas así:

t = linspace(0,3,1000);
x = cos(2*pi*t);
y = sin(2*pi*t);
phi = atan2(y,x);
unwrapped_phi = unwrap(phi);
plot(t, phi, t, unwrapped_phi)
xlabel('time (s)')
ylabel('angle (rad)')
legend('wrapped angle','unwrapped angle')

enter image description here

Otros consejos

Creo que está buscando fase desenvolviendo .Matlab tiene una solución 1D lista, consulte desenvolver para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top