Linéarisation d'une ODE

Bonjour à tous
J'ai un système d'équations différentielles non linéaire que j'aimerais linéariser (les $C_{i}$ sont des constantes réelles) :

$x''=C_{1} \cdot \cos(\alpha_{0})\sin(\theta) + C_{2} \cdot \sin(\alpha_{1}+\theta)\sin(2\theta) \cdot (y')^{2} + C_{3} \cdot (\alpha_{1}+\theta)\sin^{2}(\theta) \cdot (y')^{2}$
$y''= C_{4} \cdot \cos(\alpha_{0})\cos(\theta) + C_{5} \cdot \sin(\alpha_{1}+\theta)\cos^{2}(\theta) \cdot (y')^{2} + C_{6} \cdot (\alpha_{1}+\theta)\sin(2\theta) \cdot (y')^{2}$
$\theta'' = C_{7} \cdot \sin(\alpha_{0}) + C_{8} \cdot \sin(\alpha_{1}+\theta)\sin(\theta) \cdot (y')^{2} + C_{9} \cdot (\alpha_{1} + \theta)\cos(\theta)(y')^{2}$

Avec comme condition initiales : $x(t=0) = x_{0}, y(t=0) = y_{0}, \theta(t=0) = \theta_{0}$ des constantes et $\alpha_{0}(t=0) = \alpha_{1}(t=0) = 0$.

Je sais que je peux linéariser autour de $\theta=\theta_{0}$ et $\alpha_{i}=0$ mais je ne connais pas le point autour duquel je peux linéariser pour $y'$. Les produits $\sin(\cdot) \cdot (y')^2$ m'empêchent de linéariser...
Mon besoin de linéariser vient du fait que je voudrais contrôler mon système (position $x,y$ et angle $\theta$) en modifiant la valeur des angles $\alpha_{i}$ (système de flaps) et que je ne connais que la théorie du contrôle linéaire.
Est-ce que vous avez des idées ?
Merci d'avance !!
Scientifix

Réponses

  • Bonjour,

    Tu devrais donner ton système complet avec les conditions aux bords et initiales.

    Sinon, il n'est pas possible de définir si la linéarisation a du sens pour trouver une solution.

    Tu peux changer la fonction $Y = {1 \over y'}$ avec $Y' = -{y"\over y'^2}.$
  • Bonjour,
    J'ai updaté le problème dans mon poste précédent pour que vous ayez tous les paramètres importants.
    Scientifix
  • Bonjour,

    Linéarise en $\theta$ et $\alpha_i$ autour de $0$ et ne garde que l'ordre $1.$

    La première équation devient $x" = C_1 \theta.$
    La seconde devient $y" = C_4.$
    La troisème devient $\theta" = C_7 \alpha_0 + C_9 (\alpha_1+\theta) y'^2.$

    Résous ce système et impose les conditions initiales.

    Si tu trouves une solution, c'est fini.

    Sinon, essaie à l'ordre $2.$

    PS: Je suggère de poser $Y = {1 \over y'}.$ Et nécessairement $\theta_0 = 0$ sinon la linéarisation autour de $0$ n'a pas de sens. Par ailleurs, on a trop d'inconnues pour le nombres d'équations : c'est louche. Quelles sont les variables et quels sont les paramètres ?
  • Merci beaucoup pour la réponse !!

    Il doit également rester le terme $C_{5} \cdot (\alpha_{1}+\theta) \cdot (y')^2$ dans la deuxième équations non ?

    Pour ce qui est des variables, il y en a 3 : $x, y, \theta$. Le reste, $\alpha_{0}(t)$ et $\alpha_{1}(t)$, sont des paramètres que je peux contrôler (changer en temps réel).

    Hum oui, effectivement je dois faire ma linéarisation autour de $\theta_{0}$ et non de 0, erreur de ma part !!

    En supposant que $\theta_{0}=0$ on obtient donc :

    $x" = C_1 \theta$
    $y" = C_4 + C_{5} \cdot (\alpha_{1}+\theta) \cdot (y')^2$
    $\theta" = C_7 \alpha_0 + C_9 \cdot (\alpha_1+\theta) \cdot (y')^2$

    Ce qui me pose toujours problème à cause du $(y')^2$ qui est non linéaire ... Pour pouvoir utiliser la théorie du contrôle linéaire il me faudrait une forme d'état comme ici. Je pense que le changement de variable que vous proposez (je me suis peut-être trompé sur ma feuille !) ne résout pas ce problème.

    Des idées où je dois me plonger dans le contrôle non linéaire ?
    Merci beaucoup pour vos réponses !
  • Bonjour,

    Si $\theta_0 \neq 0$ ne suppose pas le contraire... tu dois réécrire tout le système linéarisé.

    Quel est le but de ton contrôle ? Quelle variable veux-tu contrôler par $\alpha_0$ et à quelle valeur ? Quelle variable veux-tu contrôler par $\alpha_1$ et à quelle valeur ?
  • Bonjour,
    Oui effectivement si $\theta_{0}$ n'est pas nul cela change la linéarisation. Cette dernière devient plus lourde mais ne pose pas de problème d'ordre mathématique pour les termes en $\theta$ et $\theta_{0}$... d'où le fait que j'ai supposé $\theta_{0}=0$ plus haut pour simplifier les calculs.

    Pour être précis voici la situation physique (2D) :

    - j'ai un cylindre qui tombe (position $x,y,\theta$) en faisant un angle initial $\theta_{0}$ faible avec la verticale ($|\theta_0|<5\deg$).
    - Mon objectif est de stabiliser verticalement ($\theta=0$) le cylindre et de le maintenir vertical pendant toute sa chute.
    - Pour ce faire j'ai deux systèmes qui contrôlent l'angle $\theta$ :

    -> un système de propulsion vertical (trust vectoring de norme constante) placé a la base du cylindre et orientable d'un angle $\alpha_{0}\in [-5,5]\deg$ (a pour objectif secondaire de ralentir la chute) ;
    -> un système de flaps aerodynamiques (d'où la vitesse carrée $y'^2$) que je peux faire tourner d'un angle $\alpha_{1} \in [-5,5]\deg$.

    Ces deux paramètres sont contrôlés en temps réel par un contrôleur $K$ dans une boucle "feedback" qui a pour objectif de maintenir $\theta=0$ en faisant varier les $\alpha_i$. Mais pour designer ce contrôleur $K$ j'ai besoin que mes équations soient linéaires (en $x,\,x',\,x'',\,y,\,y',\,y'', \,\theta,\,$etc...). D'où mon problème...

    J'espère que cette explication aidera.
    Merci d'avance !!
  • Bonjour,

    Pourquoi ton équation n'a pas de $x'$ ?
  • Bonjour
    Effectivement je devrais avoir des $x'$ car l'écoulement a pour vecteur vitesse $(x'(t),y'(t))$ (à quelque signes près en fonction du repère). Mais j'ai fait l'hypothèse que $x'$ était négligeable pour ne pas compliquer encore plus mon modèle. Si je le prends en compte il faut remplacer les $(y')^2$ par $(y')^2 + (x')^2$ partout ce qui complique encore l'affaire...

    Scientifix.
  • Bonjour,

    Ne fais pas des approximations au hazard. Ecris les équations exactes, puis fais des approximations.

    Ordre $1$ :
    $x''=C_1 \theta$
    $y''=C_4 + C_5 (\alpha_1+\theta) (x'^2+y'^2)$
    $\theta''=C_7 \alpha_0 + C_9(\alpha_1+\theta) (x'^2+y'^2)$

    Si le frottement est proportionnel au carré de la vitesse, est-ce le cas ?

    Non ?
  • Bonjour,
    Je suis d'accord au sujet des approximations, si on en fait trop on perd la nature du problème...
    Je suis parti d'un set d'équations complètes que je ne sais pas mettre sous forme "state-space" puis j'ai fait quelques approximations raisonnables (vitesse latérale $x'$ faible, angle $\theta$ en faibles oscillations autour de $\theta_0$ pendant la chute, flaps + trust vectoring (i.e $\alpha_i$) opèrent autour de zéro) pour essayer de simplifier mon problème...
    Le frottement est malheureusement proportionnel au carré de la vitesse ce qui est, in fine, le problème majeur que je rencontre.

    Si je suppose de petites variations de vitesse, je peux écrire : $x' = \bar{x}' + \delta x'$ et $y' = \bar{y}' + \delta y'$ puis en me plaçant en "steady state" dans les deux dernières équations que vous avez écrites j'ai :

    $0 = C_{4} + C_{5} \cdot \theta_0 (\bar{x}'^2 + \bar{y}'^2$
    $0 = C_{9} \cdot \theta_0 (\bar{x}'^2 + \bar{y}'^2$

    Je peux ensuite résoudre pour $\bar{x}'$ et $\bar{y}'$ ce qui me permet d'approximer $(y')^2=( \bar{y}' + \delta y')^2\approx \bar{y}'^2 + 2\bar{y}'
    \cdot \delta y'$ (idem $(x')^2$)

    Mais la finalité est de réaliser la chose suivante : contrôler dans un premier temps la chute libre avec les flaps uniquement (pour avoir $\theta\approx 0$ sans ralentir le cylindre) puis allumer le trust vectoring dans un second temps pour ralentir le cylindre.
    Avec une hypothèse de vitesse de chute libre constante dans la première phase cette linéarisation fonctionne plus ou moins.
    Elle est également plus ou moins valable dans la deuxième phase quand les vitesses sont stabilisées.
    Le problème est la transition entre les deux phases (le moment où le moteur s'allume) car la vitesse change brusquement...

    Bref désolé de polluer le forum avec mes réflexion sur le ralentissement des cylindres en chute libre...
    Merci pour les réponses patientes !
  • Bonjour,

    Ton approximation d'un état permanent ne peut pas marcher, ton cylindre tombe dans le champ de gravité : tu sais bien que la vitesse est croissante.

    D'abord, es-tu sûr des équations de ton premier message (à $x'^2$ près dans la vitesse) ?
    Si, oui, alors confirmes-tu le système linéarisé en $\alpha_i$ et $\theta$ à l'ordre $1$ ?
    Si oui, alors nous nous occuperons de cette méchante non linéarité due à la vitesse au carré.
  • Bonjour,
    Oui il y a la gravité mais il y a aussi des effets aérodynamiques liés à la chute libre ce qui donne une vitesse en $\tanh(t)$ (ici par exemple) et non en $t$. On peut donc faire l'hypothèse que la chute est bien entamée, que les "effets transitoires" sont dépassés et que la vitesse est constante égale à $v_{\infty}$ au bout d'un certain temps.
    Le profil de vitesse global de la chute est le suivant :
    - vitesse nulle à $t=0$
    1) vitesse en $v_{\infty} \cdot \tanh(gt/v_{\infty})$
    2) vitesse "constante" égale à $v_{\infty}$
    3) allumage des moteurs, freinage brutal jusqu'à $v$ (faible vitesse)
    4) maintient de la vitesse $v$
    5) contact avec le sol à vitesse $v$ et arrêt complet

    On peut donc faire la linéarisation précédente pour les cas 2) et 4) où la vitesse oscille faiblement autour d'une valeur constante

    Les équations ci-dessous sont correcte (en supposant $\theta_{0}=0$ pour simplifier le raisonnement, la linéarisation autour de $\theta_{0}\ne0$ n'apportant que des constantes et termes linéaires en $\theta$. Le raisonnement sera facilement transposable au cas plus lourd $\theta_{0}\ne0$) :

    $x''=C_1 \theta$
    $y''=C_4 + C_5 (\alpha_1+\theta) (x'^2+y'^2)$
    $\theta''=C_7 \alpha_0 + C_9(\alpha_1+\theta) (x'^2+y'^2)$

    Merci beaucoup pour les réponses !
  • Bonjour,

    Je n’ai pas d’idée : on ne peut pas linéariser un carré. Sauf à dire qu’il reste constant, mais comme le but du contrôle est d’annuler la vitesse verticale, ça ne convient pas.

    La simplification : carré de la vitesse est $y’^2$ est pas mal mais la résolution reste non linéaire.

    Je ne sais pas. Il faut voir le cours sur le contrôle non linéaire.
  • Bonjour,
    Pas de soucis, ce n'est effectivement pas un problème facile...
    Je pense le découper en deux morceaux pour faire les linéarisations que j'ai précédemment évoquées : 1) vitesse élevée constante 2) vitesse basse constante. Les conditions finales du premier seront les conditions initiales du second problème. Ces simplifications me permettront par exemple de prendre en compte des perturbations aléatoire qui modélisent le vent dans le design de mon contrôleur.
    Je vais aussi regarder du côté de la théorie du contrôle non linéaire.

    Merci beaucoup pour toutes vos réponses et votre patience !!
    Scientifix
Connectez-vous ou Inscrivez-vous pour répondre.