Skip to main content

Limitation de couple et commande d'avance de couple

La limitation de couple de CODESYS SoftMotion empêche le dépassement des limites spécifiées des couples ou des forces des entraînements lors de mouvements coordonnés. Ces limites de couples et d'efforts sont respectées en plus des limites existantes de vitesse, d'accélération et d'à-coup des entraînements. La condition préalable est un modèle dynamique pour la cinématique appliquée sous la forme d'un bloc fonctionnel qui implémente le ISMDynamics l'interface de la SM3_Dynamics bibliothèque. Au fond, un AxesStateToTorque est nécessaire, qui calcule les couples requis pour un état donné des axes (pour leur position, leur vitesse et leur accélération).

Outre la limitation de couple, un modèle dynamique permet de calculer des couples de consigne pour une commande anticipatrice de couple. Vous trouverez un exemple d'application dans le chapitre Modèle de robot dynamique.

Cas d'utilisation

Dans de nombreuses cinématiques, notamment la cinématique série, il existe un couplage de plusieurs articulations ou de toutes les articulations. Un exemple simple de ceci est le double pendule avec des entraînements dans les articulations comme indiqué ci-dessous :

_sm_img_torque_1.png

Cas d'utilisation 1

_sm_img_torque_2.png

Cas d'utilisation 2

L'entraînement de la première articulation effectue une rotation de 90° ; la deuxième articulation ne doit pas bouger (cas d'utilisation 1). En supposant une deuxième articulation passive, il est facile d'imaginer que la deuxième branche du double pendule tournera vers la gauche en raison de son inertie. Pour empêcher cette rotation, l'entraînement dans la deuxième articulation doit générer un couple vers la droite. Par conséquent, le mouvement du premier disque nécessite une réaction du deuxième disque.

Un couplage en sens inverse existe, par exemple, dans le cas où le premier entraînement doit se déplacer à vitesse constante tandis que le deuxième entraînement rétracte la deuxième branche du double pendule (cas d'utilisation 2). Ceci réduit les matrices d'inertie du double pendule par rapport à la première articulation. Pour obtenir le moment cinétique (le produit des matrices d'inertie et de la vitesse angulaire), la vitesse angulaire de la première articulation doit être augmentée. Pour maintenir la vitesse angulaire constante, le moment cinétique doit être diminué en changeant le couple du premier entraînement contre son sens de rotation. Par conséquent, le mouvement du deuxième disque nécessite une réaction du premier disque.

Sans modèle dynamique, seules la position définie, la vitesse définie et l'accélération définie peuvent être envoyées au variateur. Dans le premier cas, une position de consigne constante est définie pour le second entraînement, que la première articulation soit mobile ou non. L'unité de commande du deuxième variateur doit pouvoir gérer le fait qu'un couple doit être généré dans un cas et pas dans un autre pour les mêmes valeurs de consigne. Le comportement est similaire dans le second cas. Ici, la même vitesse de consigne constante est spécifiée pour le premier entraînement, que la deuxième articulation soit en mouvement ou non. Ici aussi, l'unité de commande du variateur doit faire face au fait que différents couples doivent être générés pour les mêmes valeurs de consigne.

Avec un modèle dynamique, les couples de consigne peuvent être calculés et envoyés aux variateurs. Là, ils peuvent être utilisés comme dimension d'anticipation pour les unités de commande. En conséquence, l'unité de contrôle reçoit des informations supplémentaires qui permettent une amélioration de la qualité du contrôle.

La limitation de couple permet de respecter plus précisément les limites du variateur. Dans de nombreux cas, ce n'est pas la limitation de la vitesse ou de l'accélération de l'entraînement qui est déterminante, mais la limitation des couples. Les avantages de la limitation de couple ressortent de l'exemple du double pendule tel que décrit ci-dessus lorsque l'on compare les mouvements suivants : un mouvement du premier moteur avec la seconde branche rentrée et un mouvement du premier moteur avec la seconde branche sortie. A l'état rétracté, les matrices d'inertie par rapport à la première articulation sont inférieures à celles à l'état sorti. Pour un même mouvement (mêmes courbes de vitesse et d'accélération du moteur), il faut donc un couple plus important à l'état sorti qu'à l'état rentré. Sans modèle dynamique, les limites de vitesse et d'accélération doivent être définies de manière à ce que les limites de couple soient respectées dans les deux états. Cela peut amener le premier entraînement à se déplacer à une vitesse ou une accélération inférieure à l'état rétracté à ce qui serait nécessaire pour respecter les limites de couple de l'entraînement. Avec un modèle dynamique, les limites de couple peuvent être configurées, prises en compte lors de la planification du mouvement, et donc pleinement utilisées dans les deux états.

Un exemple légèrement plus complexe est le premier cas tel que décrit ci-dessus, où le premier disque est en mouvement et le deuxième disque doit maintenir sa position. Le couple requis dans le deuxième entraînement pour maintenir sa position dépend du mouvement du premier entraînement. Si le premier entraînement accélère trop brusquement, la limite de couple du deuxième entraînement peut en principe être dépassée. Sans modèle dynamique, cela ne peut être évité qu'en configurant les limites d'accélération du premier entraînement en conséquence. Avec un modèle dynamique, la limite de couple configurée du deuxième entraînement peut être prise en compte lors de la planification du mouvement et l'accélération du premier entraînement peut être limitée.

Dans le cas de mouvements ou de cinématiques plus complexes, les effets de couplage décrits ici s'accompagnent d'encore plus d'effets de couplage. Un modèle dynamique permet de prendre en compte ces couplages, d'où un meilleur cahier des charges et un meilleur respect des limites des variateurs.

Configuration du modèle dynamique

Un modèle dynamique existant sous la forme d'un bloc fonction qui implémente la ISMDynamics l'interface peut être affectée à un groupe d'axes à l'aide de la SMC_GroupSetDynamics bloc fonctionnel. Outre le modèle dynamique, le bloc fonctionnel doit également être utilisé pour configurer la direction et l'amplitude de l'accélération gravitationnelle sous la forme d'un vecteur dans le système de coordonnées de la machine.

Prise en compte des charges

Des charges supplémentaires (par exemple, des objets saisis ou des outils attachés) peuvent être prises en compte au moyen du SMC_GroupSetLoad bloc fonctionnel et modifié lors de l'exécution. Le ExecutionMode L'entrée du bloc fonction peut être utilisée pour définir quand un changement de charge doit prendre effet (par exemple, immédiatement ou seulement après que le mouvement en cours soit terminé).

Important

Suite avec MC_GroupContinue: Lors de la poursuite, chaque mouvement stocké dans les données de poursuite conserve la charge avec laquelle il a été commandé à l'origine. Tout mouvement commandé après la poursuite utilise la dernière charge définie.

Considération d'une boîte de vitesses

Les couples réglés sont calculés pour la sortie du réducteur et ne sont pas automatiquement convertis en entraînement. Le SMC_SetAdditionalConversionFactors bloc fonction permet de configurer un facteur de conversion supplémentaire du couple pour chaque axe. La boîte de vitesses peut également être prise en compte de cette manière.

Unités

Les forces et les couples et leurs limites sont essentiellement spécifiés dans l'application en newtons (N) ou en newtons mètres (Nm). Avant que les forces définies ou les couples définis ne soient envoyés aux variateurs, une remise à l'échelle peut être effectuée. Pour cela, la norme CiA 402 impose par exemple que les couples de consigne soient envoyés au variateur en millièmes du couple nominal (en mNm).

L'unité des longueurs est spécifique à l'utilisateur dans SoftMotion. Étant donné que les forces et les couples sont définis comme une unité fixe (N ou Nm), un facteur de conversion d'une unité de longueur spécifique à l'utilisateur en mètres doit être configuré (sauf si les mètres sont utilisés comme unité de longueur). Ceci peut être fait avec le SMC_GroupSetUnits bloc fonctionnel.

Limitation de couple dans les systèmes de coordonnées mobiles

Si le groupe d'axes se déplace dans un système de coordonnées mobile, alors les limites de couple ne peuvent être respectées que lorsque le groupe d'axes peut suivre exactement le système de coordonnées mobile. Si cela n'est pas possible et que les tolérances pour l'écart sont configurées au moyen de SMC_GroupSetPathTolerance, les limites de couple peuvent être dépassées lors de la tentative de compensation de l'écart. Si une erreur se produit parce que les écarts sont en dehors des tolérances, alors le groupe d'axes s'arrête. Pendant cet arrêt, les limites de couple peuvent également être dépassées. Les couples réglés sont calculés dans chaque cas et envoyés aux entraînements.

Limitation de couple en cas d'erreur

Si une erreur est détectée pendant la planification (par exemple, qu'un mouvement commandé violera la zone de travail), alors le groupe d'axes s'arrête sur la trajectoire précédemment commandée. Ce faisant, les limites de couple sont respectées. S'il n'est pas possible de s'arrêter sur la trajectoire (par exemple, parce qu'un entraînement signale une erreur), les limites de couple ne peuvent pas non plus être respectées.

Différences lors de l'utilisation de mouvements à axe unique et de mouvements coordonnés

Fondamentalement, les couples de consigne sont calculés pour tous les axes faisant partie d'un groupe d'axes avec un modèle dynamique. Ceci s'applique aussi bien à l'arrêt que lorsque l'axe est déplacé au moyen de mouvements mono-axes (par exemple, MC_MoveAbsolute) ou l'ensemble du groupe d'axes est parcouru par des mouvements coordonnés (par exemple, MC_MoveDirectAbsolute).

La limitation de couple n'est active que pour les mouvements coordonnés. La raison en est que les couples nécessaires d'un axe, comme décrit ci-dessus, dépendent de la position et du mouvement de certains ou de tous les autres axes du groupe d'axes. Par conséquent, une limitation de couple n'est possible que lorsque tous les axes du groupe d'axes peuvent être déplacés en tant que mouvements coordonnés.

Une exception est la SMC_GroupJog bloc de fonctions. Ce bloc fonctionnel ne prend pas en charge la limitation de couple. Il est recommandé d'utiliser SMC_GroupJog2 au lieu.