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.

renatoa
02/04/2023 1:40 PM
Welcome, ediblemanager

allenb
02/02/2023 4:22 PM
bcoffeedrinker Welcome

renatoa
01/31/2023 1:17 AM
pouringZabbaskeema

renatoa
01/29/2023 4:55 AM
Welcome, drygrounds and CarlHaberfeld,

renatoa
01/28/2023 5:42 AM
ramsamorrow, VirTERM and Columbia, coffee drink

In Memory Of Ginny
Donations

Latest Donations
dmccallum - 10.00
JackH - 25.00
snwcmpr - 10.00
Anonymous - 2.00
Anonymous - 5.00
Users Online
Guests Online: 9

Members Online: 0

Total Members: 7,788
Newest Member: ediblemanager

View Thread

Who is here? 1 guest(s)
 Print Thread
SR800/SR540 Fan Current TC4+
dwertz
I think I agree, just slapping in a ZC circuit is probably simplest.
 
Gullygossner

Quote

renatoa wrote:

Just one more Grin

Or, simpler to do, imo... as wiring I mean... get a robotdyn dimmer and use it for ZC and fan. Keep only the heater circuit with original SR components, fed from OT1.


What would the connections look like to achieve that? I've got a robotdyn dimmer already so it's just a matter of figuring out the wiring.
 
renatoa
Back to #11 post schematic. First, the SR800 side:

- J1 is the A/C IN connector/screws block, there you should connect the mains wires, taken from ... any point that is most comfortable for you.
- J2 is the OUT/LOAD block, the fan should be connected there together with that 100 ohm resistor, that reduce voltage to 30V.
What exactly which wires means the above is hard to say without a SR800 dissected on my table...

Then, TC4 side:
- Zero C pin goes to INT pin/ IO2 of TC4
- Gnd, the TC4 ground pin
- PWM pin (dimmer) goes to HTR control pin of TC4 (D9) Not the OT1 headers !
 
dwertz
OK I did it. Still need to get arduino connected, but the controls work from the connector.
dwertz attached the following image:
img_0045.jpg
 
dwertz
The biggest spend was a fancy connector
dwertz attached the following image:
connector_1.png
 
dwertz
Quick little Demo https://youtube.c...-QIzJxuiDE
Edited by dwertz on 11/28/2022 12:31 AM
 
Gullygossner

Quote

dwertz wrote:

OK I did it. Still need to get arduino connected, but the controls work from the connector.


This is fantastic! Would you mind doing a little write up of how you got it working?
 
dwertz
Basically, I just did what renatoa suggested. I did do a slight modification though. I chose not to use the Triac on the robotdyn dimmer. I just used it for the zero-crossing circuit. Then I used two separate optocouplers. One for the Heater and one for the fan. The transistor output and resistor of the optocoupler is wired in parallel with the transistor and resistor on the original CPU board. That way the original CPU board continues to have control, and the optocouplers have control. Either can fire the original Triacs. One of the goals was to not break the roasters original functionality.

I did change the resistors on the optocoupler boards. I used 300 ohms on the arduino side for compatibility with 3.3V or 5V logic, and 1k on the transistor side to match the resistors on the original CPU board.

Tapping into the AC mains for the zero-crossing circuit feels a bit sketchy. Just soldering wires down like I did is not very robust. We will see how long it lasts.

I am not representing this as an engineered or safe solution. This is just what I did for fun. Definitely proceed at your own risk.

Now that it is modified, I am not sure why I did it LOL. Is it so I can use the sliders in Artisan rather than the knob on the roaster? That is clearly not worth it. Originally the goal was to use PID control and have the computer control the heater to follow a predetermined roast profile. But I am finding the temperature display in Artisan to be really lagging behind control inputs, so I am not convinced how well PID control is going to work.
Edited by dwertz on 12/04/2022 11:30 PM
 
dwertz
Optocoupler boards and robotdyn dimmer
dwertz attached the following image:
rawbits.jpg

Edited by dwertz on 12/04/2022 11:06 PM
 
dwertz
Connectors and unused components removed
dwertz attached the following image:
modified.jpg
 
dwertz
Nearing completion
dwertz attached the following image:
almost-done.jpg
 
renatoa

Quote

dwertz wrote:
...
Now that it is modified, I am not sure why I did it LOL. Is it so I can use the sliders in Artisan rather than the knob on the roaster? That is clearly not worth it. Originally the goal was to use PID control and have the computer control the heater to follow a predetermined roast profile. But I am finding the temperature display in Artisan to be really lagging behind control inputs, so I am not convinced how well PID control is going to work.


If sliders works, PID should work to, but you are right, not worth it, the current control implementation of Artisan can't cope with the task. You need a proportional on setpoint control, not on error.
Maybe with some Events playback wizardry...
 
Gullygossner

Quote

dwertz wrote:


Now that it is modified, I am not sure why I did it LOL. Is it so I can use the sliders in Artisan rather than the knob on the roaster? That is clearly not worth it. Originally the goal was to use PID control and have the computer control the heater to follow a predetermined roast profile. But I am finding the temperature display in Artisan to be really lagging behind control inputs, so I am not convinced how well PID control is going to work.


I suppose outside of PID control, having event markers for the fan/heater could be beneficial for repeatable results. Also having more granular control of the fan would be a nice thing. The fresh roast can step changes seem to be quite large. I find with large charges it would be nice to have like a half increments which would be achieved via the artisan sliders.
 
dwertz
First roast using external control.

Infinite fan speed control is great. As is not having to mess with the knob trying to select the parameter to change.

As you can see from the wobbly curve, I am not a good PID Shock I just quickly generated the red curve to try and follow. The roaster has a lot of thermal lag from the heater control inputs. I need to modify the target curve to take that into account.

Next up is to actually try and get computer control of the heat setting. I think I will always want to control the fan manually.

This has to be the most expensive SR800 in the history of the world. Let's just say I am not using an Arduino to generate the TRIAC pulses.
dwertz attached the following image:
screenshot-2023-01-01-155904.jpg

Edited by dwertz on 01/01/2023 6:23 PM
 
renatoa
Actually, the machine is faster than us, the lag is from our reactions.
A good non-PID control solution is changing the heat 1% about every 10 seconds, as an average, faster changes in the dry phase, then slowing.
And every change is immediately seen in RoR evolution, next 3 seconds after change.
An example of such roast log attached, bottom red line is the power evolution, generated by an algorithm.
If you examine the graph, you can see that most RoR raises are the result of a step in power increase.
~~~
renatoa attached the following image:
image_2023-01-02_101228230.png

Edited by renatoa on 01/02/2023 2:09 PM
 
dwertz
Interesting. So that is completely open loop? Also, constant fan setting? I feel the need to reduce the fan speed throughout the roast.

Is the heater control proportional to power? Currently my heater control linearly controls TRIAC phase angle. It would be pretty easy to map phase angle to power assuming a constant heater resistance
 
renatoa
Yes, constant fan, barely bubbling at start, kangoo jumping at the end.
Having good RoR computing in real time, I wasn't been able to change fan smooth enough to not induce huge jumps in Ror, so gave up trying to play as a DJ with two hands.

And yes, BT not influencing power evolution at all, is logged and plotted "just for the record"

Power is proportional with HTR%, using ICC, not PAC.
ICC is the TC4 term for what is known in industry as pulse skipping modulation.
So 50 Hz = 100 half sines in a second, 1% = one half sine passed, the other 99 half sines of 100 skipped.
No need for conversion tables from power% to microseconds delay angle as for PAC.
And less EMI generated due to sharp edge of high currents switching in the middle of the sine.
 
dwertz

Quote

renatoa wrote:
Power is proportional with HTR%, using ICC, not PAC.
ICC is the TC4 term for what is known in industry as pulse skipping modulation.
So 50 Hz = 100 half sines in a second, 1% = one half sine passed, the other 99 half sines of 100 skipped.
No need for conversion tables from power% to microseconds delay angle as for PAC.
And less EMI generated due to sharp edge of high currents switching in the middle of the sine.


Thanks! That makes total sense.
 
dwertz
OK got a pretty decent tracking from PID. Completely hands off the heater control. I adjusted the fan down maybe 4 times throughout the roast. Had some hiccups at the beginning but then things settled down. I accidentally started with the fan at lowest power. The sudden slope change is when I kicked it up to a speed to get decent bean movement. I let it roast a little longer than intended because I was so enamored with the heat slider bouncing around.
dwertz attached the following image:
first-good-pid-roast.jpg
 
dwertz
It took three tries. The first one I just had P and I and I had tuned it with no beans. Adding the beans meant that the integral wound up way too fast causing large overshoot. The second is with the I term turned way down, but still had significant ringing. The third try I added derivative feedback.

I am going to try a modification where the derivative effort is subtracted from the integration total rather than just being summed into the control effort. The idea being that the integral should not keep winding up if the error term is getting smaller.
dwertz attached the following image:
evolution.jpg
 
dwertz
Here is the ROR for that last roast. I wonder what causes that ripple with about 1/2 a minute period. I should monitor my line voltage to see if anything crazy is going on. Renatoa, I am noticing that your ROR has a similar look to it. I have observed similar when using Artisan even when I am not touching the heat or fan controls. I wonder if it is related to "kangoo jumping". Perhaps I will really stay on top of the fan speed for the next roast and have the fan just fast enough for good bean rotation, but no jumping.
dwertz attached the following image:
ror.jpg

Edited by dwertz on 01/03/2023 12:44 AM
 
renatoa
What are you using for computing and graph plotting ?

Ror is like a magnifier for data changes, and for total convective machine as FB the turbulence is pushed to extremes.
In the bed of coffee beans happens things like the channeling in an espresso puck, hot air gusts that find an escape way trough the beans without much resistance, thus exhausting still very hot. Such gusts, when hitting the sensor produces what we see on the graph.
That's why I prefer the asymmetric builds for FB, the air escape and beans sensor could be on opposite sides of roast chamber.
Same for power control steps, 1% control resolution is too rough for a FB, where space is too small to have room for melange and averaging as in a large oven.
1% power step led to about 3 C degrees of hot air increase, this can't pass unnoticed by a fast sensor. That's why maybe is preferable a slower sensor, having lag time of about 10 seconds, as is the average 1% power step change period.
 
dwertz
I am using the LabVIEW programming environment. The phase angle control is actually running on an FPGA with a 40MHz loop rate. so, the control resolution is much finer than 1%. The actual PID loop is running on a real time controller and the loop rate is paced by the Thermocouple module. I have been using best 60Hz rejection and the rate is 8.3333333 Hz. I can kick the loop rate up to 50Hz with the module I am using. The NI-9219.

The system is NI Compact RIO

https://www.ni.co...ctrio.html

Just slightly overkill for the taskRoflmao I work for NI and had the stuff laying around. It was WAY faster for me than trying to learn how to do it in Artisan. Once I get all the control stuff to my liking, I will port it over to a $6.00 Arduino nano.

I will look carefully at the bean mass to see if there is an area on the surface that is calm and might be a better location for the thermocouple.
Edited by renatoa on 01/03/2023 4:00 AM
 
renatoa
With PAC the main problem is not about resolution, but precision and time stability.
The effective power delivered into load is hugely affected by the repeatability and precision of zero cross detection (ZCD).
Spread of ZC in a 100 microseconds window means nothing for ICC, under 0.1% of power, because happens at sine start, where power is very small... but a jitter of 100 microseconds, when propagated at sine peak, in the 50% ballpark, means 1% of power !
And ZC with 100 microseconds accuracy is extremely hard to get, trust me, in big industry it's an achievement.
On my residential mains measured up to eight false ZC in 400 microseconds window ...
When using PAC for a fan, I am capable to hear tone variations when spinning freely, no load, due to this ZC detection issue.
I am pretty sure they are due to ZC, because same fan, using an universal motor, when powered from DC, has a very stable tone pitch.

Not sure what averaging are you using for the graph, I suggest try Savitsky Golay filtering, that does both derivative and filtering in same step.
In my setup I am using 9 values (seconds) window size, the linear model, for simpler computations, there is no need to use cubic or quartic for so small variation in such narrow window.
https://en.wikipe...efficients
 
dwertz
OK you piqued my interest. My FPGA is actually timing the rising and falling edges of the zero crossing circuit and using the center as the reference for the PAC. I exported the pulse width for every zero crossing for a 10-minute run. I also exported the zero crossing to zero crossing interval for every zero crossing. included is the raw and smoothed data.

The RobotDyn dimmer actually has an interesting property. The higher the voltage of the mains voltage, the narrower the zero-crossing pulse. In Theory we can use the zero-crossing pulse width to adjust the phase angle to compensate for mains voltage variation. The smoothed pulse width is suspiciously similar looking to the ROR curve and I am wondering if doing the voltage compensation will smooth things out.

The zero-crossing time interval plot is an indication of the frequency stability of the mains. Short term, I am not seeing more than 10 usec variation. And to be fair if one pulse comes in a little early others will come in late. It is not fair to judge power output on one pulse. Really you need to look at the average over the similar interval you would use for your ICC frame.

I was thinking about what you said about the thermocouple and the turbulent air flow allowing blasts of hot air not cooled by the beans. What do you think of using multiple thermocouples and using the minimum temperature from any thermocouple as the process variable? The thought is that the coolest one will have had the least amount of bypass air and will have better contact with the bean mass.
dwertz attached the following image:
screenshot-2023-01-03-225313.jpg

Edited by dwertz on 01/04/2023 1:23 AM
 
Jump to Forum:

Similar Threads

Thread Forum Replies Last Post
Fresh Roast SR540/800 Retrofit Logic Board: Comments Needed Fresh Roast 8 and NEW SR 500 1 02/04/2023 3:20 AM
Artisan newbie with SR800 ROASTING SOFTWARE APPS 5 12/20/2022 11:02 PM
Any tips for SR540? Roasting Coffee 26 09/18/2022 7:52 AM
SR540 - Ideal profile (time and temperature) Popcorn Popper roasting 14 06/05/2022 1:17 PM
With a "Fresh Roast SR800" in Arizona New Members say hello or you may update your profile. 1 12/23/2021 10:07 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 © 2023 PHP-Fusion Inc
Released as free software without warranties under GNU Affero GPL v3
Designed with by NetriX
Hosted by skpacman