Techniques d’optimisation Projet : Etude d’une sinusoïde
Contexte A partir de l’acquisition d’un signal électrique on souhaite retrouver, par la technique des moindres carrés, les caractéristiques de la sinusoïde correspondante : V(n) = A*sin(2πfinnTs + j) + C Avec : A = amplitude C = offset fin= fréquence d’entré j = phase
Objectif On fait une acquisition du signal pour des fréquences Fin connues. On cherche ainsi les paramètres C, A et j du signal : en = C + A*sin(ωn + j) On linéarise suivant j : en = C + A*cos(j)sin(ωn) +A*sin(j)cos(ωn)
Méthode des moindres carrés linéaires Il nous faut résoudre le système : E(a0,as,ac)= Σ (yi-ai*fi)² avec a0 = C as = Acos(j) ac = Asin(j)
Résolution On obtient le système suivant : = du type AX=B, que l’on résout à l’aide Matlab avec les valeurs de yi=data et w fournies.
Résultats A = 1.8231e+03 C = -9.4258 j = -0.6916 en = C + A*sin(ωn + j)
Signal d’erreur et variance
Variation de la fréquence On décide désormais de faire varier la fréquence d’entrée du signal dans un domaine de 0,02% et constater l’impact sur les paramètres calculés précédemment. On applique le même algorithme Matlab, et on stocke A, C et j pour chaque fréquence.
Tracé des paramètres
Application à acq2 A = 1820 C = -9.3 j = -0.18 en = C + A*sin(ωn + j)
Méthode des moindres carrés non linéaires (partie 3) On cherche a modéliser le comportement du signal : en = C + A*sin(ωn + j) or, ici ωn n’est pas connu. Il nous faut maintenant résoudre le système suivant : E(C,A, ω, j)= Σ(C + A*sin(ω*n + j)-data)²
Système étudié On cherche à minimiser l’erreur. On obtient 4 équations: - f1 = = 2*Σ(C + A*sin(ω*n + j)-data) = 0 - f2 = = 2*Σ(C + A*sin(ω*n + j)-data)*sin(ω*n + j) = 0 - f3 = = 2*Σ(C + A*sin(ω*n + j) -data)*A*n*cos(ω*n + j) = 0 - f4 = = 2*Σ(C + A*sin(ω*n + j)-data)*A*cos(ω*n + j) = 0
Résolution (1) On utilise la méthode itérative de Newton Xk = Xk-1 + [J(Xk-1)]-1*F(Xk-1) J la matrice Jacobienne: J =
Résolution (2) Cette méthode étant itérative, on se sert des résultats de la partie 2 pour l’étape d’initialisation. On nomme : Y = [J(Xk-1)]-1*F(Xk-1) Puis Xk = Xk-1 + Y On itère cette opération jusqu’à la précision entre le signal obtenue et le signal calculé soit inférieur a 0,001
Signal et erreur quadratique C=-6,8 A=15747 W=0,766 j = 25,4
Variation de la fréquence De manière similaire à la partie 2, on souhaite stocker les résultats précédents pour des fréquences qui varient. Cela nous permet certaines caractéristiques du signal.
Résultats
Application à Acq2 :