Augmenter le temps de réponse d'un signal - SoMachine Basic
Augmenter le temps de réponse d'un signal - SoMachine Basic
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 ?
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 ?
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
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.
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.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
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 ?
- djé
- Dieu du process

- Messages : 864
- Enregistré le : 20 oct. 2015, 09:55
- Localisation : Bretagne, Pays de la Loire, Nantes
- Contact :
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Nope. Je connais pas SoBidule.
Mais comme tu l'écris, tu peux passer par un mot intermédiaire.
Mais comme tu l'écris, tu peux passer par un mot intermédiaire.
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
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.
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.
- itasoft
- Mi homme - Mi automate

- Messages : 7803
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
@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
Si t'est pas sur une tache périodique, ton temps de cycle n'est pas obligatoirement constant , il faut mettre un bit horloge
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
Merci pour vos réponses, je vais essayer tout ça et je reviendrai vers vous si j'ai un problème.
- itasoft
- Mi homme - Mi automate

- Messages : 7803
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
slts,
Disons que la solution la plus élégante pour une montée et descente progressive c'est celle du PID à djé
Disons que la solution la plus élégante pour une montée et descente progressive c'est celle du PID à djé
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: Augmenter le temps de réponse d'un signal - SoMachine Basic
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

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

