Giter Club home page Giter Club logo

pid-autotuner's Introduction

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!

pid-autotuner's People

Contributors

finorr avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

alvinxds

pid-autotuner's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.