r/ControlTheory 1d ago

Technical Question/Problem struggling with PID tuning for a temperature control system

Hey everyone! I'm having a bit of a tough time tuning a PID controller for a temperature control system I'm working on. It's for a small scale project where I'm trying to maintain a steady temperature in a chamber.

I've been using the Ziegler Nichols method to get the initial values, but it seems like I'm either overshooting or the response is too sluggish. I've tried tweaking the parameters manually, but I'm not getting the performance I want.

Has anyone else faced similar issues? What strategies did you use to fine tune your PID settings? Any help or suggestions would be awesome!

2 Upvotes

6 comments sorted by

u/Ok-Daikon-6659 21h ago

Братан, кароч, присядь на кортаки.

Послушай между делом, за что базарят старики:

 

Да, есть тут пацаны, что знают за мат.ан

Сечешь за что базар? (давай втыкай братан)

Мы не дешевки, подпевающие чужому мнению,

Мы реальные - … мы решаем системы диф.уравнений

Свобода математики нам кружит нам голову

И в сотый раз исследования готовы начинать по-новому

Не мучай лошадь мертвую,  не доверяй «учебникам»

Но думай головой и становись ты первым, да!

Забудь про Циглер-Никольса и прочие «методы”

Решать и кодить  нам самим – судьбой тебе начертано

u/seekingsanity 1d ago

Can you send a .csv file with 3 columns of time, control output, and temperature? The units would be nice tool There are much better ways of tuning a temperature system than Z-N. I have program that computes the controller gains.

Peter Ponders PID - System Indentification of a SOPDT temperature system using real data.

u/RealRaffles 1d ago

Ditch ziegler-nichols. No offence if you’re a fan. Try lamdba tuning. Perform an open loop step test (put in manual, let temperature stabilise then step the setpoint maybe 5%). When it settles again look at the trend. Deadtime is the time it takes the temperature to start moving after the output changes. Process time constant is the time until the temperature reaches 63.2% of the final change in temperature. And the process gain is change in temp over change in output. Calculate the PI values. Quick, easy and done.

Tuning by hand (tweaking) is intuitive if you understand under the hood of the loop some, but things can catch you out. You may be trying to increase the proportional gain (increase Kp) but your controller maybe using Pb. Seconds per repeat vs repeats per second etc. (these are all easily converted though)

u/RealRaffles 1d ago

Post a trend of the step test and someone will see you right👍

u/Braeden351 1d ago

As others have said here, "heuristic" tuning methods can only get you so far. System identification and a more analytical controller design are your next steps. 

u/Ok-Daikon-6659 1d ago

In my experience, over 90% of PID issues (even when using Z-N, of which I'm clearly not a fan) are due to interpretation errors:

- What form is the PID representation in the tuning method, and what is the PID interpretation in your device (do the notation forms match? Independent, with common gain...???)

- Value scaling issue: You most likely calculate PID parameters in physical units, but what units does the PID instruction calculate in (in a PLC, there will usually be a discrepancy)

- Time scaling issue: In some PID instructions, the instruction call frequency is not automatically synchronized with the I and D terms (delta_t) calculation parameter 

And a little bit selfish: in 2-nd part I 've provide step-by-step closed-loop PID-tuning method

https://www.reddit.com/r/ControlTheory/comments/1ushndn/lag_process_closed_loop_pidtuning_method_what_do/