Alternative for PID - Page 3

Need help with equipment usage or want to share your latest discovery?
blondica73

Postby blondica73 » Dec 05, 2018, 12:19 am

sandc wrote:Please check the links at the bottom of this post, they pre-select components for specific usage cases. If you risk ordering it for use with 110V/60hz, indicate in your order that you require 2mm² leads (for the 20A relay). For the special case of a Vivaldi, in which only a fraction of leva!'s features can be used (if the original controller is retained as primary controller), you might want to run this thread through Google translate. For controller-less machines (Silvia etc), the latter parts of these threads might be interesting: thread 1, thread 2.

I placed the order and entered "I require 2mm² leads (for the 20A relay)" in the coupon section as I could not find another place for comment.

Mesmer

Postby Mesmer » Dec 05, 2018, 3:55 am

How is the pump voltage controlled for the pressure/flow profiling?
I see you mention phase angle, does this mean the waveform is like that from a triac (dimmer)?

sandc

Postby sandc » Dec 05, 2018, 5:46 am

The pump is powered by a solid state relay of type 'random control' (without zero cross circuit), so it's a phototriac. That's fired relative to the zero crossing detected by an opto coupler. If a lamp were connected instead of a pump, it could be dimmed - very precisely. For resistive loads such as lamps, dimmers include a choke that limits the rate of the rise of the current but since a pump is an inductive load, it is its own choke.

Mesmer

Postby Mesmer » Dec 06, 2018, 8:14 am

Did you also experiment with pulse skipping technique? Basically sending full sine waves to the pump, but skipping some wavelengths when you want to reduce flow. I imagine it shouldn't be too hard since you are already sensing the zero point, so only a matter of changing when you fire the SSR.

sandc

Postby sandc » Dec 06, 2018, 11:32 am

> Did you also experiment with pulse skipping technique? Basically sending full sine waves to the pump, but skipping some

Sample the pressure with µs resolution (DSO) and you will see that even normal use of the pump - very regularly spaced strokes at 50hz or 60hz - generates significant pressure oscillations. It depends on where you measure but the amplitude of the oscillations (against the median value) could well be over 0,5bar or even over 1bar - per stroke. This is not normally visible on manometers (until damping fails and the needle begins to flutter) but that's the reality of vibration pumps.

Leaving out entire strokes would make this worse. It could still be made to look good on screen by applying a lot of damping but in reality, pressure would fluctuate considerably if entire strokes were missing. Using PFC (phase fired controller) and modulating the power of each stroke, on the other hand, reduces oscillations. Having less fluctuations in flow and pressure may not have an effect on the taste but it certainly helps the precision of pressure profiling if the controlled variable is as free of fluctuations as possible.

There could be one usage case for pulse-skipping: Pumping water with very low flow rate in the pressure-less time before PI (flooding-the-filter phase). Very low flow rates against zero pressure, if somebody should desire that, are hard to achieve with PFC: That situation requires applying very little power to the pump. So low that it might not get the flow going.

User avatar
radudanutco

Postby radudanutco » Dec 06, 2018, 1:38 pm

> A lever machine with heat exchanger is miles beyond what leva! is designed for. It's for machines with water straight from the PID-controlled boiler and preferably not with E61 group (examples: Rancilio Silvia, Bezzera BZ09, ...).

(well, it's some kind of an irony: one of the meaning of 'leva' in Italian is 'levers' :)

I did understand that from the beginning, but it is about the first phase of the shot, I mean the preinfusion;
the preinfusion starts once the lever is brought down: the pump is started by a microswitch, the water is filling the 'brewing' chamber into the cylinder and above the puck; the whole volume is up to 75-80 ml;
at about 50 ml pumped into the chamber the pressure starts to build up to a maximum of, say 10 bar;
the puck is saturated, there is already a flow beneath the portafilter;

I am now monitoring mainly only this part of the shot and is this part I wish to control with an ito/leva! proper configuration;

of course, after the preinfusion, begins the manual part of the procedure, that is, the lever is raised by hand, the microswitch disconnects the pump, and the piston descends pusshed by the springs;

sorry for returning to the same description: I have a manometer mounted on the pump exit, after the opv and the check valve, an ordinary dimmer, switchable, to supply the voltage to the pump and a regular pid/SSD to control the 100W heater of the group (same as for Bezzera BZ09/07 etc.);
thermocuple K sensors on the lower/front of the cylinder and on the pipe exiting the HX;
all temperatures profiles recorded via USB datalogger (an Arduino Uno and MAX6675's - in replace of a much better myPCLab, unfortunately damaged!)

what I would hope to accomplish by using a ito/leva configuration:
a pressure sensor at the pump exit (?), a flow sensor at the pump input, temperature sensors for the 2 PIDs controlling the heating into the group and in boiler (for this I have an external SSR); I wonder if there are some recomendations for the places where to glue the sensors;
there must be a way to setup easily the pump flow (the rotary encoder?);
also, I would use the leva! for programatically run a certain pressure profile during preinfusion: i.e. 2-3 ml/sec until the pressure exceeds 0,7 bar, then a slow ramp (depending on the programmed flow, but it could be anything between 6 to 20 secs) up to 10 bar (to make a smooth transfer onto the springs)

is all these feasable? do I need an OLED display kit, or everything could be solved OTA? can I have all the profiles recorded (pressure, flow rate, PID temperatures...)

> using a chart wouldn't work ...

I meant, if you have determined a pressure-flow characteristic of a solenoid pump under different flow/pressure settings, for your solution for controlling the pump;
or, putting in another way: if the pressure ramp of the pump is programmed (or button set?) to be a very slow one, will the pump manage to rise the pressure in the cyl chamber up to a maximum allowed (by OPV), of 10 bar?
in my setup, the pump is controlled by missing erraticaly some strokes, so with lower flowrate, say 2.5-3 ml/sec, I get a very long 'soaking', 0 bar phase (15-20 secs) then the pressure builds up, again slower, until the pump 'dies' around 2 bar... so its characteristic pressure-flowrate is moved to the left:
Image

sandc

Postby sandc » Dec 06, 2018, 3:45 pm

> if the pressure ramp of the pump is programmed ... to be a very slow one, will the pump manage to rise the pressure

Here is an example of an actual pressure-profiled Silvia shot with a slow pressure ramp to 9bar over 12s (total shot time 30s):

Image
Shot on Silvia. Blue = Pressure in filter, Cyan = Flow meter between tank and pump, Red = Pump-on time

The spike in the blue pressure line shortly after the start is not a glitch. leva! runs the pump with full power (alternatively constant user-configured power) until a configurable flood pressure, here 0.7bar, is reached - to fill air pockets without undue delay. Then pressure profiling kicks in.

This setpoint curve was programmed into the firmware to achieve that result:

Image
Test pressure profile

> meant, if you have determined a pressure-flow characteristic of a solenoid pump

The output of the PFC controller can be adjusted in fine steps (180 steps, but that's an arbitrary decision, it could as well be 500 steps, just a matter of timings). Consequently, the flow from the pump into the system, at any given pressure in that system, can be adjusted in 180 steps. That means a machine with this firmware has 180 different pressure-flow characteristics. It would be insane to record so many pressure-flow curves. The solution is to use a control loop that adjusts to the error, just as PID temperature controllers do not have "watt-temperature curves" in memory but adjust to the error.