pour l’instant, la position initiale de mon système = 180° = consigne, pour avoir l’erreur je dois donc soustraire la consigne à l’angle, qui correspond à quelque-chose de connu la première fois (angle suite à la perturbation) mais que l’on doit calculer pour la suite.
Tu choisis que ta position initiale soit égale à la consigne, ça pourrait être différent (ou même ça devrait). Ensuite, l’erreur est toujours par définition la différence entre la consigne et l’angle mesuré, il n’y a rien à toucher. En fait, l’angle suite à la perturbation est, dans un sens, une position initiale : tu dis à un instant t0, mon angle vaut theta0 (angle de perturbation).
Et ça revient à forcer un intégrateur à une valeur donnée pour un unique pas de temps et le laisser reprendre ça vie. Cela peut être fait comme condition initiale (dans les paramètres de l’intégrateur) ou alors pendant la simulation (plus compliqué, il faut regarder dans les options de l’intégrateur, je te déconseille dans un premier temps).
J’ai l’impression que tu essaies de faire les calculs à la place de Simulink en disant « je connais telle valeur, donc je connais telle autre, donc je peux calculer telle autre, mais du coup après je dois ignorer celle-ci etc. ». Ce n’est pas comme ça qu’il faut procéder. Simulink te permet d’une part de décrire la boucle de rétroaction (c’est-à-dire : tu prends les valeurs de l’étape d’avant et tu fais tel calcul avec point) ; toi, d’autre part, tu lui dis d’où il commence (en donnant la position initiale dans les paramètres) et tu peux éventuellement créer des accidents de parcours (plus compliqué, et c’est ce que je te déconseille dans un premier temps).
Il y a bien un bloc intégrateur mais je n’ai pas trop compris quoi faire avec
Si tu parles de l’intégrateur du PID, ce n’est pas celui-là dont je parle.
pourquoi s’embêter à intégrer une vitesse pour au final re-avoir un angle que l’on connait ?
Parce que la physique marche comme ça. Le principe fondamental de la dynamique te dis que si tu connais le couple (que tu peux déduire des forces de poussée) alors tu peux en déduire l’accélération angulaire, puis la vitesse et donc l’angle par intégration.
de manière générale, la solution d’une équation différentielle s’obtient par intégration. C’est assez intuitif en fait : pour avoir ce qu’il y a sous la dérivée, on intègre. Il y a donc une constante d’intégration, comme dans toutes les intégrations, et il se trouve que c’est la valeur initiale de la solution. C’est sous cette forme qu’on utilise les équations de la dynamique dans Simulink.
En sachant que par la suite il y auras toujours le problème de ne pas prendre en compte cette valeur après la première boucle.
L’angle à l’étape d’après est calculé avec l’étape d’avant, qui est elle-même calculée avec l’étape d’avant, etc. en partant de la position et vitesse initiales. En gros, Simulink calcule une suite récurrente un peu compliquée, rien de plus ! Et tu peux naturellement lui donner le terme initial.
PS : Si tu as le temps, je pense que je verrais beaucoup mieux avec un mini schéma
Si ce que je dis au-dessus ne t’aide pas, peut-être, mais je ne peux pas non plus faire tout. Au bout d’un moment, ça revient presque à faire le travail à ta place.