What is my PID project based on?

Hardware and Development Platform

  • Linux
  • Raspberry Pi3 or 4
  • C++
  • Microsoft Visual Studio
  • VisualGDB

Additional Hardware

Displaysh1106
Temperature sensorpt100 4-wire
Temperature convertermax31865
IR Temperature sensormlx90614
Input/Outputmcp27017

I am not sure on what I will use the IR sensor for except I have an idea that if I can measure the real surface temperature in addition to the floor core temperature, I can improve temperature precision and stability.

The input/output is used to drive (solid state) relays to control the heat valve. In that context I have two options: A wax type on/off actuator with a open/close time of 2-3 minutes or a motor controller with continuous valve actuation. I will provide software for both.

Hello PID’ers!

Welcome to my PID hobby project!

Hobby project. Well … it is, but I attempt to make it professional enough to satisfy some of my interests such as designing for re-usability.
Reusing code is fine. But the shared code must be designed to be reusable and for sure very little code has that mark.
Mostly because of deadlines. Reusing code is beyond the delivery of a project. Only if the project is to create libraries or code segments the reusability is at concern.

I will not say that I am expert and I have success every time I make a piece of code with reuse in mind. And there is a good reason for not thinking reuse every time. The device you are programming for is a special product where some of the features will never be used again, so don’t bother every time.

For my PID project I have some parts that will be designed for reuse while other will be a one-of. So let’s get started.

My objective is to construct a PID controller for my bathroom floor.

The floor is heated by water circulating in a water based central heating system. The valve is now controlled by a PID controller sensing the floor temperature by a Pt100 sensor reasonably centered in the floor.

The current PID controller keeps the temperature within 2 or 3°Centigrade with a 24°Centigrade target. Overshoot is less than 1°C while it is sometimes difficult to achieve more than 23°C presumably because the integration (the I-factor in PID) is not sufficient.

I think is has something withe the delay in the temperature rise in the floor. When I increase the water flow it takes a good while before the temperature has risen, the open-loop frequency of the floor is loo low for the autotune in the PID to determine reasonably good parameters for Kp and Ki. Kd is not considered here as it is assumed to contribute too much to instability of the system.

I hope that a PID controller that is more appropriate for controlling a heated floor will be a better solution than the current standard controller.