Page 1 sur 2
Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 11 mars 2019, 16:56
par Sopastom
Bonjour,
Je me tourne vers vous au cas où vous pourriez avoir des pistes concernant le problème suivant:
J'ai deux entrées analogiques et deux sorties analogiques sur un contrôleur M221 et un module TM3, permettant le contrôle commande des chenilles d'un robot. Selon les valeurs d'entrées, j'aurai des valeurs différentes en sorties. Pendant la simulation sur SoMachine Basic, je trace en temps réel deux courbes représentant les valeurs de sortie lorsque je modifie les valeurs d'entrées.
Cependant, la réponse est brusque (quasi verticale), j'aimerais donc réduire la pente des courbes (augmenter le temps de réponse) pour atteindre la valeur finale plus lentement (dans les cas où la courbe serait croissante ou décroissante)
J'ai essayé d'utiliser un bloc temporisateur et PID mais débutant sur SoMachine Badic et en Ladder, je n'ai pas réussi à obtenir ce que je voulais. Savez-vous s'il est possible d'y aboutir avec un de ces blocs ? Ou avez-vous d'autres idées ?
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 11 mars 2019, 17:35
par djé
Salut,
Tu peux essayer avec un PID en paramétrant un retard pur (P,D =0 et I=1s par ex) puis t'affectes ton entrée de mesure = valeur de sortie (rebouclage S sur E).
Tu changes juste ensuite ta consigne.
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 12 mars 2019, 14:13
par Sopastom
djé a écrit : ↑11 mars 2019, 17:35
Salut,
Tu peux essayer avec un PID en paramétrant un retard pur (P,D =0 et I=1s par ex) puis t'affectes ton entrée de mesure = valeur de sortie (rebouclage S sur E).
Tu changes juste ensuite ta consigne.
J'ai l'impression qu'on ne peut pas utiliser d'adresse de sortie en entrée du contrôleur PID, seulement des adresses d'entrée ou des mots... Tu l'as déjà fait sur SoMachine Basic ?
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 12 mars 2019, 14:36
par djé
Nope. Je connais pas SoBidule.
Mais comme tu l'écris, tu peux passer par un mot intermédiaire.
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 13 mars 2019, 09:05
par Sopastom
djé a écrit : ↑12 mars 2019, 14:36
Nope. Je connais pas SoBidule.
Mais comme tu l'écris, tu peux passer par un mot intermédiaire.
Je vais essayer avec un mot intermédiaire oui, merci
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 13 mars 2019, 09:40
par ProfnovA
Tu peux incrémenter la sortie d'une valeur définie jusqu'à atteindre ta consigne du genre:
if sortie < consigne - increm then
sortie:=sortie+increm;
elsif sortie > consigne + increm then
sortie:=sortie-increm;
else
sortie:=consigne;
end_if;
En jouant avec le temps de cycle et l'incrément, tu devrais pouvoir générer une pente comme tu le souhaites.
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 13 mars 2019, 10:00
par itasoft
@prof
Si t'est pas sur une tache périodique, ton temps de cycle n'est pas obligatoirement constant , il faut mettre un bit horloge
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 15 mars 2019, 09:30
par Sopastom
Merci pour vos réponses, je vais essayer tout ça et je reviendrai vers vous si j'ai un problème.
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 15 mars 2019, 10:19
par itasoft
slts,
Disons que la solution la plus élégante pour une montée et descente progressive c'est celle du PID à djé
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Posté : 15 mars 2019, 15:48
par Sopastom
Je n'avais pas pensé à joindre des images de mon programme et de mes sorties afin de vous permettre de mieux visualiser le problème.
Voici donc une partie de mon programme (il y a 13 cas différents en tout), en entrée j'ai 2 tensions représentant un vecteur (joystick) et et sortie également 2 tensions qui seront par la suite transmises aux chenilles, pour l'instant je me contente de les visualiser. Le but de ce programme étant d'augmenter ou de diminuer la vitesse d'une des deux chenilles afin de tourner (sans jamais bloquer une chenille seule).
On peut observer les courbes obtenues en temps réel en pièce jointe. Je souhaiterais que les sorties atteignent leurs valeurs plus lentement (avoir une pente plus petite) mais je ne parviens pas à bien configurer le PID, et je ne sais pas où le placer dans mon diagramme ladder (mes connaissances en ladder, et en somachine (récemment renommé eco struxure) sont très limitées, je débute soyez indulgents

).
Si quelqu'un peut m'aider ça me ferait mon week-end
