2 votes

Comment le temps d'échantillonnage de Simulink est-il lié au temps d'échantillonnage de la routine de service d'interruption?

J'ai une question concernant un modèle Simulink que je suis en train de construire. J'essaie de déterminer quelles valeurs de P et I sont nécessaires pour un contrôleur en boucle fermée. Cela concerne un PFC contrôlé par un dsPIC. Je sais que le temps d'échantillonnage dans Simulink détermine la fréquence à laquelle un bloc donné met à jour sa valeur. Maintenant, en ce qui concerne le microcontrôleur. Je mets en œuvre la boucle de contrôle à l'intérieur d'une ISR qui est déclenchée toutes les 160 μs, effectuant les calculs et donnant les résultats (cycle de fonctionnement) au registre du module PWM. Ai-je raison de penser qu'en définissant le temps d'échantillonnage de la simulation à 160 μs, je devrais obtenir un comportement similaire à celui du microcontrôleur? J'aimerais également savoir comment le temps d'échantillonnage sur Simulink affecte le comportement et/ou la stabilité d'un contrôleur en boucle fermée. Est-ce que quelqu'un peut me donner un lien vers un article explorant le sujet. Je n'arrive pas à trouver quelque chose sur ce sujet. Désolé pour l'anglais, merci les gars

1voto

user4574 Points 260

Oui, vous devriez définir votre temps d'échantillonnage dans le modèle de la même manière que le matériel le fait si vous voulez obtenir les mêmes résultats.

Des temps d'échantillonnage plus longs se traduisent directement par un déphasage de phase dans la boucle de contrôle. Plus précisément, cela se traduit par un déphasage de 180 degrés à 360° / 160 μs / 180° = 12,5 kHz. Donc, si votre gain en boucle n'est pas < 1,0 pour des fréquences > 12,5 kHz, vous ne pouvez pas garantir la stabilité. Et si vous avez d'autres déphasages à d'autres points dans la boucle, vous devrez les ajouter au déphasage lié à l'échantillonnage.

En général, vous voudriez utiliser des taux d'échantillonnage plus élevés si votre boucle de contrôle a besoin de plus de bande passante.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X