What is a PID Controller? | DigiKey

  Рет қаралды 59,756

DigiKey

DigiKey

Күн бұрын

PID controllers are popular control mechanisms found in many systems used to help drive the main process’s output to achieve some desired set point. PID stands for “proportional, integral, derivative.” The controller compares the output of the process to some set point to create an error term. That error term is used in three separate calculations to produce a control signal for the process or plant.
The written description for PID controllers can be found here: www.digikey.com/en/maker/proj...
In the video, we use an example of a cruise control system in a car. We want to design a mechanism that can maintain a constant speed by controlling the position of the accelerator (gas pedal). PID controllers are a perfect fit for such a system. In fact, most modern cars use PID controllers for cruise control.
A simple, naive approach to designing such a controller is to adjust the process’s input signal based on the set point alone with no feedback. This is known as an “open-loop control system.” This may work in some cases, but most of the time, the output is dependent on other factors (such as road conditions and hill climbs for our cruise control system). As a result, we need to incorporate feedback into our controller.
A “closed-loop control system” measures the actual output of the process and compares it to the set point. The error is the difference between these two values, and it’s used as the input to the controller. The controller looks at that error and makes adjustments as needed to the process’s input.
The proportional (P) part of the PID controller simply multiplies the error term by a constant, Kp. The further away the process’s output is from the set point, the higher the magnitude of the input value. This works in some cases, but it can result in “steady-state error” where the desired output can never be achieved. In our cruise control example, if we are at our cruising speed, the error is 0, which means that we should completely release the gas pedal. Obviously, this is not a desired behavior, so we add additional terms to our controller.
The integral (I) term sums the error term over time and multiplies this sum by a constant, Ki. This process solves the issue of steady-state error found in the P controller. As the steady-state error accumulates, the I term causes the process input signal to increase, thus closing the gap found in that steady-state error. It essentially looks at the past performance of the system and adjusts as needed.
Sometimes, a PI controller is sufficient. However, you often face a tradeoff when tuning such a system. You can either have an “overdamped response” where the error slowly (but surely) approaches 0, or you can have an “underdamped response” in which the output quickly approaches the set point but oscillates for some time. If you want a “critically damped” system that quickly approaches the set point and settles with little or no oscillation, you need to add a third term.
The derivative (D) term counteracts the effects of the proportional and integral terms. It attempts to predict where the response is headed by solving for the slope of the error curve and multiplying that value by the constant Kd. If the magnitude of the slope is too high, such that the system is approaching 0 error too quickly, it will add a negative value to the sum of the P and I terms, thus “pulling back” on the input.
With properly tuned Kp, Ki, and Kd values, systems should ideally become critically damped where the output quickly approaches the set point without any overshoot. Tuning a PID controller can be quite involved, and we will cover it in a future video.
Note that most modern PID controllers are implemented in software to run on computers or microcontrollers. We provide a snippet of pseudocode to help you get started implementing your own PID controllers in, say, Arduino.
Product Links:
STMicroelectronics Inverted Pendulum Kit - www.digikey.com/en/products/d...
Related Articles:
STMicroelectronics Inverted Pendulum Kit Curriculum - www.st.com/content/st_com/en/...
Learn more:
Maker.io - www.digikey.com/en/maker
DigiKey’s Blog - TheCircuit www.digikey.com/en/blog
Connect with DigiKey on Facebook / digikey.electronics
And follow us on Twitter / digikey
00:00 - Intro
00:57 - Control Theory Overview
02:53 - Open-loop System
03:59 - Closed-loop System
05:06 - Proportional Controller - Distance
07:37 - Proportional Controller - Cruise Control
10:04 - Proportional and Integral Controller
14:05 - Over, Under, and Critically Damped Responses
15:04 - Proportional, Integral, and Derivative Controller
18:12 - PID Controller Tuning
19:43 - Code Example
21:09 - Use Cases
21:44 - Conclusion

Пікірлер: 69
@pekhotinyets
@pekhotinyets 8 ай бұрын
I have watched many videos on PID control, but this is the one where it finally clicked.
@micah2936
@micah2936 9 ай бұрын
This is honestly the BEST explanation of PID. I’ve watched many videos on it and read articles. I’ve just hear that it’s an “art” or that it’s something debated about, but nothing like this. This just straight into the facts and math.
@ShawnHymel
@ShawnHymel 9 ай бұрын
Glad you liked it! Tuning them can be a bit of an art, which I only briefly covered here :)
@JL-to9vg
@JL-to9vg 8 ай бұрын
Same here, even some of the "better" articles would neglect or leave out one element or another. He covered each mode and key aspects so well- it was like I could "see" each mode in action just from his explanations. TYVM, Shawn! I plan to share this with my class and possibly an instructor from a previous class.
@ShawnHymel
@ShawnHymel 8 ай бұрын
@@JL-to9vg Thank you! I hope that your students find the explanation useful!
@jimomertz
@jimomertz 9 ай бұрын
Shawn, you are such an excellent presenter! Looking forward to more. I really loved your KiCad tutorial series also.
@pekhotinyets
@pekhotinyets 8 ай бұрын
I still refer back to that series when I work on my boards
@grottyboots
@grottyboots 9 ай бұрын
Brilliant! I love that the PID controller applies to so many widely varying systems... massive boilers operating on hour time scales, or as fast as modern motor controllers in the millisecond range.
@ScientificThamizhan
@ScientificThamizhan 8 ай бұрын
One of the best video that actually help you to understand how a PID controller works.
@tehmudjinkhan2207
@tehmudjinkhan2207 9 ай бұрын
Been looking to get deeper into PID controllers. Perfect timing on the video.
@alejandromoreira9896
@alejandromoreira9896 3 ай бұрын
Honestly, this is the BEST explanation of PID, although the SUM column is summed wrong.
@pabcet
@pabcet 9 ай бұрын
Shawn, this is one of the best explanation on PID, thanks a lot.
@rickh6963
@rickh6963 9 ай бұрын
Shawn, another fantastic video. Thank you DigiKey!!
@dwagner6
@dwagner6 9 ай бұрын
Would have been amazing if my Control Systems professor had just played this video for us
@dwang085
@dwang085 8 ай бұрын
Same!!
@willowdesk
@willowdesk 2 ай бұрын
The beginning 60 seconds demystify the block diagram so much
@mruthyunjayamr7147
@mruthyunjayamr7147 8 ай бұрын
There was such clarity and continuity in the explanations... Really liked and understood the concept clearly .... This was really helpful ....
@erdum
@erdum 8 ай бұрын
I was trying to understand this as an programmer for almost a year now finally I get it.
@spreaderikthierheimer9271
@spreaderikthierheimer9271 8 ай бұрын
This is an amazing explanation of PID THANK YOU!
@aliusef2912
@aliusef2912 3 ай бұрын
the best explanation on the PID controller I've ever seen on KZbin. thanks
@chinmayyande5024
@chinmayyande5024 8 ай бұрын
Thank you Shawn for diving into PID controllers. This is extremely helpful.
@4473021
@4473021 8 ай бұрын
Shawn this was so good I wish my controls profs were this clear 😭😭😭😭
@amritpalsingh314
@amritpalsingh314 2 ай бұрын
Probably the BEST video on PID controllers.
@Factory400
@Factory400 9 ай бұрын
Excellent presentation as always!
@TradieTrev
@TradieTrev 9 ай бұрын
Great video Shawn, out of all the courses I've taken about PID loops you've really explained the principles and terms spot on!
@a_boy_can_dream
@a_boy_can_dream Ай бұрын
You're awesome! Wonderfully well-explained!
@benarcher372
@benarcher372 9 ай бұрын
Excellent description!
@salahh89
@salahh89 Ай бұрын
What a great demonstration! Thanks a lot
@Dr.Bigglesworth
@Dr.Bigglesworth 7 ай бұрын
That is an excellent presentation. Best one I've seen that describes in detail actually what the P, I & D do.
@joymakerRC
@joymakerRC 9 ай бұрын
I love you bro. thanks for filling in the gaps of my knowledge. I have been using the STM32 nucleo family to build a UAV controller. definately perfect timing for me too.
@rinokentie8653
@rinokentie8653 9 ай бұрын
Very useful video, thanks.
@Akeshma
@Akeshma 9 ай бұрын
Thanks for the explanation.. we need another video illustrate PID using Arduino
@divya2225
@divya2225 2 ай бұрын
loved it . simple and easy to understand .
@MrOnlineCoder
@MrOnlineCoder 5 ай бұрын
Amazing video - clear, visually understandble, with a nice host.
@alfcnz
@alfcnz 5 ай бұрын
This was great! Thanks for the informative lecture!
@dzorzstops5136
@dzorzstops5136 2 ай бұрын
Best explanation of PID EVER!
@saeedamini8098
@saeedamini8098 3 ай бұрын
absolutely brilliant. Thank you shawn.
@kedarpuranik750
@kedarpuranik750 8 ай бұрын
This is the best video on PID!
@andrewlohbihler6731
@andrewlohbihler6731 9 ай бұрын
Thanks Shawn, good example to follow with coding. Will try a desktop example with Arduino code.
@nikitam6164
@nikitam6164 3 ай бұрын
Awesome video. I have never come across such cleanly explained example.
@rolfw2336
@rolfw2336 6 ай бұрын
Nice explanation, Shawn! I liked that there was a bit of math and a bit of code. PS: nice meeting you last week :)
@hojvaelde
@hojvaelde 2 ай бұрын
Hello Just my own comment to your fine explanation. I have a hydraulic project where I have to control the force from a cylinder through a load cell. What makes hydraulics special is the response time. The used servo valves have a 0-50% opening time of 6 msec (common in servovalves). That's why I must use a PID regulator with a cycle time of 1 - 2 ms. There is only an expensive servo controller that can do that, or an analog PID controller, that I used. Another part you easily skip over is the partial feedforward. It is frequently used in hydraulics.
@JeremySpidle
@JeremySpidle 9 ай бұрын
Props! College level stuff here AND its accessible, even to beginners.
@fl4tcircl3
@fl4tcircl3 8 ай бұрын
This is so good!
@solomon337
@solomon337 4 ай бұрын
Great explanation
@SimpleAnalogy
@SimpleAnalogy 4 ай бұрын
NICE one..Thanks!
@ismenc
@ismenc 9 ай бұрын
i wish PID in universities were as simple as this :)
@ShawnHymel
@ShawnHymel 9 ай бұрын
I'm guessing that they give you the transfer function of the plant and have you solve the differential equation analytically. If so, yeah...that sounds rough 😅
@ismenc
@ismenc 9 ай бұрын
@@ShawnHymel Exactly. Just to know in the next subject that everything of that has no real application because real world 'behaviour formulas' are complex and computers don't process feedback in real time.
@mschwage
@mschwage 4 ай бұрын
Awesome video
@jan-willemrensman
@jan-willemrensman 7 ай бұрын
Excellent ❤
@ashinthaCARBON
@ashinthaCARBON 3 ай бұрын
thank you ❤
@ugetridofit
@ugetridofit 9 ай бұрын
Now we need a new method AIPID, or PIDAI. Where we slap AI to the PID for it to figure out the prefect values for us.
@ShawnHymel
@ShawnHymel 9 ай бұрын
You read my mind 😁 There are automated methods of finding PID constants, which have been in use for a while. I’m currently experimenting with using RL to figure out a generic controller (including swing-up). My hope is that this will be the next video.
@tanjiro3285
@tanjiro3285 9 ай бұрын
my fav man on ytb🤩
@boldattempt390
@boldattempt390 2 ай бұрын
Great video, very informative thank you. However can someone please say why the integral term Ki value was set to 0,01 in the example?
@phantomaticscience6846
@phantomaticscience6846 6 ай бұрын
teaching genius :)
@MrApinder
@MrApinder 2 ай бұрын
I’d like to hit the like button a thousand times
@prabuddhajadhav2933
@prabuddhajadhav2933 2 ай бұрын
How do you define interval? Like if I'm reading sensor value at every 1msec then interval =1msec????
@micah2936
@micah2936 9 ай бұрын
20:18 setpoint was not defined, what is setpoint? Is that the set value we need? Also error_prev should be set equal to error at the end of the loop right Nvm I just wasn’t there yet lol
@Jkauppa
@Jkauppa 9 ай бұрын
do you mean s=s0 + vt + ½at^2 balancer (position, speed, acceleration controller)
@josephchamness9915
@josephchamness9915 9 ай бұрын
A car wouldn't have any overshoot if you just kept it floored until your set speed, would it? So wouldn't you only use the PID after you got up to speed? Maybe that will be part of the next episode. Anyway, thanks for the video, it helped explain PIDs nicely, looking forward to the next one.
@dwang085
@dwang085 8 ай бұрын
You’d have to precisely let off the pedal at the right moment. The car has inertia and there is a time constant associated with the moment the pedal position changes to the moment the engine changes the torque applied to the wheels. All of that results in you having to letting off the pedal BEFORE the speed set point is achieved. Otherwise there would definitely be overshoot.
@josephchamness9915
@josephchamness9915 8 ай бұрын
​@@dwang085 My question was meant to be more about initial values, starting/stopping point for the PID and maybe when to use/swap out the PID. Sorry if I come across as nitpicking the model. But using it as an example: As soon as you stop adding power, it would stop going faster (well unless you are going downhill etc. but that sort of thing should be outside the model) And the amount of inertia needed to be overcome to move the pedal position would be small enough I don't think it would matter, probably even happen before the next piston power stroke. Especially with fuel injection etc. And even if it would take a very small amount of time for the accelerator to move, you could still hand over at 99.9km/h. (Although I guess whatever you are using to automatically move the pedal could be quite slow (erm, do they even move the pedal nowadays?)) As for the car, engine, flywheel etc. inertia would help keep the current speed. It can't add speed, or you would have a perpetual motion machine. So you shouldn't need the PID until you are up to speed? Anyway, my point being that in similar cases wouldn't it be better to hand over to the PID after a certain point, maybe with initial values taken from a table etc?
@MePeterNicholls
@MePeterNicholls 3 ай бұрын
Now…. How do you make the tuning automatic/dynamic/inteligent 😜
@BackyardFusion
@BackyardFusion 4 ай бұрын
How is e(t) a wave curvy functions it should be linear
@lumek88
@lumek88 7 ай бұрын
Don't guess or use ancient tuning method.
Introduction to Reinforcement Learning | DigiKey
1:14:57
DigiKey
Рет қаралды 37 М.
EEVacademy #6 - PID Controllers Explained
27:11
EEVblog
Рет қаралды 203 М.
У мамы в машине все найдется
00:38
Даша Боровик
Рет қаралды 3,3 МЛН
FOUND MONEY 😱 #shorts
00:31
dednahype
Рет қаралды 8 МЛН
Do you have a friend like this? 🤣#shorts
00:12
dednahype
Рет қаралды 16 МЛН
Introduction to PID Control
49:18
Christopher Lum
Рет қаралды 44 М.
How to Tune a PID Controller
8:43
RealPars
Рет қаралды 752 М.
PID Balance+Ball | full explanation & tuning
13:13
Electronoobs
Рет қаралды 720 М.
PIDs Simplified
13:07
SiieeFPV
Рет қаралды 281 М.
PID Controller Implementation in Software - Phil's Lab #6
20:06
Phil’s Lab
Рет қаралды 200 М.
PID Controller Explained
9:25
RealPars
Рет қаралды 766 М.
Empirical PID gain tuning (Kevin Lynch)
7:08
Northwestern Robotics
Рет қаралды 152 М.
What Is PID Control? | Understanding PID Control, Part 1
11:42
MATLAB
Рет қаралды 1,7 МЛН
What is Encoder?
8:40
RealPars
Рет қаралды 937 М.
Hardware Demo of a Digital PID Controller
2:58
Gregory L. Holst
Рет қаралды 968 М.
Nokia 3310 versus Red Hot Ball
0:37
PressTube
Рет қаралды 1,7 МЛН
Carregando telefone com carregador cortado
1:01
Andcarli
Рет қаралды 1,3 МЛН
Which Phone Unlock Code Will You Choose? 🤔️
0:14
Game9bit
Рет қаралды 10 МЛН
M4 iPad Pro Impressions: Well This is Awkward
12:51
Marques Brownlee
Рет қаралды 6 МЛН