Git Product home page Git Product logo

c_pid_controllers_lib's Introduction

C-library with floating point P, PI, PD, PID-controllers implementation

  • This embedded C-library provides the various types of P/I/D-controllers:

    • Proportional (P) controller
    • Proportional–integral (PI) controller
    • Proportional–derivative (PD) controller
    • Proportional–integral–derivative (PID) controller
  • Project structure

    • README.md - current file
    • LICENSE - file with license description
    • fp_pid.h - C-header file with user data types and function prototypes
    • fp_pid.c - C-source file with firmware functions
  • More about P/I/D-controllers here.

HowToUse (example)

	#include "fp_pid.h"
	
	// updatable user variables:
	float MyInValue, MyOutValue;
	
	// 1st step: create and initialize the global variable of user data structure
	tPI sPI = PI_DEFAULTS;
	
	// 2nd step: do some settings
	sPI.fDtSec = 0.0001f;     // set the discretization (sample) time
	sPI.fKp = 0.1f;           // set the proportional coefficient
	sPI.fKi = 0.01f;          // set the integral coefficient
	sPI.fUpOutLim = 140.0f;   // set the PI-controller's output upper limit
	sPI.fLowOutLim = -140.0f; // set the PI-controller's output lower limit
	
	// 3rd step: Next code must be executed every time with sPI.fDtSec period when 
	// new calculation of PI-controller's output is needed
	sPI.fIn = MyInValue;      // set the new value of PI-controller's input
	sPI.m_calc(&sPI);         // call the PI-controller's output calculation function
	MyOutValue = sPI.fOut;    // update MyOutValue variable
	
	// call this function in case only when you need to reset the PI-controller's internal variables
	sPI.m_rst(&sPI);

License

MIT

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.