Funzioni a tratti Matlab - Differenza di arcotangenti:

REDpulsaR


La somma/sottrazione di arcotangenti segue la formula che ho riportato in immagine [nel mio caso ho arctan(x1)-arctan(x2)], io per poter rappresentare degli sfasamenti devo diagrammare la funzione Y (ottenuta per differenti casi) in Matlab. L'ho fatto utilizzando il seguente codice:

x1=(c2*w(i))/(k2-((w(i)^2)*m2));
x2=ImDen/ReDen (dove ImDen e ReDen sono funzioni definite in precedenza )
(con x1 e x2 relazioni che variano ma sempre ottenute in funzione di w,variabile rispetto alla quale diagrammo la fase,ovviamente associandole un dato vettore)

phiX1(i)=-atan((1+(x1*x2))/(x1-x2))

diagrammando di volta in volta l'andamento di x1*x2 si può capire se esso assume un valore che sia <,> o = a 1 e quindi variare la funzione caso per caso.
Non molto elegante forse come soluzione me ne rendo conto ma, efficace fino a quando non mi è capitato di incappare nel caso in cui x1*x2 determina un repentino cambio di valore ovvero passa da <1 a >1 immediatamente,ciò ovviamente determina nell'andamento della funzione Y diagrammata un salto pari a pi greco.

Come posso risolvere questo problema? Grazie.

Risposte
lucadileta1
ciao red, sinceramente è un casino di tempo che non usa matlab ma di una cosa sono certo avevo anche io di questi problemi con l'arcotangente perciò l'unica cosa che mi viene in mente è di studiare l'help di matlab che è fatto benissimo, mi sembra poi ci fosse anche la funzione atan2 che lo calcola in maniera diversa che ti potrebbe aiutare ma adesso non vorrei confondermi con qualche altro linguaggio

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.