Patent Description:
This disclosure relates generally to plural component dispensing systems and more particularly to drive systems for pumps within plural component dispensing systems.

Multiple component (e.g., fluid) applicators often include dispensing systems that receive separate inert material components, mix the components according to a predetermined ratio, and then dispense the components as an activated compound. For example, multiple component applicators are often used to dispense epoxies and polyurethanes that solidify after mixing of a resin component and an activating material, which are individually inert. After mixing, an immediate chemical reaction begins that results in the cross-linking, curing, and solidification of the mixture. Therefore, the two components are routed separately in the system so that they can remain segregated for as long as possible. A dispensing device, such as a sprayer or other device, receives each component after it is pumped separately and mixes the components for delivery as an activated compound. A typical multiple component applicator system includes positive displacement pumps that individually draw component materials from separate hoppers and pump the pressurized component materials (e.g., fluids) to the dispensing device for mixing and application.

According to one aspect of the disclosure, a pumping system for a plural component spray system as defined by the accompanying claims is configured to receive first and second component materials and output a plural component material includes an electric motor including a stator and a rotor configured to rotate about a pump axis, a drive mechanism directly connected to the rotor and configured to convert a rotational output from the rotor to a linear input, a first piston of a first pump coupled to the drive mechanism to be reciprocated axially by the drive mechanism, and a second piston of a second pump coupled to the drive mechanism to be reciprocated axially by the drive mechanism.

According to another aspect of the disclosure, a method of operating a pumping system configured to pump different first and second component materials to an applicator for mixing and forming a plural component material includes driving rotation of a rotor of an electric motor about a pump axis by a stator of the electric motor; driving, by rotation of the rotor, a screw disposed coaxially with the rotor in a first axial direction and a second axial direction; driving reciprocation of a first piston of a first pump in the first axial direction and the second axial direction thereby pumping a first component material; and driving a second piston of a second pump in the first axial direction and the second axial direction thereby pumping a second component material different than the first component material.

According to yet another aspect of the disclosure, a pumping system for a plural component spray system configured to receive first and second component materials and output a plural component material includes an electric motor including a stator and a rotor, the rotor configured to rotate about a motor axis; a drive mechanism directly connected to the rotor and configured to convert a rotational output from the rotor to a linear input; a yoke connected to the drive mechanism to be reciprocated axially by the drive mechanism; a first piston of a first pump coupled to the yoke to be reciprocated axially; and a second piston of a second pump coupled to the yoke to be reciprocated axially.

According to yet another aspect of the disclosure, a pumping assembly includes a motor including a stator and a rotor, the rotor configured to rotate on a motor axis; a first piston of a first pump coupled to the rotor to be reciprocated axially; a second piston of a second pump coupled to the rotor to be reciprocated axially; and a controller configured to control operation of the motor such that the first and second pistons displace according to a first speed profile during a fill stroke and according to a second speed profile during a pressure stroke, the first speed profile different than the second speed profile. The first piston and the second piston are disposed such that the first piston and the second piston simultaneously proceed through respective fill strokes and pressure strokes.

<FIG> is a block schematic diagram of system <NUM>. <FIG> is an isometric view of system <NUM>. <FIG> and <FIG> will be discussed together. Proportioner <NUM>; motor <NUM>; controller <NUM>; user interface <NUM>; fluid tanks 20a, 20b; feed pumps 22a, 22b; feed lines 24a, 24b; proportioner pumps 26a, 26b; supply lines 28a, 28b; upstream sensors 30a, 30b ; downstream sensors 32a, 32b; and applicator <NUM> are shown. Proportioner <NUM> includes primary heaters 35a, 35b. Controller <NUM> includes memory <NUM> and control circuitry <NUM>. Applicator <NUM> includes mixer <NUM>, handle <NUM>, and trigger <NUM>. Heated portion <NUM> of supply lines 28a, 28b is shown.

Spray system <NUM> is a system configured to pump a first component material and second component material to applicator <NUM> to form a spray material. The component materials are pumped according to target parameters, such as ratio, temperature, and/or pressure. The first and second component materials are mixed at applicator <NUM> to form the spray material that is sprayed onto a substrate by applicator <NUM>. For example, one of the first and second component materials can be a catalyst, such as isocyanate, and the other one of the first and second component materials can be a resin, such as polyol resin, that combine to form the plural component spray material, such as a spray foam.

Fluid tanks 20a, 20b hold the individual component materials during spraying. In some examples, fluid tanks 20a, 20b are portable and can be moved between job sites. In some examples, fluid tanks 20a, 20b can be drums, such as <NUM>-gallon drums, among other options.

Feed pumps 22a, 22b are respectively mounted to fluid tanks 20a, 20b. Feed lines 24a, 24b respectively extend from feed pumps 22a, 22b to proportioner pumps 26a, 26b. Feed pumps 22a, 22b draw the first and second component materials from fluid tanks 20a, 20b and pump the component materials through feed lines 24a, 24b to proportioner pumps 26a, 26b. Feed pumps 22a, 22b provide the component materials to proportioner pumps 26a, 26b under pressure. In some examples, feed pumps 22a, 22b are configured to pump the component materials to proportioner pumps 26a, 26b at pressures of at least about <NUM> Megapascal (MPa) (about <NUM> pounds per square inch (psi)). In some examples, feed pumps 22a, 22b are configured to pump the component materials at pressures of up to about <NUM> MPa (about <NUM> psi). Feed pumps 22a, 22b provide the component materials to proportioner pumps 26a, 26b under pressure to fill proportioner pumps 26a, 26b during pumping, preventing proportioner pumps 26a, 26b from starving. Feeding proportioner pumps 26a, 26b under pressure prevents the component materials from being pumped downstream at a ratio other than the target ratio due to insufficient fill of proportioner pumps 26a, 26b. Feed pumps 22a, 22b can be of any desired configuration suitable for pumping the component materials to proportioner pumps 26a, 26b under pressure, such as pneumatic, hydraulic, or electric pumps.

Proportioner <NUM> supports various components of system <NUM>. In some examples, controller <NUM> is supported by proportioner <NUM>. Proportioner <NUM> can further support proportioner pumps 26a, 26b and motor <NUM>.

Proportioner pumps 26a, 26b receive the first and second component materials from feed pumps 22a, 22b and pump the individual component materials downstream to applicator <NUM>. Proportioner pumps 26a, 26b increase the pressure of the first and second component materials from the feed pressure to a spray pressure. The spray pressure is greater than the feed pressure generated by feed pumps 22a, 22b. In some examples, proportioner pumps 26a, 26b can pump the component materials at pressures between about <NUM>. 4MPa (about <NUM> psi) and about <NUM>. 5MPa (about <NUM> psi). In some examples, proportioner pumps 26a, 26b can pump the component materials at pressures between about <NUM>. 3MPa (about <NUM> psi) and about <NUM> MPa (about <NUM> psi). In some examples, proportioner pumps 26a, 26b are configured to pump at pressures between about <NUM>. 7MPa (<NUM> psi) and about <NUM> megapascal (MPa) (about <NUM> pounds per square inch (psi)).

Motor <NUM> is mechanically connected to both proportioner pump 26a and proportioner pump 26b. Motor <NUM> and proportioner pumps 26a, 26b can be considered as forming a pumping assembly of proportioner <NUM>. Motor <NUM> is an electric motor having a stator and a rotor. The rotor is configured to rotate about a pump axis in response to current (such as a direct current (DC) signals and/or alternating current (AC) signals) through the stator. Motor <NUM> can be a reversible motor such that the rotor can be rotated in either one of two rotational directions. Motor <NUM> is connected to proportioner pumps 26a, 26b such that motor <NUM> simultaneously causes displacement of the fluid displacement members of each of proportioner pumps 26a, 26b. Proportioner pumps 26a, 26b are disposed on opposite lateral sides of motor <NUM>. In some examples, proportioner pumps 26a, 26b can be considered as extending horizontally form motor <NUM>.

Primary heaters 35a, 35b are configured to increase temperatures of the first and second component materials, respectively, to an operating temperature above the ambient temperature during spraying. Primary heaters 35a, 35b can be disposed in proportioner <NUM>. Primary heaters 35a, 35b can be disposed downstream from proportioner pumps 26a, 26b such that the output from each proportioner pump 26a, 26b flows through primary heaters 35a, 35b. Supply lines 28a, 28b respectively extend from proportioner pumps 26a, 26b to applicator <NUM>. Heated portion <NUM> of supply lines 28a, 28b includes heating elements configured to further increases and/or maintain the elevated temperature of the first and second component materials. The heated portion <NUM> of supply lines 28a, 28b can also be referred to as a heated hose. In some examples, primary heaters 35a, 35b and heated portion <NUM> can be configured to raise and/or maintain the temperature to at least about <NUM> degrees C (about <NUM> degrees F). In some examples, primary heaters 35a, 35b and heated portion <NUM> can be configured to operate at temperatures up to about <NUM> degrees C (about <NUM> degrees F). Maintaining the first and second component materials at elevated temperatures facilitates proper mixing and the formation of desired material characteristics in the spray material.

Applicator <NUM> receives the first and second component materials from supply lines 28a, 28b. The first and second component materials are mixed in mixer <NUM>, which is connected to and, in some examples, disposed within applicator <NUM>. The component materials mix within mixer <NUM> to form the plural component spray material. Mixer <NUM> is the first location within system <NUM> where the first and second component materials mix. The first and second component materials are isolated from each other at all locations upstream of mixer <NUM>. The spray material is ejected through a spray orifice of applicator <NUM> and applied to the substrate. For example, the user can grasp handle <NUM> and actuate trigger <NUM> to cause spraying by applicator <NUM>.

Upstream sensors 30a, 30b are disposed upstream of proportioner pumps 26a, 26b respectively. Upstream sensors 30a, 30b are disposed between feed pumps 22a, 22b and proportioner pumps 26a, 26b. Upstream sensors 30a, 30b can be disposed proximate the inlets of proportioner pumps 26a, 26b. Upstream sensors 30a, 30b are parameter sensors configured to generate data regarding parameters of the component materials feeding proportioner pumps 26a, 26b. For example, upstream sensors 30a, 30b can include any one or more of pressure sensors, flow rate sensors, and temperature sensors, among other options. Upstream sensors 30a, 30b are configured to provide the parameter data to controller <NUM>.

Downstream sensors 32a, 32b are disposed downstream of proportioner pumps 26a, 26b respectively. Downstream sensors 32a, 32b are disposed between proportioner pumps 26a, 26b and applicator <NUM>. Downstream sensors 32a, 32b can be disposed proximate the outlets of proportioner pumps 26a, 26b. Downstream sensors 32a, 32b are parameter sensors configured to generate data regarding parameters of the component materials exiting proportioner pumps 26a, 26b and flowing through supply lines 28a, 28b. For example, downstream sensors 32a, 32b can include any one or more of pressure sensors, flow rate sensors, and temperature sensors, among other options. In some examples, pressure and flow rate sensors of downstream sensors 32a, 32b are disposed proximate the outlets of proportioner pumps 26a, 26b and temperature sensors of downstream sensors 32a, 32b are disposed within heated portion <NUM>.

Controller <NUM> is configured to store software, implement functionality, and/or process instructions. Controller <NUM> is configured to perform any of the functions discussed herein, including receiving an output from any sensor referenced herein, detecting any condition or event referenced herein, and controlling operation of any components referenced herein. Controller <NUM> can be of any suitable configuration for controlling operation of the pumps within system <NUM>, gathering data, processing data, etc. Controller <NUM> can include hardware, firmware, and/or stored software, and controller <NUM> can be entirely or partially mounted on one or more boards. Controller <NUM> can be of any type suitable for operating in accordance with the techniques described herein. While controller <NUM> is illustrated as a single unit, it is understood that controller <NUM> can be disposed across one or more boards. In some examples, controller <NUM> can be implemented as a plurality of discrete circuitry subassemblies.

Controller <NUM> is operatively connected to motor <NUM>, either electrically or communicatively, to control pumping by proportioner pumps 26a, 26b. In some examples, controller <NUM> is operatively connected to feed pumps 22a, 22b, either electrically or communicatively, to control pumping by feed pumps 22a, 22b. Controller <NUM> can be connected to motor <NUM> and feed pumps 22a, 22b via either wired or wireless connections to provide commands to and cause operation of feed pumps 22a, 22b and motor <NUM>. Controller <NUM> is operatively connected to upstream sensors 30a, 30b and downstream sensors 32a, 32b, either electrically or communicatively. Controller <NUM> can be connected to upstream sensors 30a, 30b and downstream sensors 32a, 32b by either wired or wireless connections. Controller <NUM> receives data regarding the sensed parameters for the first component material and second component material from upstream sensors 30a, 30b and downstream sensors 32a, 32b. Controller <NUM> can control operation of one or both of motor <NUM> and feed pumps 22a, 22b based on the data received from any one or more of upstream sensors 30a, 30b and downstream sensors 32a, 32b.

Memory <NUM> is configured to store software that, when executed by control circuitry <NUM>, controls operation of motor <NUM>. For example, control circuitry <NUM> can include one or more of a microprocessor, a controller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other equivalent discrete or integrated logic circuitry. Memory <NUM>, in some examples, is described as computer-readable storage media. In some examples, a computer-readable storage medium can include a non-transitory medium. The term "non-transitory" can indicate that the storage medium is not embodied in a carrier wave or a propagated signal. In certain examples, a non-transitory storage medium can store data that can, over time, change (e.g., in RAM or cache). In some examples, memory <NUM> is a temporary memory, meaning that a primary purpose of memory <NUM> is not long-term storage. Memory <NUM>, in some examples, is described as volatile memory, meaning that memory <NUM> does not maintain stored contents when power to controller <NUM> is turned off. Examples of volatile memories can include random access memories (RAM), dynamic random access memories (DRAM), static random access memories (SRAM), and other forms of volatile memories. Memory <NUM>, in one example, is used by software or applications running on control circuitry <NUM> to temporarily store information during program execution. Memory <NUM>, in some examples, also includes one or more computer-readable storage media. Memory <NUM> can further be configured for long-term storage of information. Memory <NUM> can be configured to store larger amounts of information than volatile memory. In some examples, memory <NUM> includes non-volatile storage elements. Examples of such non-volatile storage elements can include magnetic hard discs, optical discs, floppy discs, flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.

User interface <NUM> can be any graphical and/or mechanical interface that enables user interaction with controller <NUM>. For example, user interface <NUM> can implement a graphical user interface displayed at a display device of user interface <NUM> for presenting information to and/or receiving input from a user. User interface <NUM> can include graphical navigation and control elements, such as graphical buttons or other graphical control elements presented at the display device. User interface <NUM>, in some examples, includes physical navigation and control elements, such as physically actuated buttons or other physical navigation and control elements. In general, user interface <NUM> can include any input and/or output devices and control elements that can enable user interaction with controller <NUM>.

During operation, the first and second component materials are pumped to applicator <NUM> from fluid tanks 20a, 20b by feed pumps 22a, 22b and proportioner pumps 26a, 26b and are mixed at applicator <NUM> to form the plural component spray material. Flows of the first component material and the second component material to the applicator <NUM> are controlled based on one or more target operating parameters, such as fluid ratio, pressure, and temperature. Controller <NUM> controls operation of motor <NUM> based on at least one of the target operating parameters. The electric current to motor <NUM> provides the pressure output by proportioner pumps 26a, 26b. Controlling the flow based on the target operating parameters generates a spray material having desired material properties, such as porosity, expansion rate, expansion volume, thermal resistivity, etc. Spraying according to the target operating parameters further provides an even spray pattern, fine droplet size, adequate flow, and good mixing. Spraying according to the target operating parameters further prevents excessive overspray, undesirably high flow rates, difficult control, and excessive wear.

Controller <NUM> controls electric signals which can be referred to as current, voltage, or power, to motor <NUM> to cause proportioner pumps 26a, 26b to pump the component materials at the target output parameter (e.g., pressure and/or flow rate). It is understood that a reference to the term "current" can be replaced with a different measure of power such as voltage or the term "power" itself. Controller <NUM> can be configured to operate proportioner pumps 26a, 26b at or below a maximum operating pressure, flow rate, and/or current. Controller <NUM> can control the current provided to motor <NUM> based on parameter data received from downstream sensors 32a, 32b.

To apply the spray material, the user manipulates applicator <NUM> by grasping handle <NUM>. The user depresses trigger <NUM> to cause flow through applicator <NUM> and mixing within mixer <NUM>. The upstream pressures generated by proportioner pumps 26a, 26b drive the component materials through mixer <NUM>, causing mixing of the component materials within mixer <NUM> to form the spray material. The pressures upstream of applicator <NUM> drive the material out through the orifice of applicator <NUM> to cause spraying by applicator <NUM>. As such, proportioner pumps 26a, 26b drive the component materials through mixer <NUM> and generate the spray ejected from applicator <NUM>.

Feed pump 22a draws the first component material from fluid tank 20a and pumps the first component material through feed line 24a to proportioner pump 26a. Upstream sensor 30a generates data regarding one or more operating parameters of the first component material and provides that data to controller <NUM>. Feed pump 22b draws the second component material from fluid tank 20b and pumps the second component material through feed line 24b to proportioner pump 26b. Upstream sensor 30b generates data regarding one or more operating parameters of the second component material and provides that data to controller <NUM>.

Electric current is provided to motor <NUM> to cause rotation of the rotor of motor <NUM>. The rotor drives linear displacement of the fluid displacement members of proportioner pumps 26a, 26b, as discussed in more detail below. Motor <NUM> simultaneously drives proportioner pumps 26a, 26b, causing proportioner pumps 26a, 26b to simultaneously pump the first and second component materials downstream to applicator <NUM>. Proportioner pumps 26a, 26b can be double displacement pumps, such that proportioner pumps 26a, 26b output fluid during both strokes of a pump cycle. Controller <NUM> controls the electric current flow to motor <NUM> to control pumping by proportioner pumps 26a, 26b and control the downstream pressure generated by proportioner pumps 26a, 26b. Downstream sensors 32a, 32b generate parameter data regarding the individual component material in each of supply lines 28a, 28b, respectively. Controller <NUM> can adjust the current provided to motor <NUM> based on the parameter data received from one or both of downstream sensors 32a, 32b to maintain the downstream operating parameter at the target spray level for that parameter.

Primary heaters 35a, 35b increase the temperatures of the materials emitted by proportioner pumps 26a, 26b. The component materials are pumped downstream through supply lines 28a, 28b between proportioner pumps 26a, 26b and applicator <NUM>. Heated portion <NUM> maintains the temperature of the materials flowing through supply lines 28a, 28b at temperatures above ambient. Heating the component materials reduces the viscosity of the component materials and enhances mixing to cause the formation of desired characteristics in the spray material. The first and second component materials combine within mixer <NUM> of applicator <NUM> to form the spray material that is sprayed from applicator <NUM> onto the substrate.

The user can depress and release trigger <NUM> multiple times during any spray job. The user releasing trigger <NUM> deadheads proportioner pumps 26a, 26b, meaning that the flowpaths through supply lines 28a, 28b are closed and material is not flowing downstream from proportioner pumps 26a, 26b. Controller <NUM> is configured to control current flow to motor <NUM> both when proportioner pumps 26a, 26b are actively pumping and when proportioner pumps 26a, 26b are stalled.

In a stalled state, the rotor can apply torque to power proportioner pumps 26a, 26b, but the rotor does not rotate about its axis such that proportioner pumps 26a, 26b are not displacing material. The fluid displacement members of proportioner pumps 26a, 26b apply force to the component materials with the rotor applying torque, generating downstream pressure within supply lines 28a, 28b without displacing axially along pump axis PA-PA (<FIG>). The check valves of proportioner pumps 26a, 26b further maintain the pressure in supply lines 28a, 28b. Proportioner pumps 26a, 26b can continue to apply pressure to the component materials when proportioner pumps 26a, 26b are stalled. Proportioner pumps 26a, 26b resume pumping once the downstream pressure falls below the pumping pressure, such as when the user actuates trigger <NUM> and resumes spraying. Continuing to apply power to motor <NUM> during a stall provides quick reaction when the user resumes spraying, as proportioner pumps 26a, 26b can begin pumping as soon as the downstream pressure drops, increasing spray efficiency and avoiding undesired pressure loss. In some examples, controller <NUM> can reduce or stop current flow to motor <NUM> while in the stalled state, to conserve energy and reduce heat generation. Controller <NUM> can increase the current to cause proportioner pumps 26a, 26b to resume pumping at the target operating current based on downstream sensors 32a, 32b indicating a drop in the downstream pressure.

System <NUM> provides significant advantages. Controller <NUM> can precisely control the pressure output by proportioner pumps 26a, 26b by controlling current flow to motor <NUM>. The user can control the downstream pressure by simply setting a target spray pressure. Controller <NUM> controls operation of motor <NUM> based on feedback from downstream sensor 32a, 32b to achieve the target spray pressure. As such, unlike a hydraulic or pneumatic drive, the user is not required to adjust the pressure at the motor such as by a series of knobs to set the downstream pressure. Instead, controller <NUM> adjusts the current flow to motor <NUM> to maintain the desired spray parameter. Motor <NUM> simultaneously drives the fluid displacement members of each proportioner pump 26a, 26b to provide simultaneous pumping by proportioner pumps 26a, 26b. The simultaneous pumping provides the individual component materials downstream according to the desired ratio. Motor <NUM> further causes proportioner pumps 26a, 26b to generate the downstream spray pressure while in a stalled state. Maintaining the downstream pressure in the stalled state causes quick reaction when the user resumes spraying, avoiding sputtering and other undesirable spray characteristics that can occur due to pressure drops.

<FIG> is an isometric view of proportioner <NUM>. <FIG> is an enlarged view of a pumping assembly formed by motor <NUM> and proportioner pumps 26a, 26b shown in <FIG> and <FIG> are discussed together. Proportioner <NUM>, motor <NUM>, controller <NUM>, user interface <NUM>, and proportioner pumps 26a, 26b are shown. Frame <NUM> supporting components of proportioner <NUM> includes base portion <NUM>, vertical portion <NUM>, pump supports <NUM>, and motor bracket <NUM>. Housing <NUM>, first axial end <NUM>, and second axial end <NUM> of motor <NUM> are shown. Proportioner pumps 26a, 26b respectively include inlet housings 64a, 64b; outlet housings 66a, 66b; pump cylinders 68a, 68b; and pistons 70a, 70b. Pump supports <NUM> include inner rods <NUM> and outer rods <NUM>. Screw <NUM> is shown and includes first end <NUM> and second end <NUM>. Anti-rotation element <NUM> is shown.

Proportioner <NUM> is configured for use in a plural component pumping system, such as system <NUM> (<FIG>). The plural component pumping system can be utilized to generate and apply spray foam, among other options. Proportioner <NUM> supports control components of the system and supports pumping components of the system.

Frame <NUM> supports various components of proportioner <NUM> and the system. Base portion <NUM> supports other components of proportioner <NUM>. Base portion <NUM> rests on a support surface, such as the ground or the bed of a truck. Base portion <NUM> can be fixed or not fixed to the support surface. Proportioner <NUM> can be moved between job sites and to different locations within a single job site. Vertical portion <NUM> extends generally vertically from base portion <NUM>.

Motor <NUM> is fixed to frame <NUM> such that motor <NUM> is fixed relative to pump axis PA-PA during operation. Motor bracket <NUM> is fixed to housing <NUM> and frame <NUM>. Motor bracket <NUM> fixes motor <NUM> relative frame <NUM> and aligns motor <NUM> on pump axis PA-PA. Motor bracket <NUM> can be formed from one or more components supporting motor <NUM> relative to frame <NUM>. For example, motor bracket <NUM> can include plates connected motor <NUM> and frame <NUM>. In the example shown, motor bracket <NUM> includes a first plate disposed at first axial end <NUM> of motor <NUM> and a second plate disposed at second axial end <NUM> of motor <NUM>.

Proportioner pump 26a extends axially from first axial end <NUM> of motor <NUM>. Proportioner pump 26a extends in first axial direction AD1 from motor <NUM>. Proportioner pump 26b extends axially from second axial end <NUM> of motor <NUM>. Proportioner pump 26b extends in second axial direction AD2 from motor <NUM>. Proportioner pumps 26a, 26b are disposed coaxially with motor <NUM> on pump axis PA-PA. Proportioner pumps 26a, 26b extend horizontally from motor <NUM>. Motor <NUM> is disposed axially between proportioner pumps 26a, 26b.

Proportioner pumps 26a, 26b are supported by frame <NUM> and motor <NUM>. Inner rods <NUM> extend between motor <NUM> and support plates <NUM> to support proportioner pumps 26a, 26b relative motor <NUM>. Outlet housings 66a, 66b are connected to support plates <NUM>. One or both of support plates <NUM> and outlet housings 66a, 66b can be fixed to frame <NUM>, such as by fixing to vertical portion <NUM>. In some examples, a support plate <NUM> is integrated into and formed with each outlet housing 66a, 66b. Pump cylinders 68a, 68b extend axially between outlet housings 66a, 66b and inlet housings 64a, 64b, respectively. Outer rods <NUM> extend between outlet housings 66a, 66b and inlet housings 64a, 64b and are disposed around pump cylinders 68a, 68b. Proportioner pumps 26a, 26b are cantilevered with inlet housings 64a, 64b forming the free ends of cantilevered proportioner pumps 26a, 26b.

Screw <NUM> is disposed coaxially with motor <NUM> on pump axis PA-PA and extends axially through motor <NUM>. Screw <NUM> is driven linearly along pump axis PA-PA by rotation of the rotor, as discussed in more detail below. Piston 70a of proportioner pump 26a is connected to first end <NUM> of screw <NUM>, and piston 70b is of proportioner pump 26b is connected to second end <NUM> of screw <NUM>. Reciprocation of screw <NUM> drives pistons 70a, 70b through respective pump cycles to cause pumping of the component materials.

Anti-rotation element <NUM> engages inner rods <NUM> to prevent screw <NUM> from rotating about axis PA-PA during operation. In the example shown, anti-rotation element <NUM> engages two of inner rods <NUM>. In the example shown, anti-rotation element is a clamshell formed from multiple components extending around and engaging inner rods <NUM>. Anti-rotation element <NUM> can be connected to reciprocate with screw <NUM> and pistons 70a, 70b along pump axis PA-PA. In some examples, anti-rotation element <NUM> is disposed on one axial side of motor <NUM>. As such, motor <NUM> can be disposed axially between one of proportioner pumps 26a, 26b and anti-rotation element <NUM>.

During operation, motor <NUM> drives pistons 70a, 70b of each proportioner pump 26a, 26b through respective pump cycles to pump first and second component materials. The first and second component materials are different materials configured to combine to form a plural component spray material having desired material properties, such as a spray foam. The pistons 70a, 70b are connected to motor <NUM> by screw <NUM> and driven axially by motor <NUM>. Pistons 70a, 70b of proportioner pumps 26a, 26b simultaneously translate in the first axial direction AD1 and in the second axial direction AD2.

<FIG> is a cross-sectional view a cross-sectional view taken along line <NUM>-<NUM> in <FIG> showing proportioner pumps 26a, 26b at the end of a stroke in first axial direction AD1. <FIG> is a cross-sectional view taken along line <NUM>-<NUM> in <FIG> showing proportioner pumps 26a, 26b at an end of a stroke in second axial direction AD1. Motor <NUM>; proportioner pumps 26a, 26b; frame <NUM>, motor bracket <NUM>, and drive mechanism <NUM> are shown. Motor <NUM> includes motor housing <NUM>, end nut <NUM>, first axial end <NUM>, and second axial end <NUM>, stator <NUM>, and rotor <NUM>. Rotor <NUM> includes rotor body <NUM> and permanent magnet array <NUM>. Proportioner pumps 26a, 26b respectively include inlet housings 64a, 64b; outlet housings 66a, 66b; pump cylinders 68a, 68b; pistons 70a, 70b; transfer tubes 92a, 92b; inlet valves 94a, 94b; outlet valves 96a, 96b; inlets 98a, 98b; outlets 100a, 100b; pumping chambers 102a, 102b; and transfer passages 104a, 104b. Drive mechanism <NUM> includes screw <NUM>, drive nut <NUM>, and rolling elements <NUM>. Screw <NUM> includes first end <NUM>, second end <NUM>, and screw thread <NUM>. Drive nut <NUM> includes nut thread <NUM>.

Motor <NUM> is an electric motor having stator <NUM> and rotor <NUM>. Stator <NUM> includes armature windings (not shown) and rotor <NUM> includes permanent magnet array <NUM>. Rotor <NUM> is configured to rotate about pump axis PA-PA in response to power through stator <NUM>. Motor <NUM> can be a reversible motor in that stator <NUM> can cause rotor <NUM> to rotate in either of two rotational directions. Rotor <NUM> is connected to the pistons 70a, 70b via drive mechanism <NUM>, which receives a rotary output from rotor <NUM> and provides a linear input to pistons 70a, 70b.

Drive nut <NUM> is disposed within and connected to rotor <NUM> to rotate with rotor <NUM> about pump axis PA-PA. Drive nut <NUM> is mounted to bearings 112a, 112b at opposite axial ends of drive nut <NUM>. In some examples, bearings 112a, 112b are configured to react both rotational and thrust loads. In some examples, bearings 112a, 112b are roller bearings. For example, bearings 112a, 112b can be tapered roller bearings, among other options. An outer race 113a of bearing 112a interfaces with rotor body <NUM> and housing <NUM>. For example, outer race 113a can interface with a shoulder formed on each of rotor body <NUM> and housing <NUM>. An inner race 115a of bearing 112a interfaces with drive nut <NUM> and can interface with a portion of rotor body <NUM>. For example, inner race 115a can interface with a shoulder formed on drive nut <NUM>. An outer race 113b of bearing 112b interfaces with rotor body <NUM> and end nut <NUM>. For example, outer race 113b can interface with a shoulder formed on rotor body <NUM> and a shoulder formed on end nut <NUM>. An inner race 115b of bearing 112b interfaces with drive nut <NUM> and can interface with a portion of rotor body <NUM>. For example, inner race 115b can interface with a shoulder formed on drive nut <NUM>. End nut <NUM> is mounted to housing <NUM> and interfaces with bearing 112b. End nut <NUM> preloads each of bearings 112a, 112b. End nut <NUM> can be removably mounted to housing <NUM>, such as by interfaced threading. Screw <NUM> extends through drive nut <NUM> and is connected to each piston 70a, 70b. Screw <NUM> reciprocates along pump axis PA-PA to drive pistons 70a, 70b through respective pump strokes.

Rolling elements <NUM> are disposed between rotor <NUM> and screw <NUM>. More specifically, rolling elements <NUM> are disposed between drive nut <NUM> and screw <NUM>. Rolling elements <NUM> can be of any configuration suitable for causing linear displacement of screw <NUM> based on rotation of drive nut <NUM>. For example, rolling elements <NUM> can be formed by balls or elongate rollers, among other options. Rolling elements <NUM> engage screw thread <NUM> to drive linear displacement of screw <NUM> along pump axis PA-PA. In some examples, rolling elements <NUM> are disposed in raceways formed by opposing nut thread <NUM> and screw thread <NUM>. Rolling elements <NUM> are disposed circumferentially about screw <NUM> and evenly arrayed around screw <NUM>. Rolling elements <NUM> separate drive nut <NUM> and screw <NUM> such that drive nut does not directly contact screw <NUM>. Instead, both drive nut <NUM> and screw <NUM> ride on rolling elements <NUM>. Rolling elements <NUM> maintain gap <NUM> (<FIG>) between drive nut <NUM> and screw <NUM>.

Proportioner pumps 26a, 26b are disposed on opposite axial sides of motor <NUM>. Proportioner pump 26a extends in first axial direction AD1 away from motor <NUM> and proportioner pump 26b extends in second axial direction AD2 away from motor <NUM>. Proportioner pump 26a is substantially similar to proportioner pump 26b. Piston 70a extends through outlet housing 66a and into pumping chamber 102a. Piston 70a is disposed on pump axis PA-PA and is configured to reciprocate on pump axis PA-PA. Piston 70b is disposed on pump axis PA-PA and is configured to reciprocate on pump axis PA-PA. Piston 70b is coaxial with rotor <NUM>. Piston 70a is coaxial with piston 70b. It is understood that proportioner pumps 26a, 26b can be of different configurations to provide the first and second component materials at a desired ratio. For example, if a <NUM>:<NUM> ratio of the first component material to the second component material is desired, then proportioner pump 26a can be sized to have twice the displacement of proportioner pump 26b. Proportioner pumps 26a, 26b can be sized in any desired manner to provide the component materials at the desired ratio. In some examples, bypass valves associated with proportioner pumps 26a, 26b can be opened to allow a portion of the component material flow to recirculate to fluid tanks 20a, 20b (<FIG> and <FIG>), thereby allowing the user to set a downstream ratio.

Piston 70a is connected to first end <NUM> of screw <NUM>. In the example shown, piston 70a is connected to first end <NUM> by pin 118a extending through screw <NUM> and piston 70a. A portion of piston 70a extends into a bore formed in first end <NUM> of screw <NUM>. As such, screw <NUM> at least partially axially overlaps with piston 70a. The portion of screw <NUM> axially overlapping piston 70a can be disposed radially around piston 70a. Piston 70b is connected to second end <NUM> of screw <NUM>. In the example shown, piston 70b is connected to second end <NUM> by pin 118b extending through screw <NUM> and piston 70b. A portion of piston 70b extends into a bore formed in second end <NUM> of screw <NUM>. As such, screw <NUM> at least partially axially overlaps with piston 70b. The portion of screw <NUM> axially overlapping piston 70b can be disposed radially around piston 70b.

Pin 118b can further secure anti-rotation element <NUM> at the interface between piston 70b and screw <NUM>. Anti-rotation element <NUM> engages pump support <NUM> to prevent rotation of screw <NUM>. Anti-rotation element <NUM> can translate axially with screw <NUM>.

While pistons 70a, 70b are described as connecting to screw <NUM> by pinned connections, it is understood that pistons 70a, 70b can connect to screw <NUM> in any desired manner, such as by screwing into first end <NUM> and second end <NUM> of screw <NUM> to engage with screw <NUM> by interfaced threading. Drive mechanism <NUM> is directly connected to rotor <NUM> and pistons 70a, 70b are directly driven by drive mechanism <NUM>. As such, motor <NUM> directly drives pistons 70a, 70b without the presence of intermediate gearing, such as speed reduction gearing.

Piston 70a is coaxial with rotor <NUM>. Piston head 120a divides pumping chamber 102a into an upstream chamber 122a and a downstream chamber 124a. Inlet valve 94a is disposed in inlet housing 64a. Inlet valve 94a is a one-way valve configured to allow fluid to flow into inlet housing 64a and upstream chamber 122a while preventing retrograde flow through inlet 98a. Inlet valve 94a is a normally closed valve. Outlet valve 96a is disposed in inlet housing 64a. Outlet valve 96a is disposed between upstream chamber 122a and transfer passage 104a. Outlet valve 96a is a one-way valve configured to allow fluid to flow from upstream chamber 122a to transfer passage 104a while preventing retrograde flow to upstream chamber 122a. Outlet valve 96a is a normally closed valve.

Transfer tube 92a extends between and is mounted to each of inlet housing 64a and outlet housing 66a. Transfer tube 92a defines transfer passage 104a. While transfer tube 92a is described as a separate component, it is understood that transfer tube 92a can be integrated into pump cylinder 68a such that each of transfer passage 104a and pumping chamber 102a are defined by pump cylinder 68a. Transfer tube 92a is spaced radially from pump cylinder 68a. Transfer tube 92a is disposed downstream of outlet valve 96a. Transfer tube 92a extends generally axially. Transfer passage 104a is spaced radially from pump axis PA-PA. Transfer passage 104a provides a flowpath for fluid to flow to downstream chamber 124a.

Each of inlet valve 94a and outlet valve 96a can be oriented transverse to pump axis PA-PA such that fluid flow through each of inlet valve 94a and outlet valve 96a is along axes transverse to pump axis PA-PA. In some examples, one or both of inlet valve 94a and outlet valve 96a are disposed orthogonal to pump axis PA-PA. In some examples, both inlet valve 94a and outlet valve 96a are disposed on the same axial side of piston head 120a, disposed on the same axial side of both upstream chamber 122a and downstream chamber 124a, and/or configured to remain stationary relative to piston head 120a during operation. In some examples, neither inlet valve 94a nor outlet valve 96a overlap axially with piston 70a at any point along the stroke of piston 70a. Piston 70a can be disposed axially between motor <NUM> and inlet valve 94a throughout a pump cycle of piston 70a. Piston 70a can be disposed axially between motor <NUM> and outlet valve 96a throughout a pump cycle of piston 70a.

Piston 70b extends through outlet housing 66b and into pumping chamber 102b. Piston head 120b divides pumping chamber 102b into an upstream chamber 122b and a downstream chamber 124b. Inlet valve 94b is disposed in inlet housing 64b. Inlet valve 94b is a one-way valve configured to allow fluid to flow into inlet housing 64b and upstream chamber 122b while preventing retrograde flow through inlet 98b. Inlet valve 94b is a normally closed valve. Outlet valve 96b is disposed in inlet housing 64b. Outlet valve 96b is disposed between upstream chamber 122b and transfer passage 104b. Outlet valve 96b is a one-way valve configured to allow fluid to flow from upstream chamber 122b to transfer passage 104b while preventing retrograde flow to upstream chamber 122b. Outlet valve 96b is a normally closed valve.

Transfer tube 92b extends between and is mounted to each of inlet housing 64b and outlet housing 66b. Transfer tube 92b defines transfer passage 104b. While transfer tube 92b is described as a separate component, it is understood that transfer tube 92b can be integrated into pump cylinder 68b such that each of transfer passage 104b and pumping chamber 102b are defined by pump cylinder 68b. Transfer tube 92b is spaced radially from pump cylinder 68b. Transfer tube 92b is disposed downstream of outlet valve 96b. Transfer tube 92b extends generally axially. Transfer passage 104b is spaced radially from pump axis PA-PA. Transfer passage 104b provides a flowpath for fluid to flow to downstream chamber 124b.

In the example shown, each of inlet valve 94b and outlet valve 96b are oriented transverse to pump axis PA-PA, such that fluid flow through each of inlet valve 94b and outlet valve 96b is along axes transverse to pump axis PA-PA. In some examples, one or both of inlet valve 94b and outlet valve 96b are disposed orthogonal to pump axis PA-PA. Each of inlet valve 94b and outlet valve 96b are disposed on the same axial side of piston head 120b. In some examples, neither of inlet valve 94b and outlet valve 96b overlap axially with piston 70b throughout operation. In some examples, neither of inlet valve 94b and outlet valve 96b overlap axially with piston 70b at any point during operation. Piston 70b can be disposed axially between motor <NUM> and inlet valve 94b throughout a pump cycle of piston 70b. Piston 70b can be disposed axially between motor <NUM> and outlet valve 96b throughout a pump cycle of piston 70b.

During operation, current is provided to stator <NUM> to drive rotation of rotor <NUM> about pump axis PA-PA. The rotation of rotor <NUM> drives rotation of drive nut <NUM> about pump axis PA-PA due to the connection between drive nut <NUM> and rotor <NUM>. Rolling elements <NUM> exert forces on screw <NUM> at screw thread <NUM> due to the rotation of drive nut <NUM> to cause axial displacement of screw <NUM> along pump axis PA-PA. Rotor <NUM> can be driven in a first rotational direction to drive screw <NUM> in first axial direction AD <NUM>. Rotor <NUM> can be driven in a second rotational direction opposite the first rotational direction to drive screw <NUM> in second axial direction AD2 opposite first axial direction AD1.

By way of example, a full pump cycle is discussed in more detail. Starting from the position shown in <FIG>, motor <NUM> is powered and rotor <NUM> rotates in a first rotational direction about pump axis PA-PA. Rotor <NUM> causes drive mechanism <NUM> to rotate in the first rotational direction, thereby displacing screw <NUM> in first axial direction AD1. Screw <NUM> drives each of pistons 70a, 70b in the first axial direction AD1 from the positions shown in <FIG> to the positions shown in <FIG>. Piston 70a is driven through a first stroke of the pump cycle of proportioner pump 26a and piston 70b is driven through a second stroke of the pump cycle of proportioner pump 26b.

Screw <NUM> drives piston 70a axially through pumping chamber 102a during the first stroke of proportioner pump 26a, reducing the volume of upstream chamber 122a, increasing pressure in upstream chamber 122a, increasing the volume of downstream chamber 124a, and decreasing pressure in downstream chamber 124a. Inlet valve 94a is normally closed and the increased pressure in upstream chamber 122a further maintains inlet valve 94a in the closed state. The increased pressure in upstream chamber 122a and the decreased pressure in downstream chamber 124a cause outlet valve 96a to shift to an open state. The material in upstream chamber 122a is driven through outlet valve 96a and transfer passage 104a. A portion of the material flows downstream from proportioner pump 26a through outlet 100a and another portion flows into downstream chamber 124a to prime proportioner pump 26a for a return stroke.

Screw <NUM> drives piston 70b axially through pumping chamber 102b during the second stroke of proportioner pump 26b, increasing the volume of upstream chamber 122b, decreasing pressure in upstream chamber 122b, decreasing the volume of downstream chamber 124b, and increasing pressure in downstream chamber 124b. The decreased pressure in upstream chamber 122b generates suction that causes inlet valve 94b to shift to an open state. With inlet valve 94b in the open state, material is drawn into upstream chamber 122b through inlet 98b and inlet valve 94b, priming proportioner pump 26b for a return stroke. Outlet valve 96b is normally closed and the increased pressure in downstream chamber 124b maintains outlet valve 96b in the closed state. The material in downstream chamber 124b is driven downstream from proportioner pump 26b through outlet 100b.

After completing the stroke in the first axial direction AD1, rotor <NUM> displaces screw <NUM> in second axial direction AD2. Screw <NUM> drives each of pistons 70a, 70b in the second axial direction AD2 from the positions shown in <FIG> to the positions shown in <FIG>. Piston 70a is driven through a second stroke of the pump cycle of proportioner pump 26a and piston 70b is driven through a first stroke of the pump cycle of proportioner pump 26b. The second stroke of proportioner pump 26a is substantially similar to the second stroke of proportioner pump 26b. Piston 70a draws material into upstream chamber 122a through inlet valve 94a and pumps material downstream from downstream chamber 124a through outlet 100a. The first stroke of proportioner pump 26b is substantially similar to the first stroke of proportioner pump 26a. Piston 70b drives the material from upstream chamber 122b through outlet valve 96b and to transfer passage <NUM>. A portion of the material flows downstream through outlet 100b and another portion flows into downstream chamber 124b to prime proportioner pump 26b. Each one of proportioner pumps 26a, 26b is a double displacement pump in that each of proportioner pumps 26a, 26b pump the material downstream through the respective outlets 100a, 100b during each stroke of the respective pump cycles.

Motor <NUM> driving proportioner pumps 26a, 26b provides significant advantages. Motor <NUM> links pistons 70a, 70b for simultaneous reciprocation causing proportioner pumps 26a, 26b to simultaneously output fluid. The pressures output by proportioner pumps 26a, 26b are based on the current provided to motor <NUM>. Motor <NUM> provides precision pressure control by controlling the current provided to motor <NUM>. Anti-rotation element <NUM> prevents rotation of screw <NUM> about pump axis PA-PA, causing reciprocation of screw <NUM> relative motor <NUM>.

<FIG> is a cross-sectional view of motor <NUM> and proportioner pumps 26a, 26b. <FIG> is an enlarged view of detail B in <FIG>. <FIG> is an enlarged view of detail C in <FIG>. <FIG> will be discussed together. Motor <NUM>; proportioner pumps 26a, 26b; motor bracket <NUM>, and drive mechanism <NUM>' are shown. Motor <NUM> includes motor housing <NUM>, end nut <NUM>, first axial end <NUM>, and second axial end <NUM>, stator <NUM>, and rotor <NUM>. Rotor <NUM> includes rotor body <NUM> and permanent magnet array <NUM>. Proportioner pumps 26a, 26b respectively include inlet housings 64a, 64b; outlet housings 66a, 66b; pump cylinders 68a, 68b; pistons 70a, 70b; transfer tubes 92a, 92b; inlet valves 94a, 94b; outlet valves 96a, 96b; inlets 98a, 98b; outlets 100a, 100b; pumping chambers 102a, 102b; and transfer passages 104a, 104b.

Drive mechanism <NUM>' includes drive shaft <NUM>; screws 136a, 136b; driven nuts 138a, 138b; and rolling elements <NUM>. Screws 136a, 136b respectively include screw threads 116a, 116b; inner screw ends 140a, 140b; and outer screw ends 142a, 142b. Driven nuts 138a, 138b respectively include nut threads 114a, 114b; inner nut ends 144a, 144b; outer nut ends 146a, 146b; and nut cavities 148a, 148b. Drive shaft <NUM> includes first shaft end <NUM> and second shaft end <NUM>.

Motor <NUM> is an electric motor having stator <NUM> and rotor <NUM>. Stator <NUM> includes armature windings (not shown) and rotor <NUM> includes permanent magnet array <NUM>. Rotor <NUM> is configured to rotate about pump axis PA-PA in response to power through stator <NUM>. Motor <NUM> is a reversible motor in that stator <NUM> can cause rotor <NUM> to rotate in either of two rotational directions. Rotor <NUM> is connected to the pistons 70a, 70b by drive mechanism <NUM>'. Drive mechanism <NUM>' receives a rotary output from rotor <NUM> and provides a linear input to pistons 70a, 70b.

Drive shaft <NUM> is disposed within and connected to rotor <NUM> to rotate with rotor <NUM> about pump axis PA-PA. Drive shaft <NUM> can be connected to rotor body <NUM> in any desired manner, such as by fasteners, adhesive, or press-fitting, among other options. In some example, drive shaft <NUM> can be formed as part of rotor body <NUM>. For example, rotor body <NUM> can include axial projections that screws 136a, 136b are connected to.

Drive shaft <NUM> is mounted to bearings 112a, 112b at opposite axial ends of drive shaft <NUM>. In some examples, bearings 112a, 112b are configured to react both rotational and thrust loads. In some examples, bearings 112a, 112b are roller bearings. For example, bearings 112a, 112b can be tapered roller bearings, among other options. An outer race 113a of bearing 112a interfaces with rotor body <NUM> and housing <NUM>. For example, outer race 113a can interface with a shoulder formed on each of rotor body <NUM> and housing <NUM>. An inner race 115a of bearing 112a interfaces with drive shaft <NUM> and can interface with a portion of rotor body <NUM>. For example, inner race 115a can interface with a shoulder formed on drive shaft <NUM>. An outer race 113b of bearing 112b interfaces with rotor body <NUM> and end nut <NUM>. For example, outer race 113b can interface with a shoulder formed on rotor body <NUM> and a shoulder formed on end nut <NUM>. An inner race 115b of bearing 112b interfaces with drive shaft <NUM> and can interface with a portion of rotor body <NUM>. For example, inner race 115b can interface with a shoulder formed on drive shaft <NUM>. End nut <NUM> is mounted to housing <NUM> and interfaces with bearing 112b. End nut <NUM> preloads each of bearings 112a, 112b. End nut <NUM> can be removably mounted to housing <NUM>, such as by interfaced threading. Drive shaft <NUM> extends axially beyond the axial ends of rotor <NUM>. The axial end of drive shaft <NUM> extending in second axial direction AD2 extends through driven nut <NUM>.

Screw 136a is connected to first shaft end <NUM> of drive shaft <NUM>. Screw 136b is connected to second shaft end <NUM> of drive shaft <NUM>. Motor <NUM> is disposed axially between screw 136a and screw 136b. Screw 136a, drive shaft <NUM>, and screw 136b are disposed coaxially on pump axis PA-PA. Screws 136a, 136b are fixed to drive shaft <NUM> such that screws 136a, 136b rotate with drive shaft <NUM>. Screws 136a, 136b are configured to rotate on pump axis PA-PA. Driven nuts 138a, 138b are connected to screws 136a, 136b, respectively, to provide linear driving force to pistons 70a, 70b. Screws 136a, 136b can be substantially similar to screw <NUM> (best seen in <FIG> and <FIG>), except screws 136a, 136b rotate during operation to form the rotating components of drive mechanism <NUM>' and provide the rotational output from rotor <NUM>. Drive nuts 138a, 138b can be substantially similar to drive nut <NUM> (best seen in <FIG> and <FIG>), except driven nuts 138a, 138b do not rotate about pump axis PA-PA and are instead driven linearly along pump axis PA-PA due to the rotation of screws 136a, 136b. As such, driven nuts 138a, 138b form the linear drive elements of drive mechanism <NUM>' to provide the linear driving force to pistons 70a, 70b.

Screw 136a extends in first axial direction AD1 from drive shaft <NUM>. Inner screw end 140a is connected to drive shaft <NUM>. Inner screw end 140a can be connected to drive shaft <NUM> in any desired manner, such as by fasteners, adhesive, or press-fitting, among other options. Outer screw end 142a is disposed at an opposite axial end of screw 136a from inner screw end 140a. Screw thread 116a is formed on screw 136a.

Driven nut 138a is operably connected to screw 136a such that rotation of screw 136a causes linear displacement of driven nut 138a along pump axis PA-PA. Screw 136a is configured to rotate relative to driven nut 138a. Driven nut 138a is disposed coaxially with screw 136a on pump axis PA-PA. Inner nut end 144a extends around screw 136a and includes nut thread 114a formed on a radially inner face of driven nut 138a. While nut thread 114a is shown as extending a portion of the axial length of driven nut 138a, it is understood that nut thread 114a can extend any desired amount of the axial length of driven nut 138a, including up to the full axial length of driven nut 138a. Outer nut end 146a is connected to piston 70a. In the example shown, outer nut end 146a is connected to piston 70a by a pinned connection. It is understood, however, that driven nut 138a and piston 70a can be connected in any manner suitable for transferring an axial driving force from driven nut 138a to piston 70a, such as by adhesive, interfaced threading, or press-fitting, among other options. In some examples, driven nut 138a can be integrally formed with piston 70a. Nut cavity 148a is formed within driven nut 138a. In some examples, nut cavity 148a is open at each axial end of driven nut 138a. Piston 70a can extend into nut cavity 148a to connect to driven nut 138a. Outer screw end 142a can translate within nut cavity 148a during operation. In some examples, outer screw end 142a is free within nut cavity 148a such that screw 136a does not contact the walls defining nut cavity 148a.

Rolling elements <NUM> can be disposed between driven nut 138a and screw 136a. Rolling elements <NUM> can be of any configuration suitable for causing linear displacement of driven nut 138a based on rotation of screw 136a. For example, rolling elements <NUM> can be formed by balls or elongate rollers, among other options. Rolling elements <NUM> engage nut thread 114a to drive linear displacement of driven nut 138a along pump axis PA-PA. In some examples, rolling elements <NUM> are disposed in raceways formed by opposing nut thread 114a and screw thread 116a. Rolling elements <NUM> are disposed circumferentially about screw 136a and evenly arrayed around screw 136a. Rolling elements <NUM> separate driven nut 138a and screw 136a such that driven nut does not directly contact screw 136a. Instead, both driven nut 138a and screw 136a ride on rolling elements <NUM>. It is understood that, in some examples, screw thread 116a can directly engage nut thread 114a to drive linear displacement of driven nut 138a and piston 70a. Such examples may not include rolling elements <NUM>.

Screw 136b extends in first axial direction AD2 from drive shaft <NUM>. Inner screw end 140b is connected to drive shaft <NUM>. Inner screw end 140b can be connected to drive shaft <NUM> in any desired manner, such as by fasteners, adhesive, or press-fitting, among other options. Outer screw end 142b is disposed at an opposite axial end of screw 136b from inner screw end 140b. Screw thread 116b is formed on screw 136b.

Driven nut 138b is operably connected to screw 136b such that rotation of screw 136b causes linear displacement of driven nut 138b along pump axis PA-PA. Screw 136b is configured to rotate relative to driven nut 138b. Driven nut 138b is disposed coaxially with screw 136b on pump axis PA-PA. Inner nut end 144b extends around screw 136b and includes nut thread 114b formed on a radially inner face of driven nut 138b. While nut thread 114b is shown as extending a portion of the axial length of driven nut 138b, it is understood that nut thread 114b can extend any desired amount of the axial length of driven nut 138b, including up to the full axial length of driven nut 138b. Outer nut end 146b is connected to piston 70b. In the example shown, outer nut end 146b is connected to piston 70b by a pinned connection. It is understood, however, that driven nut 138b and piston 70b can be connected in any manner suitable for transferring an axial driving force from driven nut 138b to piston 70b, such as by adhesive, interfaced threading, or press-fitting, among other options. In some examples, driven nut 138b can be integrally formed with piston 70b. Nut cavity 148b is formed within driven nut 138b. In some examples, nut cavity 148b is open at each axial end of driven nut 138b. Piston 70b can extend into nut cavity 148b to connect to driven nut 138b. Outer screw end 142b can translate within nut cavity 148b during operation. In some examples, outer screw end 142b is free within nut cavity 148b such that screw 136b does not contact the walls defining nut cavity 148b.

Rolling elements <NUM> can be disposed between driven nut 138b and screw 136b. Rolling elements <NUM> can be of any configuration suitable for causing linear displacement of driven nut 138b based on rotation of screw 136b. For example, rolling elements <NUM> can be formed by balls or elongate rollers, among other options. Rolling elements <NUM> engage nut thread 114b to drive linear displacement of driven nut 138b along pump axis PA-PA. In some examples, rolling elements <NUM> are disposed in raceways formed by opposing nut thread 114b and screw thread 116b. Rolling elements <NUM> are disposed circumferentially about screw 136b and evenly arrayed around screw 136b. Rolling elements <NUM> separate driven nut 138b and screw 136b such that driven nut does not directly contact screw 136b. Instead, both driven nut 138b and screw 136b ride on rolling elements <NUM>. It is understood that, in some examples, screw thread 116b can directly engage nut thread 114b to drive linear displacement of driven nut 138b and piston 70b. Such examples may not include rolling elements <NUM>.

Proportioner pumps 26a, 26b are disposed on opposite axial sides of motor <NUM>. Proportioner pump 26a extends in first axial direction AD1 away from motor <NUM> and proportioner pump 26b extends in second axial direction AD2 away from motor <NUM>. Proportioner pump 26a is substantially similar to proportioner pump 26b. Piston 70a extends through outlet housing 66a and into pumping chamber 102a. Piston 70a is disposed on pump axis PA-PA and is configured to reciprocate on pump axis PA-PA. Piston 70b is disposed on pump axis PA-PA and is configured to reciprocate on pump axis PA-PA. Piston 70b is coaxial with rotor <NUM>. Piston 70a is coaxial with piston 70b. It is understood that proportioner pumps 26a, 26b can be of different configurations to provide the first and second component materials at a desired ratio. As discussed in more detail below, screws 136a, 136b can be of differing configurations to facilitate different flow rates from proportioner pumps 26a, 26b to provide the desired ratio.

During operation, current is provided to stator <NUM> to drive rotation of rotor <NUM> about pump axis PA-PA. The rotation of rotor <NUM> drives rotation of drive shaft <NUM> about pump axis PA-PA due to the connection between drive shaft <NUM> and rotor <NUM>. Rotation of drive shaft <NUM> causes each of screws 136a, 136b to rotate in the same rotational direction as drive shaft <NUM> and rotor <NUM>. Rotation of screw 136a exerts an axial driving force on driven nut 138a to displace driven nut 138a axially along pump axis PA-PA. Driven nut 138a displaces piston 70a through a stroke due to the connection of driven nut 138a and piston <NUM>. Rolling elements <NUM> exert forces on driven nut 138a at nut thread 114a due to the rotation of screw 136a to cause axial displacement of driven nut 138a along pump axis PA-PA. Rotation of screw 136b exerts an axial driving force on driven nut 138b to displace driven nut 138b axially along pump axis PA-PA. Driven nut 138b displaces piston 70b through a stroke due to the connection of driven nut 138b and piston <NUM>. Rolling elements <NUM> exert forces on driven nut 138b at nut thread 114b due to the rotation of screw 136b to cause axial displacement of driven nut 138b along pump axis PA-PA.

In some examples, screws 136a, 136b are configured such that each of pistons 70a, 70b are simultaneously driven in first axial direction AD1 and in second axial direction AD2. For example, each of screws 136a, 136b can have the same of a right-hand or left-hand thread configuration. Rotating screws 136a, 136b with the same handedness in the same rotational direction causes screws 136a, 136b to exert axial forces on driven nuts 138a, 138b in the same axial direction. For example, rotating screw 136a in a first rotational direction can cause driven nut 138a, and thus piston 70a, to displace in first axial direction AD1 and rotating screw 136b in that first rotational direction can cause driven nut 138b, and thus piston 70b, to displace in first axial direction AD1. Rotating screw 136a in a second rotational direction can cause driven nut 138a, and thus piston 70a, to displace in second axial direction AD2 and rotating screw 136b in that second rotational direction can cause driven nut 138b, and thus piston 70b, to displace in second axial direction AD2. Both proportioner pumps 26a, 26b are double displacement pumps, such that each proportioner pump 26a, 26b outputs fluid regardless of the stroke direction.

In some examples, screws 136a, 136b are configured such that pistons 70a, 70b are driven in opposite axial directions relative each other. Screws 136a, 136b can have opposing handedness. For example, one of screws 136a, 136b can have a right-hand thread configuration and the other one of screws 136a, 136b can have a left-hand thread configuration. Rotating screws 136a, 136b with opposing handedness in the same rotational direction causes screws 136a, 136b to exert opposing axial forces on driven nuts 138a, 138b. For example, rotating screw 136a in a first rotational direction can cause driven nut 138a, and thus piston 70a, to displace in first axial direction AD1 and rotating screw 136b in that first rotational direction can cause driven nut 138b, and thus piston 70b, to displace in second axial direction AD2. Rotating screw 136a in a second rotational direction can cause driven nut 138a, and thus piston 70a, to displace in second axial direction AD2 and rotating screw 136b in that second rotational direction can cause driven nut 138b, and thus piston 70b, to displace in first axial direction AD1. Both proportioner pumps 26a, 26b are double displacement pumps, such that each proportioner pump 26a, 26b outputs fluid regardless of the stroke direction.

Screws 136a, 136b can further have the same or differing leads (the axial travel for a single revolution). Screws 136a, 136b can have the same lead to cause the same axial displacement distance of each driven nut 138a, 138b per revolution of rotor <NUM>. Screws 136a, 136b can have differing leads to cause different axial displacement distances for each driven nut 138a, 138b per revolution of rotor <NUM>. For example, screws 136a, 136b can be configured to control the output ratio between proportioner pumps 26a, 26b. Assuming proportioner pumps 26a, 26b are sized to have the same fluid displacement per linear travel of piston 70a, 70b, screws 136a, 136b can have the same lead to cause proportioner pumps 26a, 26b to output fluid according to a <NUM>:<NUM> ratio. One of screws 136a, 136b can have a lead that is half that of the other screw 136a, 136b to cause proportioner pumps 26a, 26b to output fluid according to a <NUM>:<NUM> ratio. The lead ratio between screws 136a, 136b can be any desired ratio to provide the desired output ratio for the pumped fluid, such as <NUM>:<NUM>, <NUM>:<NUM>, <NUM>:<NUM>, <NUM>:<NUM>, or higher. In some examples, the user can modify the pumping system to provide a different ratio by swapping one set of screws 136a, 136b and driven nuts 138a, 138b for one having a different lead, thereby facilitating the same proportioner pumps 26a, 26b outputting fluid at a different output ratio.

Motor <NUM> driving proportioner pumps 26a, 26b provides significant advantages. Motor <NUM> links pistons 70a, 70b for simultaneous reciprocation causing proportioner pumps 26a, 26b to simultaneously output fluid. Screws 136a, 136b can have the same or different handedness to drive pistons 70a, 70b in the same or opposing axial directions. Driving pistons 70a, 70b in opposing axial directions assists in balancing axial pump reaction forces generated during pumping, reducing the axial load on bearings 112a, 112b. Screws 136a, 136b can have different leads to control the output ratio between proportioner pumps 26a, 26b, allowing proportioner pumps 26a, 26b of the same size to output different flows, thereby reducing part counts and facilitating quick and simple changes to change the output ratio. Screws 136a, 136b reciprocate within nut cavities 148a, 148b, thereby providing an axially compact pumping arrangement.

<FIG> is an isometric partial cross-sectional view of drive mechanism <NUM> and rotor <NUM>. Screw <NUM>, drive nut <NUM>, and rolling elements <NUM> of drive mechanism <NUM> are shown. Gap <NUM> is shown. Nut thread <NUM> and screw thread <NUM> are shown. While the discussion of <FIG> is with regard to drive mechanism <NUM>, it is understood that the discussion can apply equally to the interface between screws 136a, 136b (<FIG>) and driven nuts 138a, 138b (<FIG>).

Drive nut <NUM> extends through rotor <NUM> and is disposed coaxially with rotor <NUM>. Drive nut <NUM> is connected to rotor body <NUM> of rotor <NUM> such that drive nut <NUM> rotates about pump axis PA-PA with rotor <NUM>. Nut thread <NUM> is formed on an inner radial surface of drive nut <NUM>. Screw <NUM> extends axially through drive nut <NUM> and is disposed coaxially with rotor <NUM> and drive nut <NUM>. Screw thread <NUM> is formed on an exterior of screw <NUM>.

Rolling elements <NUM> are disposed in raceways formed by screw thread <NUM> and nut thread <NUM>. In the example shown, rolling elements <NUM> are balls. As such, drive mechanism <NUM> can be considered to be a ball screw. Rolling elements <NUM> support screw <NUM> relative drive nut <NUM> such that each of drive nut <NUM> and screw <NUM> ride on rolling elements <NUM>. Rolling elements <NUM> support screw <NUM> relative drive nut <NUM> such that drive nut <NUM> and screw <NUM> are not in contact during operation. Drive nut <NUM> rotates relative to screw <NUM>. Rolling elements <NUM> exert forces on screw <NUM> at screw thread <NUM> due to rotation of drive nut <NUM> to cause axial displacement of screw <NUM> along pump axis PA-PA.

<FIG> is a partial cross-sectional view of drive mechanism <NUM>". Drive mechanism <NUM>" is substantially similar to drive mechanism <NUM> (best seen in <FIG>). Drive mechanism <NUM>" includes screw <NUM>, drive nut <NUM>', rolling elements <NUM>, and ball return <NUM>.

Drive nut <NUM>' surrounds a portion of screw <NUM> and rolling elements <NUM> are disposed radially between drive nut <NUM>' and screw <NUM>. In the example shown, rolling elements <NUM> are balls. As such, drive mechanism <NUM>" can be considered to be a ball screw. Rolling elements <NUM> support drive nut <NUM>' relative screw <NUM> such that drive nut <NUM>' does not contact screw <NUM>. Rolling elements <NUM> are disposed in raceways formed by screw thread <NUM> and nut thread <NUM> (best seen in <FIG>). Ball return <NUM> is configured to pick up rolling elements <NUM> and recirculate the rolling elements <NUM> within the raceway formed by screw thread <NUM> and nut thread <NUM>. Ball return <NUM> can be of any type suitable for circulating rolling elements <NUM>. In some examples, ball return <NUM> is an internal ball return such that rolling elements <NUM> not within raceway pass through the body of drive nut <NUM>'.

<FIG> is an isometric view of drive mechanism <NUM>‴ with a portion of drive nut <NUM>" removed. <FIG> is an isometric view of drive mechanism <NUM>‴ with the body of drive nut <NUM>" removed to show rolling elements <NUM>'. Drive mechanism <NUM>‴ is substantially similar to drive mechanism <NUM>" (<FIG>) and drive mechanism <NUM> (best seen in <FIG>). Drive mechanism <NUM>‴ includes screw <NUM>, drive nut <NUM>", and rolling elements <NUM>'. Drive nut <NUM>" includes drive rings <NUM> and support member <NUM>. Rolling elements <NUM>' include end rollers <NUM> and roller shafts <NUM>.

Drive nut <NUM>" surrounds a portion of screw <NUM> and rolling elements <NUM>' are disposed between drive nut <NUM>" and screw <NUM>. In the example shown, rolling elements <NUM>' are rollers including end rollers <NUM> and roller shafts <NUM>. As such, drive mechanism <NUM>‴ can be considered to be a roller screw. Rolling elements <NUM>' support drive nut <NUM>" relative screw <NUM> such that drive nut <NUM>" does not contact screw <NUM>. Rolling elements <NUM>' are disposed circumferentially and symmetrically about screw <NUM>. Roller shafts <NUM> extend between and connect pairs of end rollers <NUM>. As such, each rolling element <NUM>' can include an end roller <NUM> at a first end of the roller shaft <NUM> and can further include an end roller <NUM> at a second end of the roller shaft <NUM>. Each roller shaft <NUM> includes threading configured to mate with screw thread <NUM> to exert driving force on screw <NUM> by that threaded interface. Each end roller <NUM> includes teeth. End rollers <NUM> extend between and engage drive rings <NUM> at opposite ends of drive nut <NUM>". The teeth of end rollers <NUM> engage the teeth of drive ring <NUM>. The teeth of end rollers <NUM> mesh with the teeth of drive rings <NUM>. End rollers <NUM> can be considered to be planetary gears. End rollers <NUM> do not directly engage with screw <NUM>. Instead, each roller shaft <NUM> includes threading configured to mate with the screw thread to exert driving force on screw <NUM> by that threaded interface. As drive nut <NUM>" rotates, engagement between end rollers <NUM> and drive rings <NUM> causes each rolling element <NUM>' to rotate about its own axis and causes the array of rolling elements <NUM>' to rotate about pump axis PA. Roller shafts <NUM> engage the screw thread and exert an axial driving force on the screw thread to linearly displace screw <NUM> along pump axis PA.

As drive nut <NUM>" rotates, engagement between end rollers <NUM> and drive rings <NUM> causes each rolling element <NUM>' to rotate about its own axis and causes the array of rolling elements <NUM>' to rotate about pump axis PA-PA. Roller shafts <NUM> engage and exert a driving force on screw thread <NUM> to linearly displace screw <NUM>.

<FIG> is an isometric view of system <NUM>. <FIG> is an isometric view of proportioner <NUM>'. <FIG> is an isometric view of proportioner pumps 26a, 26b and motor <NUM> of proportioner <NUM>'. <FIG> will be discussed together. Proportioner <NUM>'; motor <NUM>; controller <NUM>; user interface <NUM>; fluid tanks 20a, 20b; feed pumps 22a, 22b; feed lines 24a, 24b; proportioner pumps 26a, 26b; supply lines 28a, 28b; and applicator <NUM> of system <NUM> are shown. Frame <NUM> supporting components of proportioner <NUM>' includes base portion <NUM>, vertical portion <NUM>, and motor bracket <NUM>. Housing <NUM>, first axial end <NUM>, and second axial end <NUM> of motor <NUM> are shown. Proportioner pumps 26a, 26b respectively include inlet housings 64a, 64b; outlet housings 66a, 66b; pump cylinders 68a, 68b; pistons 70a, 70b; rods <NUM>; and transfer tubes 92a, 92b. Screw <NUM> is shown. Yoke <NUM> and support bracket <NUM> are shown.

System <NUM> can be utilized to generate and apply spray foam, among other options. Proportioner <NUM>' supports control components of the system <NUM> and supports pumping components of the system <NUM>. Proportioner <NUM>' is substantially similar to proportioner <NUM> but with a different arrangement of motor <NUM> and proportioner pumps 26a, 26b.

Frame <NUM> supports various components of proportioner <NUM>' and system <NUM>. Base portion <NUM> supports other components of proportioner <NUM>'. Base portion <NUM> rests on a support surface, such as the ground or the bed of a truck. Base portion <NUM> can be fixed or not fixed to the support surface. Proportioner <NUM>' can be moved between job sites and to different locations within a single job site. Vertical portion <NUM> extends generally vertically from base portion <NUM>.

Motor <NUM> is fixed to frame <NUM> such that motor <NUM> is fixed relative to motor axis MA-MA during operation. Motor bracket <NUM> is fixed to housing <NUM> and frame <NUM>. Motor bracket <NUM> fixes motor <NUM> relative frame <NUM> and aligns motor <NUM> on motor axis MA-MA. Motor bracket <NUM> can be formed from one or more components supporting motor <NUM> relative to frame <NUM>. For example, motor bracket <NUM> can include plates connected motor <NUM> and frame <NUM>.

Proportioner pumps 26a, 26b are disposed on opposite lateral sides of motor <NUM>. Proportioner pumps 26a, 26b are statically connected to motor <NUM> by support bracket <NUM>. Proportioner pumps 26a, 26b are dynamically connected to motor <NUM> by yoke <NUM>.

Proportioner pump 26a is disposed on a first lateral side of motor <NUM> and proportioner pump 26b is disposed on a second axial side of motor <NUM>. Proportioner pump 26a is spaced in first lateral direction LD1 from motor <NUM>. Proportioner pump 26b is spaced in second lateral direction LD2 from motor <NUM>. As such, motor <NUM> is disposed laterally between and bracketed by proportioner pumps 26a, 26b. In the example shown, motor <NUM> axially overlaps with at least a portion of each of inlet housings 64a, 64b, outlet housings 66a, 66b, and pump cylinders 68a, 68b.

Proportioner pumps 26a, 26b extend along axes parallel to motor axis MA-MA. Piston 70a is configured to reciprocate on axis CA-CA and piston 70b is configured to reciprocate on axis DA-DA. Proportioner pumps 26a, 26b can each be spaced the same lateral distance from motor <NUM> or different lateral distances from motor <NUM>. As such, first lateral distance LD1 can be the same as or different from second lateral distance LD2. For example, where proportioner pumps 26a, 26b have different displacements, the lateral spacing between each proportioner pump 26a, 26b and motor <NUM> can vary to change the moment generated between each proportioner pumps 26a, 26b and motor <NUM> and balance the pump reaction forces generated by each proportioner pump 26a, 26b across yoke <NUM>. In the example shown, proportioner pumps 26a, 26b project from a front of proportioner <NUM>'.

Proportioner pumps 26a, 26b are supported by frame <NUM> and motor <NUM>. Proportioner pumps 26a, 26b are connected to support bracket <NUM>. In some examples, each of proportioner pumps 26a, 26b and motor <NUM> are connected to support bracket <NUM>. Outlet housings 66a, 66b are connected to support bracket <NUM>. Pump cylinders 68a, 68b extend axially between outlet housings 66a, 66b and inlet housings 64a, 64b, respectively. Rods <NUM> extend between outlet housings 66a, 66b and inlet housings 64a, 64b and are disposed around pump cylinders 68a, 68b. Proportioner pumps 26a, 26b can be cantilevered.

Screw <NUM> is disposed coaxially with motor <NUM> on motor axis MA-MA. In some examples, screw <NUM> extends through motor <NUM>. Screw <NUM> interfaces with yoke <NUM> to drive yoke <NUM> axially along motor axis MA-MA. Screw <NUM> can be connected to yoke <NUM> in any desired manner, such as by press-fitting, adhesive, or fasteners, among other options. In the example shown, screw <NUM> is driven linearly along motor axis MA-MA by rotation of the rotor, as discussed in more detail above. For example, screw <NUM> can interface with yoke <NUM> and drive yoke <NUM> axially by the axial displacement of screw <NUM>. It is understood that, in some examples, screw <NUM> is rotatably driven on motor axis MA-MA by rotation of the rotor, as discussed in more detail above. For example, yoke <NUM> can include a nut, similar to driven nuts 138a, 138b (<FIG>), mounted to screw <NUM> such that rotation of screw <NUM> causes the nut, and thus yoke <NUM>, to displace axially along motor axis MA-MA.

Piston 70a of proportioner pump 26a is connected to first lateral end 164a of yoke <NUM> and piston 70b of proportioner pump 26b is connected to second lateral end 164b of yoke <NUM>. Pistons 70a, 70b can extend through support bracket <NUM>. Pistons 70a, 70b can be connected to yoke <NUM> in any desired manner, such as by press-fitting, interfaced threading, adhesive, or fasteners, among other options. Reciprocation of yoke <NUM> drives pistons 70a, 70b through respective pump cycles to cause pumping of the component materials.

Screw <NUM> connects with yoke <NUM> at a location laterally between the locations where pistons 70a, 70b connect to yoke <NUM>. In examples where screw <NUM> translates linearly, pistons 70a, 70b and screw <NUM> are rigidly connected to yoke. Pistons 70a, 70b being connected to yoke <NUM> prevents yoke <NUM> from rotating on motor axis MA-MA. Proportioner pumps 26a, 26b and yoke <NUM> thereby form a clocking mechanism to prevent rotation of screw <NUM> about motor axis MA-MA. Screw <NUM> can extend through support bracket <NUM>. Each of screw <NUM> and pistons 70a, 70b extend in first axial direction AD1 to connect to yoke <NUM>. As such each of screw <NUM> and pistons 70a, 70b can extend into the same axial side of yoke <NUM>.

Support bracket <NUM> is disposed axially between motor <NUM> and yoke <NUM>. Support bracket <NUM> is disposed axially between the static components of proportioner pumps 26a, 26b and yoke <NUM>. In the example shown, screw <NUM> extends through a portion central portion of support bracket <NUM> that connects to motor <NUM>. The central portion can be recessed relative to the lateral flanges of support bracket <NUM> that connect to proportioner pumps 26a, 26b. As such, the lateral flanges can be spaced in first axial direction AD1 relative to motor <NUM>.

During operation, motor <NUM> drives pistons 70a, 70b of each proportioner pump 26a, 26b through respective pump cycles to pump first and second component materials. The first and second component materials can be different materials configured to combine to form a plural component spray material having desired material properties, such as a spray foam. The pistons 70a, 70b are connected to motor <NUM> by screw <NUM> and yoke <NUM> and driven axially by motor <NUM>. Pistons 70a, 70b of proportioner pumps 26a, 26b simultaneously translate in the first axial direction AD1 and in the second axial direction AD2. In the example shown, each proportioner pump 26a, 26b simultaneously proceeds through a fill stroke. As such, proportioner pumps 26a, 26b are in-phase, with both proportioner pumps 26a, 26b proceeding through the same stroke of the pump cycle simultaneously. In the example shown, yoke <NUM> moves axially away from motor <NUM> during the fill stroke of each proportioner pump 26a, 26b.

Yoke <NUM> connecting proportioner pumps 26a, 26b to motor <NUM> facilitates a compact arrangement providing a reduced profile for proportioner <NUM>'. Proportioner pumps 26a, 26b axially overlapping with motor <NUM> also facilitates a compact profile. Proportioner pumps 26a, 26b simultaneously proceeding through respective fill strokes provides further advantages. If feed lines 24a, 24b are over-pressurized, such as due to thermal expansion, controller <NUM> can cause motor <NUM> to cause each proportioner pump 26a, 26b to proceed through part or all of the fill strokes to reduce pressure in feed lines 24a, 24b, which reduces the pressure on the inlet checks of proportioner pumps 26a, 26b. In addition, controller <NUM> can be configured to cause motor <NUM> to displace each piston 70a, 70b in second axial direction AD2 and further into cylinders 68a, 68b based on operation being paused or system <NUM> being put into a park mode, such as at the end of a job. For example, user interface <NUM> can include a button associated with the park mode. Driving pistons 70a, 70b in second axial direction AD2 ensures that any wet portions of pistons 70a, 70b are submerged, preventing undesired curing of the component material on those portions of pistons 70a, 70b that are disposed outside of the static portions of proportioner pump 26a, 26b and that can occur due to the component materials being sensitive to air. Proportioner pumps 26a, 26b being in-phase facilitates simultaneous parking of pistons 70a, 70b.

<FIG> an isometric view of system <NUM>. <FIG> is an isometric view of a proportioner <NUM>". <FIG> is an isometric view of proportioner pumps 26a, 26b and motor <NUM> of proportioner <NUM>". <FIG> is a cross-sectional view taken along line B-B in <FIG>. <FIG> is a cross-sectional view taken along line C-C in <FIG>. <FIG> is a cross-sectional view taken along line D-D in <FIG>. <FIG> will be discussed together. Proportioner <NUM>"; motor <NUM>; controller <NUM>; user interface <NUM>; fluid tanks 20a, 20b; feed pumps 22a, 22b; feed lines 24a, 24b; proportioner pumps 26a, 26b; supply lines 28a, 28b; and applicator <NUM> of system <NUM> are shown. Frame <NUM> supports components of proportioner <NUM>" and includes base portion <NUM>, vertical portion <NUM>, pump supports <NUM>, and motor bracket <NUM>. Housing <NUM>, first axial end <NUM>, second axial end <NUM>, stator <NUM>, and rotor <NUM> of motor <NUM> are shown. Proportioner pumps 26a, 26b respectively include inlet housings 64a, 64b; outlet housings 66a, 66b; pump cylinders 68a, 68b; pistons 70a, 70b; rods <NUM>; and transfer tubes 92a, 92b. Drive mechanism <NUM> includes screw <NUM>, drive nut <NUM>, and rolling elements <NUM>. Yoke <NUM>' and support bracket <NUM>' are shown.

System <NUM> can be utilized to generate and apply spray foam, among other options. Proportioner <NUM>" supports control components of the system <NUM> and supports pumping components of the system <NUM>. Proportioner <NUM>" is substantially similar to proportioner <NUM> and proportioner <NUM>' but with a different arrangement of motor <NUM> and proportioner pumps 26a, 26b.

Frame <NUM> supports various components of proportioner <NUM>" and system <NUM>. Base portion <NUM> supports other components of proportioner <NUM>". Base portion <NUM> rests on a support surface, such as the ground or the bed of a truck. Base portion <NUM> can be fixed or not fixed to the support surface. Proportioner <NUM>" can be moved between job sites and to different locations within a single job site. Vertical portion <NUM> extends generally vertically from base portion <NUM>.

Motor <NUM> is fixed to frame <NUM> such that motor <NUM> is fixed relative to motor axis MA-MA during operation. Rotor <NUM> is configured to rotate about motor axis MA-MA in response to power through stator <NUM>. Drive nut <NUM> is disposed within and connected to rotor <NUM> to rotate with rotor <NUM> about motor axis MA-MA. Rolling elements <NUM> are disposed between rotor <NUM> and screw <NUM>. More specifically, rolling elements <NUM> are disposed between drive nut <NUM> and screw <NUM>. Rolling elements <NUM> can be of any configuration suitable for causing linear displacement of screw <NUM> based on rotation of drive nut <NUM>. For example, rolling elements <NUM> can be formed by balls or elongate rollers, among other options.

Motor bracket <NUM> is fixed to housing <NUM> and frame <NUM>. Motor bracket <NUM> fixes motor <NUM> relative frame <NUM> and aligns motor <NUM> on motor axis MA-MA. Motor bracket <NUM> can be formed from one or more components supporting motor <NUM> relative to frame <NUM>. For example, motor bracket <NUM> can include plates connected motor <NUM> and frame <NUM>.

Proportioner pumps 26a, 26b are disposed on the same axial side of motor <NUM>. Each of proportioner pumps 26a, 26b is spaced from motor <NUM> in first axial direction AD1. In the example shown, proportioner pumps 26a, 26b are disposed on opposite lateral sides of motor axis MA-MA. Proportioner pumps 26a, 26b are disposed adjacent one another. Proportioner pumps 26a, 26b extend along axes parallel to motor axis MA-MA. Piston 70a is configured to reciprocate on axis CA-CA and piston 70b is configured to reciprocate on axis DA-DA. Proportioner pumps 26a, 26b are statically connected to motor <NUM> by support bracket <NUM>'. Proportioner pumps 26a, 26b are dynamically connected to motor <NUM> by yoke <NUM>'.

Proportioner pumps 26a, 26b can each be spaced the same lateral distance from motor <NUM> or different lateral distances from motor <NUM>. As such, first lateral distance LD1 can be the same as or different from second lateral distance LD2. For example, where proportioner pumps 26a, 26b have different displacements, the lateral spacing between each proportioner pump 26a, 26b and motor <NUM> can vary to change the moment generated between each proportioner pumps 26a, 26b and motor <NUM> and balance the pump reaction forces generated by each proportioner pump 26a, 26b across yoke <NUM>'. In the example shown, proportioner pumps 26a, 26b project from a front of proportioner <NUM>".

Proportioner pumps 26a, 26b are supported by frame <NUM> and motor <NUM>. Proportioner pumps 26a, 26b are connected to support bracket <NUM>'. Support bracket <NUM>' extends between and connects proportioner pumps 26a, 26b and motor <NUM>. In the example shown, support bracket <NUM>' laterally surrounds yoke <NUM>'. Outlet housings 66a, 66b are connected to support bracket <NUM>'. Pump cylinders 68a, 68b extend axially between outlet housings 66a, 66b and inlet housings 64a, 64b, respectively. Rods <NUM> extend between outlet housings 66a, 66b and inlet housings 64a, 64b and are disposed around pump cylinders 68a, 68b. Proportioner pumps 26a, 26b can be cantilevered with inlet housings 64a, 64b forming the free ends of cantilevered proportioner pumps 26a, 26b.

Screw <NUM> is disposed coaxially with motor <NUM> on motor axis MA-MA. In some examples, screw <NUM> extends through motor <NUM>. Screw <NUM> interfaces with yoke <NUM>' to drive yoke <NUM>' axially along motor axis MA-MA. Screw <NUM> can be connected to yoke <NUM>' in any desired manner, such as by press-fitting, adhesive, or fasteners, among other options. Yoke <NUM>' can include a chamber for receiving an end of screw <NUM>. In the example shown, screw <NUM> is driven linearly along motor axis MA-MA by rotation of the rotor <NUM>, as discussed in more detail above. For example, screw <NUM> can interface with yoke <NUM>' and drive yoke <NUM>' axially by the axial displacement of screw <NUM>. It is understood that, in some examples, screw <NUM> is rotatably driven on motor axis MA-MA by rotation of the rotor <NUM>, as discussed in more detail above. For example, yoke <NUM>' can include a nut, similar to driven nuts 138a, 138b (<FIG>), mounted to screw <NUM> such that rotation of screw <NUM> causes the nut, and thus yoke <NUM>', to displace axially along motor axis MA-MA.

Piston 70a of proportioner pump 26a is connected to first lateral end 164a of yoke <NUM>' and piston 70b of proportioner pump 26b is connected to second lateral end 164b of yoke <NUM>'. Pistons 70a, 70b can extend through support bracket <NUM>'. Pistons 70a, 70b can be connected to yoke <NUM>' in any desired manner, such as by press-fitting, interfaced threading, adhesive, or fasteners, among other options. Yoke <NUM>' can include chambers 166a, 166b for receiving the ends of each piston 70a, 70b. Reciprocation of yoke <NUM>' drives pistons 70a, 70b through respective pump cycles to cause pumping of the component materials.

Screw <NUM> connects with yoke <NUM>' at a location laterally between the locations where pistons 70a, 70b connect to yoke <NUM>'. In the example shown, screw <NUM> includes a chamber receiving projection <NUM> extending axially from yoke <NUM>'. In examples where screw <NUM> translates linearly, pistons 70a, 70b and screw <NUM> are rigidly connected to yoke. Pistons 70a, 70b being connected to yoke <NUM>' prevents yoke <NUM>' from rotating on motor axis MA-MA. Proportioner pumps 26a, 26b and yoke <NUM>' thereby form a clocking mechanism to prevent rotation of screw <NUM> about motor axis MA-MA. Screw <NUM> extends in first axial direction AD1 to connect to yoke <NUM>' and pistons 70a, 70b extend in second axial direction AD2 to connect to yoke <NUM>'. As such, screw <NUM> can extend into a first axial side of yoke <NUM>' and pistons 70a, 70b can extend into a second axial side of yoke <NUM>' opposite the first axial side of yoke <NUM>'.

Support bracket <NUM>' is disposed axially between motor <NUM> and the static components of proportioner pumps 26a, 26b. Support bracket <NUM>' is disposed axially between motor <NUM> and yoke <NUM>'. Support bracket <NUM>' is disposed axially between yoke <NUM>' and the static components of proportioner pumps 26a, 26b. Screw <NUM> extends through an opposite end of support bracket <NUM>' from pistons 70a, 70b.

During operation, motor <NUM> drives pistons 70a, 70b of each proportioner pump 26a, 26b through respective pump cycles to pump first and second component materials. The first and second component materials can be different materials configured to combine to form a plural component spray material having desired material properties, such as a spray foam. The pistons 70a, 70b are connected to motor <NUM> by screw <NUM> and yoke <NUM>' and driven axially by motor <NUM>. Pistons 70a, 70b of proportioner pumps 26a, 26b simultaneously translate in the first axial direction AD1 and in the second axial direction AD2. In the example shown, each proportioner pump 26a, 26b simultaneously proceeds through a fill stroke. As such, proportioner pumps 26a, 26b are in-phase, with both proportioner pumps 26a, 26b proceeding through the same stroke of the pump cycle simultaneously.

Yoke <NUM>' connecting proportioner pumps 26a, 26b to motor <NUM> facilitates a compact arrangement providing a reduced profile for proportioner <NUM>". Proportioner pumps 26a, 26b simultaneously proceeding through respective fill strokes provides further advantages. If feed lines 24a, 24b are over-pressurized, such as due to thermal expansion, controller <NUM> can cause motor <NUM> to cause each proportioner pump 26a, 26b to proceed through part or all of the fill strokes to reduce pressure in feed lines 24a, 24b, which reduces the pressure on the inlet checks of proportioner pumps 26a, 26b. In addition, controller <NUM> can be configured to cause motor <NUM> to displace each piston 70a, 70b in first axial direction AD1 and further into cylinders 68a, 68b based on operation being paused or system <NUM> being put into a park mode, such as at the end of a job. For example, user interface <NUM> can include a button associated with the park mode. Driving pistons 70a, 70b in first axial direction AD1 ensures that any wet portions of pistons 70a, 70b are submerged, preventing undesired curing of the component material on those portions of pistons 70a, 70b that are disposed outside of the static portions of proportioner pump 26a, 26b and that can occur due to the component materials being sensitive to air. Proportioner pumps 26a, 26b being in-phase facilitates simultaneous parking of pistons 70a, 70b.

In any of the examples discussed above in <FIG>, rotor <NUM> and drive mechanisms <NUM>, <NUM>', <NUM>", <NUM>‴ can be sized to provide a desired revolution to stoke ratio. In some examples, rotor <NUM> and drive mechanisms <NUM>, <NUM>', <NUM>", <NUM>‴ are sized such that one revolution of rotor <NUM> results in a full stroke of pistons 70a, 70b in one of first axial direction AD1 and second axial direction AD2. A full revolution in an opposite rotational direction results in a full stroke of pistons 70a, 70b in the opposite axial direction. As such, two revolutions in opposite directions can provide a full pump cycle of pistons 70a, 70b. Proportioner pumps 26a, 26b and motor <NUM> can thereby provide a <NUM>:<NUM> ratio between revolutions of rotor <NUM> and pumping strokes.

It is understood, however, that rotor <NUM> and drive mechanisms <NUM>, <NUM>', <NUM>", <NUM>‴ can be sized to provide any desired revolution to stroke ratio. It is further understood that controller <NUM> can control operation of motor <NUM> such that the actual stroke length is dynamic and varies can during operation. Controller <NUM> can cause the stroke length to vary between the downstroke and the upstroke. In some examples, controller <NUM> is configured to control operation between a maximum revolution to stroke ratio and a minimum revolution to stroke ratio. Proportioner pumps 26a, 26b and motor <NUM> can be configured to provide any desired revolution to stroke ratio. In some examples, proportioner pumps 26a, 26b and motor <NUM> provides a revolution to stroke ratio of up to about <NUM>:<NUM>. It is understood that other maximum revolution to stroke ratios are possible, such as about <NUM>:<NUM>, <NUM>:<NUM>, <NUM>:<NUM>, or <NUM>:<NUM>, among other options. In some examples, proportioner pumps 26a, 26b and motor <NUM> can provide a revolution to stroke ratio between about <NUM>:<NUM>-<NUM>:<NUM>. It is understood that any of the ranges discussed can be an inclusive range such that the boundary values are included within the range. It is further understood that each of the ranges discussed can vary from the specified range while still falling within the scope of this disclosure.

Motor <NUM> and drive mechanism <NUM>, <NUM>', <NUM>", <NUM>‴ can be configured to displace pistons 70a, 70b at least about <NUM> (about <NUM> in. ) per rotor revolution. In some examples, motor <NUM> and drive mechanism <NUM> are configured to displace pistons 70a, 70b between about <NUM>-<NUM> (about <NUM>-<NUM> in. ) per rotor revolution. In some examples, motor <NUM> and drive mechanism <NUM> are configured to displace pistons 70a, 70b between about <NUM>-<NUM> (about <NUM>-<NUM> in. In some examples, motor <NUM> and drive mechanism <NUM> are configured to displace pistons 70a, 70b between about <NUM>-<NUM> (about <NUM>-<NUM> in. In some examples, motor <NUM> and drive mechanism <NUM> are configured to displace pistons 70a, 70b between about <NUM>-<NUM> (about <NUM>-<NUM> in. The axial displacement per rotor revolution provided by proportioner pumps 26a, 26b and motor <NUM> facilitates precise control and quick responsiveness during pumping. The axial displacement per rotor revolution facilitates quick changeover and provides more efficient pumping while reducing wear on components of proportioner pumps 26a, 26b and motor <NUM>.

Proportioner pumps 26a, 26b and motor <NUM> is configured to pump according to a revolution to displacement ratio. More specifically, motor <NUM> and drive mechanism <NUM>, <NUM>', <NUM>", <NUM>‴ are configured to provide a desired revolution to displacement ratio between revolutions of rotor <NUM> and the linear travel distance of pistons 70a, 70b, as measured in inches, for each revolution of rotor <NUM>. In some examples, the revolution to displacement ratio (rev/in. ) is less than about <NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM> and <NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM>-<NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM>-<NUM>:<NUM>. In some examples, the revolution to displacement ratio between is about <NUM>:<NUM>-<NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM>-<NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM>-<NUM>:<NUM>. In some examples, the revolution to displacement ratio is between about <NUM>:<NUM>-<NUM>:<NUM>. The low revolution to displacement ratio provided by proportioner pumps 26a, 26b and motor <NUM> relative to other electrically-powered pumps, such as crank-powered pumps that require reduction gearing to generate sufficient pumping torque and typically have revolution to displacement ratios of about <NUM>:<NUM> or higher, facilitates more efficient pumping, generates less wear, and provides quick responsiveness for changing stroke direction. Rotor <NUM> can be driven at a lower rotational speed to generate the same linear speed, thereby generating less heat during operation.

<FIG> is a graph illustrating a piston speed profile SP1 for proportioner pumps 26a, 26b. Piston speed is shown on the vertical axis and areas associated with a pressure stroke APS and fill stroke AFS are shown along the horizontal axis. Stroke profile P1 is associated with a pressure stroke of pistons 70a, 70b and stroke profile P2 is associated with a fill stroke of pistons 70a, 70b. It is understood that piston speed profile SP1 applies to examples where proportioner pumps 26a, 26b are disposed in-phase, such that each proportioner pump 26a, 26b simultaneously proceeds through the pressure and fill strokes, such as in the examples shown in <FIG>. As discussed above, proportioner pumps 26a, 26b displace fluid already within cylinders 68a, 68b during the pressure stroke and both displaces fluid from cylinders 68a, 68b and intakes additional fluid into cylinders 68a, 68b during the fill stroke, which fill stroke can also be referred to as a suction stroke.

Controller <NUM> is configured to control operation of motor <NUM> to control the speeds of pistons 70a, 70b through each of the pressure and fill strokes. Controller <NUM> can control the rotational speed and acceleration of rotor <NUM> such that rotor <NUM> accelerates slower on the fill stroke than on the pressure stroke. The slower acceleration on the fill stroke prevents formation of a vacuum within proportioner pumps 26a, 26b, thereby preventing undesired cavitation during the fill stroke. Controller <NUM> can further control rotation of rotor <NUM> such that the steady state speed on the fill stroke is less than the steady state speed on the pressure stroke, further preventing cavitation. Piston speed profile SP1 can thereby be asymmetric, with different profiles for the fill stroke and pressure stroke. It is understood that controller <NUM> can adjust the slope and plateau values for each of the pressure stroke and the fill stroke based on feedback from any one or more sensors and/or from motor <NUM>. It is further understood that the slopes and plateau values shown for piston speed profile SP1 can vary from those shown.

Stroke profile P1 includes acceleration segment S1, steady speed segment S2, and deceleration segment S3. The stroke profile P2 includes acceleration segment S4, steady speed segment S5, and deceleration segment S6. Controller <NUM> is capable of controlling the speed of rotation of rotor <NUM> and thus the speed of reciprocation of pistons 70a, 70b to provide any desired piston speed profile SP1. Piston speed profile SP1 reduces pressure drop at changeovers, reduces the chance of cavitation, and cause proportioner pumps 26a, 26b to output fluid at consistent pressure and/or flow rate. Controller <NUM> can control reciprocation of pistons 70a, 70b, by controlling rotation of rotor <NUM>, such that motor <NUM> and proportioner pumps 26a, 26b provide an output similar to that of a hydraulically powered proportioner pumps.

During acceleration segment S1, pistons 70a, 70b are moving through the pressure and accelerating. Inlet valves 94a, 94b close and outlet valves 96a, 96b open during the pressure stroke. After accelerating, pistons 70a, 70b move at a set, steady speed. In steady speed segment S2, pistons 70a, 70b continue to displace through the pressure stroke and move at the steady speed. The constant speed of pistons 70a, 70b results in stable pressure that maintains a consistent pressure and/or flowrate output from proportioner pumps 26a, 26b and generates an even spray at applicator <NUM>. In deceleration segment S3, pistons 70a, 70b decelerate as pistons 70a, 70b approach the end of the pressure stroke. Pistons 70a, 70b change over from the pressure stroke and begin moving through the fill stroke at the intersection between deceleration segment S3 and acceleration segment S4, where the speed of pistons 70a, 70b is zero.

After completing the pressure stroke, pistons 70a, 70b are driven through respective fill strokes. During acceleration segment S4, pistons 70a, 70b are moving through the fill stroke and accelerating. Inlet valves 94a, 94b open and outlet valves 96a, 96b close during the fill stroke. It is desirable to have outlet valves 96a, 96b close in the shortest time period possible to minimize any flow below inlet valves 94a, 94b and to keep any pressure drop or flow rate change to a minimum during the changeover. Acceleration segment S4 has a more gradual slope than acceleration profile S1, such that pistons 70a, 70b can take a longer portion of the fill stroke to accelerate to the steady speed than pistons 70a, 70b take to accelerate to the steady speed during the pressure stroke. Acceleration segment S4 has a more gradual slope than acceleration profile S1 to ensure that the fluid flows into proportioner pumps 70a, 70b without generating a vacuum that could cause the fluid to cavitate and cause the outputs from proportioner pumps 70a, 70b to be off ratio. The gentler acceleration profile S4 relative to acceleration profile S <NUM> avoids such cavitation and assists in maintaining the fluid ratio. Cavitation is not an issue during the pressure stroke as additional fluid is not being drawn into proportioner pumps 26a, 26b.

After accelerating, pistons 70a, 70b move at a set, steady speed. In steady speed segment S5, pistons 70a, 70b continue to displace through the fill stroke and move at the steady speed. In some examples, the speed of steady speed segment S5 is less than the speed of steady speed segment S2, to further avoid cavitation and maintain on-ratio pumping. The slower acceleration of acceleration profile S <NUM> and the lower speed of steady speed segment S5 provides additional time for fluids to move into the proportioner pumps 26a, 26b, reducing vacuum pressure, avoiding cavitation, and maintaining the fluid ratio. The constant speed of pistons 70a, 70b during steady speed segment S5 also results in stable pressure and/or flow rate that maintains the ratio at proportioner pumps 26a, 26b. In deceleration segment S6, pistons 70a, 70b decelerate as pistons70a, 70b approach the end of the fill stroke. Pistons 70a, 70b change over from the fill stroke to the pressure stroke at the end of deceleration segment S6.

Acceleration segments S1 and S4 and deceleration segments S3 and S6 are periods of time where pistons 70a, 70b are changing speed, which can reduce flow from proportioner pumps 26a, 26b thereby resulting in lower pressures and flowrates. A reduced pressure can reduce the quality of the spray generated at applicator <NUM> and adversely affect the material properties of the plural component material generated. Piston speed profile SP1 minimizes the time for acceleration and deceleration, providing greater pump efficiency, consistent pressure and/or flow rate, reduced pressure drop at changeover, and reduced chance of cavitation, among other benefits.

Steady speed segments S2 and S4 are periods of time where the piston speed, and therefore the pump flow and pressure, is constant. Motor <NUM> facilitates quick reaction to accelerate back to the speed of steady speed segments S2, S4 if proportioner pumps 26a, 26b stall mid-stroke indirectly by closing/detriggering applicator <NUM>.

While the pumping assemblies of this disclosure and claims are discussed in the context of a plural component spraying system, it is understood that the pumping assemblies and controls can be utilized in a variety of fluid handing contexts and systems and are not limited to those discussed. Any one or more of the pumping assemblies discussed can be utilized alone or in unison with one or more additional pumps to transfer fluid for any desired purpose, such as location transfer, spraying, metering, application, etc..

Claim 1:
A pumping system for a plural component spray system configured to receive first and second component materials and output a plural component material, the pumping system comprising:
- an electric motor (<NUM>) including a stator (<NUM>) and a rotor (<NUM>), the rotor (<NUM>) configured to rotate about a pump axis;
- a drive mechanism (<NUM>) directly connected to the rotor (<NUM>) and configured to convert a rotational output from the rotor (<NUM>) to a linear input, the drive mechanism (<NUM>) comprising:
- a screw (<NUM>) disposed coaxially with the rotor (<NUM>) and configured to provide the linear input; and
- a plurality of rolling elements (<NUM>) disposed between the screw (<NUM>) and the rotor (<NUM>), wherein the plurality of rolling elements (<NUM>) support the screw (<NUM>) relative the rotor (<NUM>) and are configured to drive the screw (<NUM>) axially;
- a first piston (70a) of a first pump (26a) coupled to the drive mechanism (<NUM>) to be reciprocated axially by the drive mechanism (<NUM>), wherein the first pump (26a) is a double displacement pump such that the first pump (26a) is configured to output fluid during each of a first stroke and a second stoke of a pump cycle of the first pump (26a); and
- a second piston (70b) of a second pump (26b) coupled to the drive mechanism (<NUM>) to be reciprocated axially by the drive mechanism (<NUM>), wherein the second pump (70b) is a double displacement pump.