Skip to content

A collection of embedded PID (Proportional – Integral – Derivative) controller tuning methods.

License

Notifications You must be signed in to change notification settings

FinOrr/pid-autotuner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PID Controller Optimisation Investigation

This repo is my own mini-tutorial series on heuristic and model-based tuning methods for PID controllers, welcome!

Table of Contents

Introduction

Explore various PID tuning methods using C++ programming language. The goal is to provide a comprehensive understanding of different PID tuning techniques and their implementations in realistic simulation environments.

Objective:

  • To introduce the fundamentals of PID control and the importance of tuning PID parameters.
  • To explore and implement various PID tuning methods, including Genetic Algorithm, Particle Swarm Optimization, Ziegler-Nichols method, Cohen-Coon method, Skogestad's Lambda tuning, Adaptive Control, Extended Kalman Filter, and Recursive Least Squares.
  • Work through the process of setting up a simulation of a realistic control system in C++, designing a PID controller, and applying different tuning methods to optimise its performance.
  • Gain insights into the strengths, weaknesses, and applicability of each tuning method through analysis and comparative evaluation.
  • Develop the knowledge and skills to effectively tune PID controllers for different control objectives and system dynamics using advanced optimisation techniques.

Structure:

  • Each tuning method is located in a separate investigation method folder.
  • The tuning method will then be introduced and analysed, discussing its principles, suitability, and parameters.
  • The method will be implemented in C++ and integrated with the PID controller.
  • Finally, the performance of the tuned PID controller will be evaluated through testing and analysis.

Audience:

  • This tutorial series is suitable for beginners and intermediate-level programmers interested in control systems, PID tuning, and optimisation techniques.
  • Readers should have basic knowledge of C++ programming and familiarity with control systems concepts.

Outcome:

  • By the end of this tutorial series, readers will have a solid understanding of various PID tuning methods and their implementations in C++.
  • They will be equipped with the skills to apply different optimisation techniques to tune PID controllers for a wide range of control systems and objectives.
  • Readers will gain insights into the advantages, limitations, and practical considerations of each tuning method, enabling them to make informed decisions in real-world control applications.

🔬 Investigation Methods

Explore in-depth information about each investigation method:

  1. Genetic Algorithm
  2. Particle Swarm Optimisation
  3. Ziegler-Nichols Method
  4. Cohen-Coon Method
  5. Skogestad's Lambda Tuning
  6. Adaptive Control
  7. Extended Kalman Filter
  8. Recursive Least Squares

Each method's directory contains source code, documentation, and results related to that specific investigation.

Getting Started

Jump into the world of PID optimisation! Follow the instructions in the respective README files for each investigation method.

Project Structure

📁 Explore the structure of this project:

  • docs/: Documentation files related to the entire project.
  • examples/: See real-world examples and use cases.
  • investigation_methods/: In-depth exploration of each investigation method.
  • LICENSE: Learn about the licensing terms for this project.
  • README.md: Your gateway to understanding and contributing to this project.

Usage

🚀 Dive into the README files of each investigation method for detailed usage instructions and practical insights.

Contributing

None lol.

License

📜 This project is licensed under the MIT License. Feel free to explore, learn, and adapt!