topbanner.gif
Login
Username

Password




Not a member yet?
Click here to register.

Forgotten your password?
Request a new one here.
Shoutbox
You must login to post a message.

JackH
OfflineAdmin
· 07/04/2020 10:27 AM
Happy 4th of July! jazzyhands

JackH
OfflineAdmin
· 06/24/2020 7:58 AM
@Mark McCornack, Please post your question in the forum.

Mark McCornack
Offline
· 06/15/2020 9:28 PM
Hi! Looking for a legacy inlet temp sensor on 13 yr old Gene Cafe. It seems they've changed it and now you need new mother board and new sensor. Any ideas where I can find compatibile old one? Mark

Samaniego
Offline
· 06/09/2020 6:39 PM
Wich thermometers Can i buy for my roasting machine compatible with usb or macbook?

JackH
OfflineAdmin
· 06/05/2020 5:38 PM
peveleth, It is better if you start a post in the forum with your question. These shouts go away in time.

Users Online
Guests Online: 5

Members Online: 0

Total Members: 6,646
Newest Member: Nabguana
In Memory Of Ginny
Donations

Latest Donations
Anonymous - 5.00
Anonymous - 5.00
renatoa - 2.00
JitterzZ - 2.01
renatoa - 2.00

View Thread

Who is here? 1 guest(s)
 Print Thread
PID control help and Artisan
Sinobi
Hello

For some time Artisan has had internal PID control capability.
The way to tune such a system is described many places around the web.
Personally the Wiki animated gif explained everything for me about how to tune the PID.
Until Now...

In Artisan v. 1.4.0 and 1.5.0 the algorithm has has some modifications to give us the possibility for a better PID method.
The new method is called Proportional on Measurement PID.
I have tried it, but as the functionality is different to the normal Proportional on Error, I can not figure out how to tune it.
Hopefully somebody in here can help?

One of my problems might be the bug Greencardigan discovered (good finding btw.) where PID end parameters from the previous roast is not zero'ed before a new roast, thus resulting in varying behaviour in a new roast. But lacking an understanding of how to tune PID PoM does absolutely not help either Shock

Please, help
/Henrik
 
greencardigan
Have you seen Brett's blog posts regarding the Proportional on Measurement method? The PID code in Artisan and also the TC4 is based on Brett's code.

http://brettbeauregard.com/blog/2017/...asurement/

I am yet to try Proportional on Measurement so I can't really provide any first hand advice.
 
renatoa
The classic tuning methods like Ziegler-Nichols no more work for PoM, because now P is a braking factor, not a driving factor, as before.

You can read some theory here:
https://books.google.com/books?id=TxK...mp;f=false
 
Sinobi
Thank you both of you.

I had read Brett's blog post and one or two other places.
Now I've read renatoa's link as well.
I more or less understand the functionality, just like I do with PoError,

With PoE the methology of tuning is (with a steady or very slow climbing) target:
Zero P, I and D. Turn up P till it's ringing around target. Turn P a bit down so you don't quite reach target. Turn up I to reach target with a bit of overshot. Turn up D until the overshot is eliminated.

With PoM the methology of tuning is: ?
I tried the same as above, but starting with a high P and reducing it. But it's not behaving like I would expect it to from what I have read in the links. As P is a breaking factor I'm not sure that is the way to proceed, but then what is?

My analytical brain just might be too dumb, or I might have misunderstood something, I just didn't take any steps forward in the process, so ended with giving up...
That is why I called out for help.

/Henrik
 
renatoa
Looking at Brett code, what I see is that P term is nothing else than another D term, with different coefficient, while I expected to be tied on the measurement value itself, not on input delta. Just look and judge yourself



      if(!pOnE) outputSum-= kp * dInput;
...
      /*Compute Rest of PID Output*/
      output += outputSum - kd * dInput;


So I recommend to not use this implementation until this issue is clarified.

Actually, in my roasts I don't use Brett code, but a controller derived from @chaff popc project works, using a different approach, based on code used for platform stabilization in flight simulators, model flying being my lifetime hobby.

Some basics about the algorithm here:
http://www.flightgear.org/Docs/XMLAut...node3.html
... and the original source code:
http://home.flightgear.org/download/s...urce-code/
.../src\Autopilot/pidcontroller.cxx

Even fixed, I still don't recommend using a PID of any flavor to control a roast process.
More on this in another post.
 
Sinobi
Hmm, haven't actually looked at the code, as my math knowledge is too limited to program the computation algorithm for this. (Edit: Just looked through both implementations of PID. It's way more simple than I thought)
Good catch!

Interested in the controller derived from the flightcontrol
You don't happen to be willing to share that modified adapted code, or do you?
The Arduino on my roaster is programmed by me and with modbus interface to Artisan, so I could probably just let Artisan send it SV values and experiment with PID functionality in the Arduino sketch...
Edited by Sinobi on 02/16/2019 11:58 AM
 
renatoa
Check this project, it contains an implementation of that flight PID:
https://github.com/bitwisetech/popc
 
Sinobi
wow cool thanks
 
Jump to Forum:

Similar Threads

Thread Forum Replies Last Post
Can't get Artisan serial port to connect Dataloggers/Controllers/Rate of Rise Meters 7 07/14/2020 9:18 PM
Kaldi Fortis and Artisan ROASTING SOFTWARE APPS 3 05/27/2020 11:38 AM
Min specifications to run Artisan ROASTING SOFTWARE APPS 4 05/12/2020 6:02 AM
TC4/Artisan showing "-1" Dataloggers/Controllers/Rate of Rise Meters 29 03/23/2020 3:37 PM
need artisan help Roasting Profiles 9 03/22/2020 4:35 PM
Homeroasters Association Logo, and all Content, Images, and Icons © 2005-2016 Homeroasters Association - Logos are the property of their respective owners.
Powered by PHP-Fusion copyright © 2002 - 2020 by Nick Jones.
Released as free software without warranties under GNU Affero GPL v3.
Designed with by NetriX