Skip to content →

A shiny new way of calculating PID parameters

Based on my previous post about specification of PID parameters, I developed a basic shiny web app to do all of the calculations for you. You can choose different levels of action (aggressive, moderate, conservative), and easily visualize the impact of things such as dead time in process (longer deadtimes results in slower control). Shiny web apps are written in the R language for statistical computing (I’m a PhD student in statistics, remember?). The code is all in this github repository, which also holds a link to a version of the app hosted on The live online version of the app may or may not be accessible because with a free “shinyapps” account there are traffic/use limitations… nonetheless the app can always be ran on your local machine if you follow the instructions.




Published in Brewery Calibration


  1. cas

    Hello. Good idea, very useful.

    ¿can you implement ºC option?
    ¿can you put a help description in each bar concept?


    • Justin

      If the values you use for the equilibrium temperatures are in degrees celsius, your PID parameters will also be in degrees celsius as intended. No modification of the program is necessary is really necessary… but I will make this more obvious the next time I update it.

      • cas

        thanks Justin.

  2. Joe Solomon

    Hi Justin,
    Found your PID calculator and I’m trying to calibrate my HERMS with SB Elsinore. When figuring out the equilibrium temp, seems mine is taking a long time to get to a constant temp @ 8% load; I’m assuming equilibrium temp is a constant temp, basically when it stops rising at the 8% load. I started at 68 degrees, after about 2 hours its still rising and is at 91. Does it sound like I’m doing this right? Do I let it keep going until it stays constant?

    Thanks for your help and love the blog!


    • Joseph Solomon

      Forgot to mention I’m measuring temp in the MLT while heating HLT via HERMS coil.

Leave a Reply to Joseph Solomon Cancel reply

Your email address will not be published. Required fields are marked *