当前位置:网站首页>Mise en service PID du moteur de codage (anneau de vitesse | anneau de position | suivant)
Mise en service PID du moteur de codage (anneau de vitesse | anneau de position | suivant)
2022-04-23 03:07:00 【Taochengxi 2.0】
Catalogue des articles
Dans l'article précédent, nous avons discuté de la cascade de moteurs de codagePIDConnaissances pertinentes,Et quelquesPIDExpérience de mise en service,J'ai encore touché le moteur.,En même temps, l'outil Waveform est ajouté,L'individu pense que cette façon d'aider plus de gens à comprendre le processus,Et mieux comprendrePIDCe truc..
Pendant l'entrevue d'embauche,Certains postes intégrés sont liés au contrôle des robots,Y compris quand vous présentez votre projet, vous posez généralement des questionsPIDProcessus de mise en service pour,PIDEffets de plusieurs paramètres,Description de l'anneau intérieur et de l'anneau extérieur, etc.,Donc,PIDC'est encore plus important..
Si vous avez des commentaires, n'hésitez pas.!
1、Connaissance du moteur de codage
La lecture des données du moteur de codage a été décrite dans l'article précédent.,Les liens correspondants sont les suivants:,Si vous en avez besoin, apprenez - le vous - même.:
Moteur de codage à courant continu à double boucle fermée(Vitesse+Angle)Contrôle
Il n'y a pas de répétition ici.,Ceci peut être complété en partie,Principalement la partie traitement des données de l'encodeur, Ceci est fait pour obtenir de meilleures données d'angle ,Les étapes sont les suivantes:
D'abord, nous devons activer l'interruption correspondante. , L'accumulation des données en cas d'interruption , Cela permet d'enregistrer des angles et des tours

Examinons encore le harnais de l'encodeur. , Le harnais est le nombre d'impulsions que le moteur tourne. , Mais notre encodeur est AB Il y a ensuite une capture qui peut être faite sur les bords supérieurs et inférieurs ,Pour que4 L'échantillonnage de l'octave

Le nombre final de Tours est conçu comme suit , Il s'agit d'abord de concevoir un positif et un négatif , Si c'est le cas, ajoutez , La direction est coupée , Et le nombre final de Tours est le même. .

De cette façon, vous pouvez visualiser l'enregistrement du nombre de Tours ,Le code source est le suivant::
int Angle = 0;//Angle
int circr = 0;//Nombre de Tours
const int Step_Angle = 360/4/30;
void Motor_Get_Angle(TIM_HandleTypeDef *htim)
{
if(htim == &htim2)
{
if((htim->Instance->CR1 & 0x0010)>>4)//Jugement directionnel
// On peut aussi l'utiliser icihtim->Instance->CR1Pour juger 0X01C'est dans le sens des aiguilles d'une montre.,0X11C'est dans le sens contraire des aiguilles d'une montre.
Angle -= Step_Angle;
else
Angle += Step_Angle;
}
if(Angle == 360)
{
circr++;
Angle = 0;
}
if(Angle == -360)
{
circr--;
Angle = 0;
}
}
2、Affichage de la forme d'onde de l'ordinateur supérieur
1、Description de la fonction
C'est recommandé ici VOFA+ Cet assistant série , Avec fonction d'affichage de forme d'onde ,Plus puissant,À propos deVOFA+ Je ne vais pas vous le dire. , Il y a beaucoup d'informations en ligne , En gros, baidu peut voir beaucoup d'informations pertinentes après une recherche

Pour utiliser sa fonction d'affichage de blog ici, suivez mes instructions ci - dessous.

Après avoir retiré la fonction Waveform pour l'affichage en plein écran, nous devons remplir ceci ,Comme suit

Type de graphique choisissez le Profil d'onde

En général, onx L'axe est réglé directement au temps

y L'axe est prêt pour le réglage de nos courbes ,Attention ici,Il doit y avoir, Si les données n'ont pas été envoyées, elles ne sont pas visibles.

Ensuite, nous zoomons automatiquement sous sélection

2、Description de l'Accord
Entrez dans notre protocole et connexion :

Vous pouvez voir la description de l'accord comme suit :

Voici la description de l'accord ,Comme suit:

Une autre description

Principalement les instructions de mise en service ici , Vous pouvez voir ici le premier type d'utilisation directe printfC'est bon, Mais les deux donnent des exemples , J'ai donc décidé de le faire de la première façon. ,UtiliserprintfPlus,C'est fait..
3、Certificat d'essai de réglage de l'anneau de vitesse
Ici, j'ai construit la même chose que dans l'article précédent. PIDArchitecture,Voir détailsMoteur de codage à courant continu à double boucle fermée(Vitesse+Angle)Contrôle
À propos dePID Effet de débogage de , Voir mon article ,Cet article utilisesimulinkPour simulerPID:MatlabUtilisersimulinkParamètresPIDEnregistrement
Anneau de vitesse utilisé PIDComme suit, Vous pouvez voir que les paramètres tracés sont les valeurs cibles et actuelles :

Ici, regardons Chun pAu moment de l'ajustement,En ce momentKP=200, C'est déjà assez grand , Il y a encore des erreurs à l'état d'équilibre

Ajouter aprèsI Éliminer les erreurs ,Ici.I C'est tout. 0.1

Nous continuons simplement à grossir KP, Vous pouvez voir un dépassement plus évident

À ce moment - là, si un chiffre augmente i La stabilité du système diminue

Enfin, vous pouvez voir l'effet de débogage ,Comme suit:

4、Certificat d'essai de réglage de l'environnement de position
Ici, l'anneau de position contrôle la position du moteur. , L'idée est d'utiliser directement PIDCalcul,C'est tout à fait possible, Ce n'est pas très stable ,Ça ne marche pas très bien, La résistance aux perturbations n'est pas très bonne , Il est donc possible de choisir une cascade PID Pour réaliser des fonctions connexes , J'ai décrit les deux options comme suit: :
Voici les emplacements d'utilisation directe PIDEffectuer des calculsP[IDSituation
、
Voici la vitesse et la position d'utilisation PID Les calculs sont faits

C'est comme si j'avais suivi le plan d'ajustement. , C'est plus pratique , Peut être débogué rapidement ,L'effet final est le suivant::

5、Réaliser l'effet de suivi
Suivre est en fait un PID La liaison avec l'autre , L'essentiel, c'est de mettre un de ces anneaux PID La quantité d'entrée est remplacée par les données recueillies par le capteur d'un autre moteur. , Mais la commande finale est un autre moteur. .
Les résultats obtenus sont les suivants :

版权声明
本文为[Taochengxi 2.0]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/04/202204230306011387.html
边栏推荐
- Tencent video VIP member, weekly card special price of 9 yuan! Tencent official direct charging, members take effect immediately!
- Plug in for vscode
- [new version release] componentone added Net 6 and blazor platform control support
- Openfeign timeout setting
- tf. keras. layers. Conv? D function
- Xamarin效果第二十二篇之录音效果
- Xamarin effect Chapter 21 expandable floating operation button in GIS
- 樹莓派開發筆記(十二):入手研華ADVANTECH工控樹莓派UNO-220套件(一):介紹和運行系統
- ASP.NET 6 中间件系列 - 执行顺序
- Opencv fills the rectangle with a transparent color
猜你喜欢

REINFORCE

【新版发布】ComponentOne 新增 .NET 6 和 Blazor 平台控件支持

Small companies don't make formal offers

The whole network is the most complete. How to do interface automation test? Proficient in interface automation test details

Detailed explanation of distributed things

ASP. Net 6 middleware series - execution sequence

微软是如何解决 PC 端程序多开问题的

树莓派开发笔记(十二):入手研华ADVANTECH工控树莓派UNO-220套件(一):介绍和运行系统

准备一个月去参加ACM,是一种什么体验?

The most detailed in the whole network, software testing measurement, how to optimize software testing cost and improve efficiency --- hot
随机推荐
C# WPF UI框架MahApps切换主题
Service avalanche effect
对.NET未来的一点感悟
Thoughts on the 2022 national network security competition of the national secondary vocational group (only one idea for myself) - network security competition questions (8)
Tencent video VIP member, weekly card special price of 9 yuan! Tencent official direct charging, members take effect immediately!
树莓派开发笔记(十二):入手研华ADVANTECH工控树莓派UNO-220套件(一):介绍和运行系统
tf. keras. layers. MaxPooling? D function
Vs code setting line feed
Source generator actual combat
The most detailed in the whole network, software testing measurement, how to optimize software testing cost and improve efficiency --- hot
Response processing of openfeign
Depth deterministic strategy gradient (ddpg)
Golden nine silver ten interview season, you are welcome to take away the interview questions (with detailed answer analysis)
基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客?
7-11 rearrange the linked list (25 points)
Redis Cluster集群,主节点故障,主从切换后ip变化,客户端需要处理不
Introduction and use of openfeign component
微软是如何解决 PC 端程序多开问题的
svg标签中利用<polygon/>循环数组绘制多边形
Some problems encountered in setting Django pure interface, channel and MySQL on the pagoda panel