Étape 12 : Méthodes de contrôle
Moteurs pas à pas sont normalement actionnés de façon absolue, où le montant des étapes envoyée au moteur sont suivies afin de déterminer le mouvement de moteur. Cette procédure a deux qualités non désirées. La plus évidente est perdue comme suit. Si le moteur rencontre une charge suffisante pour arrêter le mouvement, la position actuelle est perdue, car les étapes commandées n’est plus correspond à l’emplacement des moteurs. Le problème moins évident produit et comptage des étapes moteurs lors de l’utilisation de micropas à haute vitesse. Un moteur de type pas à pas a 200 marches pour un tour complet. Cela se traduit par 6400 étapes pour un tour complet si vous utilisez des contrôleurs de microstep 32. Lorsque vous exécutez les moteurs à 300 rpm, une sortie de 32000 tacts par seconde sont nécessaires par moteur. Trois moteurs en cours d’exécution entraînerait presque 200K de changements de logique par seconde. Faire à ce niveau de traitement en temps réel sur un microcontrôleur 8 bits de 16MHz ne laisse aucune marge pour d’autres tâches.
La solution consiste à la génération d’étape aux minuteries niveau matériel de déchargement et de comparer les registres tout en utilisant des encodeurs sur les moteurs pour mesurer directement le mouvement. Un système en circuit fermé peut être ensuite configuré avec la valeur d’entrée représentant la différence entre un angle moteur souhaité et l’angle mesuré de l’encodeur. La sortie de la boucle de régulation définiriez ensuite tr/min du moteur. Le train d’impulsions nécessaires est généré à partir de trois minuteries matériel 16 bits avec trois registres de comparer. Les minuteries sont configurés avec aucun préalable mise à l’échelle produisant un taux de comptage de 16 MHz qui se réinitialise lorsque le décompte est égal à la comparer s’inscrire. Un pin de sortie correspondant est affiché/masqué sur reset timer, générant un train d’impulsions nécessaire pour déplacer le moteur pas à pas. La fréquence du train d’impulsion est définie par la taille du Registre comparez et détermine le nombre de tours du moteur. À l’échelle de sortie de la boucle de commande de moteur pas à pas peut maintenant être nourris dans le registre de comparer pour régler le moteur tr/min. Avec cette méthode, toutes les génération de signal moteur pas à pas s’effectue à un niveau matériel laissant le microcontrôleur libre pour d’autres tâches.
Une boucle de régulation proportionnelle-dérivé (PD) est mis en œuvre afin d’atteindre le positionnement de base ball. Une composante intégrale a été ajoutée, mais pas nécessaire. Le terme proportionnel dans la boucle de régulation est simplement la différence entre l’emplacement de la commande et l’emplacement de la balle mesurée multipliée par un gain proportionnel. Le terme proportionnel résultats en mouvement sans heurt de l’angle d’attaque, comme les changements d’emplacement de la balle normalement entraînent un grand nombre. Ce n’est pas vrai quand un simple calcul de premier ordre dérivés dx ≈ [x − x(i−1)] / h comme mouvement de la balle entre les mesures est petit avec un bruit relativement important. Le comportement peut être amélioré en augmentant le temps entre les différentes mesures, mais le temps de réponse du système devient alors important. La solution est d’employer plus de l’histoire de boules de mieux prédire la vitesse du courant. Une bonne approximation de la motion de boules est accélération constante comme l’angle de la plaque n’est pas farouchement changeant. Un second ordre pochoir précis en utilisant seulement passé mesures pour prédire le courant dérivé est souhaitée. Le gabarit doit avoir des comportement de bruit bonne rejet et temps de réponse. Pavel Holoborodko a publié une telle liste de pochoirs pour une estimation dérivée face d'où un gabarit point 16 a été sélectionné. Le dérivé qui en résulte est beaucoup plus lisse que le cas simple tout en conservant des temps de réponse de bon système.
Les composants proportionnels et dérivés sont additionnées telle que la partie proportionnelle s’incline la plaque afin d’accélérer la balle vers l’emplacement fixe et le composant dérivé s’incline la plaque pour ralentir le mouvement des boules. L’ampleur de chaque valeur peut être définie en ajustant les valeurs de gain jusqu'à ce que le système est atténué de manière critique.
Angles de plate-forme représentant inclinaison X et Y doivent être transformées en trois angles moteur pas à pas. Les axes X et Y sont projetés sur l’axe du moteur trois pour déterminer la pondération relative de contrôle. Cette approche est qu’une approximation du comportement désiré mais fonctionne selon les besoins.
Taux d’exécution de code compatible sont nécessaires. Ceci est réalisé grâce à l’utilisation d’une routine d’interruption qui déclenche chaque 1ms hors Timer0. Drapeaux de l’exécution de code est activés dans la routine d’interruption qui permettent aux différentes parties du code de s’exécuter.