Je développerai des algorithmes de contrôle PID et LQR personnalisés en cpp
MSc, Ingénierie de l’automatisation et du contrôle, ingénieur en systèmes de contrôle RD Robotics
À propos de ce service
Corrigez les boucles de contrôle instables, lentes ou oscillantes avec un logiciel de contrôle personnalisé, validé mathématiquement, en C++ moderne ou Python.
Ce que je fournis :
- Identification du système : Modèles de fonction de transfert et d’espace d’état dérivés de vos logs CSV expérimentaux (réponse impulsion/fréquence).
- PID discret industriel : Implémentations Tustin/Euler avec anti-windup (limitation/calcul inverse), filtrage passe-bas du dérivé, et compensation feedforward.
- Contrôle optimal (LQR / LQG) : Formulation en espace d’état discret, synthèse de la matrice de gain de rétroaction d’état, et observateurs d’état (Luenberger / Kalman).
- Rapport de validation et de stabilité : Diagrammes de Bode, marges de gain/phase, temps de stabilisation et analyse du dépassement.
- Spécifications du code : Classes C++ propres et autonomes (.hpp/.cpp) sans allocation dynamique sur demande (compatible microcontrôleur bare-metal). Testé pour STM32, ESP32, ARM Cortex, IPC Linux, Raspberry Pi, et nœuds ROS / ROS 2.
Veuillez me contacter avant de passer commande pour discuter de la dynamique de votre système, du temps d’échantillonnage cible et des contraintes matérielles.
FAQ
Traduction automatique
Ai-je besoin d’un logiciel propriétaire (comme MATLAB/Simulink) pour utiliser vos livrables ?
Non. Tout le code est fourni sous forme de fichiers source C++ (ou Python) autonomes, sans dépendances de runtime ou de licences propriétaires.
Le code C++ peut-il fonctionner sur des microcontrôleurs bare-metal sans allocation mémoire dynamique ?
Oui. Sur demande, l’implémentation est strictement sans allocations heap (malloc/new), utilisant de la mémoire statique et des tableaux de taille fixe adaptés aux environnements microcontrôleurs STM32, ARM Cortex ou conformes à MISRA.
Dans quel format doivent être mes données expérimentales ?
Un simple fichier CSV, TXT ou Excel contenant les horodatages, le signal d’entrée de contrôle (par exemple PWM, tension, commande), et la sortie mesurée du système (par exemple RPM, position, température).
Pouvez-vous concevoir des contrôleurs pour des systèmes multi-variable couplés (MIMO) ou non linéaires ?
Oui. Nous pouvons formuler des représentations en espace d’état pour des configurations MIMO ou linéariser autour de points de fonctionnement spécifiques pour un contrôle à gain programmé. Contactez-moi d’abord pour évaluer la dynamique de votre système.
Le contrôleur peut-il être intégré dans un nœud ROS / ROS 2 ?
Oui. La classe de contrôle est conçue de manière modulaire, ce qui facilite son intégration dans un nœud rclcpp ou un rappel de timer personnalisé. Prévenez-moi si vous avez besoin d’un wrapper complet pour un workspace ROS 2.

