Comme l’a signalé Aabu, sur le dernier graphe, on perd toute la vision sur les erreurs et les commandes négatives. Je suis volontairement très chiant sur les graphiques, parce que c’est un outil très important en sciences pour analyser et communiquer. En plus, savoir construire un graphique qui porte l’information qu’on veut communiquer, ça apprend aussi à repérer comment les graphiques des autres ont été construits, et ce qu’il veulent communiquer, ou au contraire, minimiser. Bref c’est aussi utile pour faire ses choix politiques.
Je vais reprendre la version précédente, on connais assez bien le sujet pour se débrouiller avec.
Source:Jupiter41
Déjà en regardant le début de la courbe, on a une erreur faible, négative, et à peu près stable. La réponse est une commande négative qui augmente régulièrement.
Est-il normal d’avoir une commande négative quand l’erreur est négative ? En fait ça dépend du procédé. Concrètement, il suffit de retourner le capteur, et on inverse le signe de l’erreur. A ce stade, on ne peut pas dire quel signe sera le bon. on va juste vérifier si c’est cohérent.
là, globalement, l’erreur est faible, donc la réponse proportionnelle est faible, d’ailleurs on ne la voit pas (la commande est quasi nulle au début de la courbe), en regardant les chiffres, elle est à -57, donc négative, comme l’erreur est stable, on n’a pas de dérivée, et comme l’erreur n’est pas corrigée, l’intégrale augmente, et on fait -20 sur la commande à chaque pas, pour corriger l’erreur résiduelle. Tout a l’air d’aller dans le bon sens. Voyons quand l’erreur varie.
Là je vais regarder le pic vers 450ms. L’erreur est positive, donc le terme proportionnel est positif, l’intégral continue à intégrer de l’erreur, mais l’erreur fait un rapide retour vers 0. A ce moment, la courbe de commande devient quasiment horizontale, stable. Le terme dérivé a bien inhibé la variation de la commande, le système allant déjà vers la position de consigne.
Du coup, on a un système qui a l’air de fonctionner comme attendu. C’est une bonne nouvelle. Est ce que les valeurs de Kp, Ki, Kd sont bonnes ? On ne peux pas le savoir sans modèle du système, ou expérimentation.
Faire un modèle physique du système à asservir n’est à priori pas le but de l’exercice. On peut néanmoins imaginer quelques propriétés du système: à priori, ce qui va être construit va être à peu près équilibré, mais assez sensible aux perturbations (coups de vent, pression sur le système, …). L’erreur qu’on a ici, très faible, un passage à une grande valeur, et un retour quasiment à l’équilibre, le tout en une demi seconde, ça ressemble à ce qu’on attend quand quelqu’un appuie sur le système pour le déséquilibrer, pour voir si il est bien stabilisé. Ce à quoi on s’attend, c’est que le système force le temps de se remettre en position, puis se remette à un régime faible, comme au début.
Ce qu’on observe ici, c’est que le système, actionné à la main, est restabilisé vers environ t=950ms. A ce moment, la commande est toujours quasiment à son maximum, ce qui veut dire que le gros de la commande vient de l’intégrale. Sur certains systèmes, ça peut être souhaitable. Sur un drone, en imaginant que le début de la réponse ramène le drone à l’équilibre, on aurait ici un moteur qui continue de pousser à fond. Ce serait compensé après, mais, globalement, ça veut dire que le drone va faire de grosses oscillations. A ce stade, je pense qu’on peut diviser le Ki par 100, et avoir un comportement plus proche de ce qu’on voudra à la fin. On va diviser la commande par à environ 100 aussi, vue la prépondérance du Ki, mais comme la commande est pour le moment en unité arbitraire, ça n’est pas important. On réajustera les paramètres quand on aura une idée des valeurs qu’on souhaite réellement sortir.