Systems and methods for hydraulic pump flow ripple reduction

By controlling the speed and torque of the electric motor to counteract pump displacement variations, the method addresses flow ripple issues in hydraulic systems, enhancing operational smoothness and stability.

WO2025244692A1PCT designated stage Publication Date: 2025-11-27PARKER HANNIFIN CORP
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/015199
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-05-21
Filing Date
2025-02-10
Publication Date
2025-11-27

AI Technical Summary

Technical Problem

Hydraulic systems experience flow pulsations or ripple due to the geometrical characteristics of pumps, leading to noise and vibration, which are more noticeable with electric motors, affecting smooth operation and actuator stability.

Method used

A controller adjusts the speed and torque of an electric motor driving the pump to compensate for instantaneous variations in pump displacement, using angular sensor feedback to reduce flow ripple.

Benefits of technology

The method effectively reduces pump flow ripple, minimizing noise and vibration, ensuring smooth operation and improved actuator stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025015199_27112025_PF_FP_ABST
    Figure US2025015199_27112025_PF_FP_ABST
Patent Text Reader

Abstract

Example hydraulic systems, control systems, and methods for reducing pump flow ripple are described. Variation in pump displacement, from a nominal pump displacement, based on an angle of a rotating member of a pump is determined. A controller then controls speed and torque of an electric motor driving the pump to compensate for or counter the variation in the pump displacement and reduce flow ripple.
Need to check novelty before this filing date? Find Prior Art

Description

Systems and Methods for Hydraulic Pump Flow Ripple Reduction CROSS REFERENCE TO RELATED APPLICATION

[0001] The present application claims priority to U.S. Provisional Patent Application No. 63 / 650,155, filed on May 21, 2024, the entire contents of which are herein incorporated by reference as if fully set forth in this description. TECHNICAL FIELD

[0002] This disclosure relates generally to work function control in fluid power systems that include electrical motors, controllers, hydraulic pumps, and work function actuators. More particularly, this disclosure relates to controlling electrical motor torque and speed, thus hydraulic pump flow and pressure, to reduce flow ripple and achieve a smooth operation of a hydraulic work function. BACKGROUND

[0003] Hydraulic systems typically include at least one positive displacement device such as a pump (e.g., a piston pump, a gear pump, a vane pump, etc.). Such pump provides fluid flow to actuators of a hydraulic system (e.g., cylinder actuator or hydraulic motor) to drive a work function, for example.

[0004] Pumps are generally characterized by flow pulsations that are commonly referred to as flow ripple, which result from volume change created by the geometrical characteristics of the pump. Flow pulsations can also result from the compression and decompression of the trapped fluid volume when transferring fluid between low and high pressure chambers.

[0005] Flow pulsations or ripple often cause actuation of the structure of a hydraulic machine (e.g.,a construction or agricultural machine) that includes the pump. Actuation of the structure in turn can cause fluid-borne and structure-borne noise during operation of the pump. Additionally, flow pulsations from the pump are transmitted downstream to hoses and actuators of the hydraulic machine, preventing smooth operation.

[0006] While noise from internal combustion engines driving a hydraulic machine can obscure noise and vibration resulting from flow ripple, electric machines (e.g., pumps driven by electric motors) are much quieter, and thus the noise and vibration resulting from pump flow ripple can be more noticeable.

[0007] It may thus be desirable to reduce pump flow ripple in a hydraulic system involving an electric motor driving a pump. It is with respect to these and other considerations that the disclosure made herein is presented.SUMMARY

[0008] The present disclosure describes implementations that relate to systems and methods for hydraulic pump flow ripple reduction.

[0009] Within examples, disclosed herein are hydraulic systems, control systems, and methods associated with reducing pump flow ripple. Instantaneous variation in pump displacement (from a nominal pump displacement) based on an angle of a rotating member / component of a pump is determined. A controller then controls speed and torque of an electric motor driving the pump to compensate for or counter the variation in the pump displacement and reduce flow ripple.

[0010] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, implementations, and features described above, further aspects, implementations, and features will become apparent by reference to the figures and the following detailed description.BRIEF DESCRIPTION OF THE FIGURES

[0011] Figure 1 illustrates a schematic of a hydraulic system, according to an example implementation.

[0012] Figure 2A illustrates a cross-sectional view of a piston pump, according to an example implementation.

[0013] Figure 2B illustrates a perspective view of a valve plate of the piston pump of Figure 2A, according to an example implementation.

[0014] Figure 2C illustrates a partial view of the piston pump of Figure 2A showing a piston in a retracted position, according to an example implementation.

[0015] Figure 3A is a graph showing pump flow ripple, according to an example implementation.

[0016] Figure 3B is a graph showing percentage of flow ripple based on a number of pistons of a given piston pump, according to an example implementation.

[0017] Figure 4 is a block diagram of an online learning system, according to an example implementation.

[0018] Figure 5 is a block diagram of a control system for reducing pump flow ripple, according to an example implementation.

[0019] Figure 6 is a block diagram of a control architecture of the control system of Figure 5, according to an example implementation.

[0020] Figure 7A is a graph illustrating change in speed profile to counter pump flow ripple, according to an example implementation.

[0021] Figure 7B is a graph illustrating reduction of pump flow ripple, according to an example implementation.

[0022] Figure 8 is a block diagram of an electronic controller, according to an example implementation.

[0023] Figure 9 is a flowchart of a method for controlling an electric motor to reduce pump flow ripple, according to an example implementation.DETAILED DESCRIPTION

[0024] Disclosed herein are hydraulic systems, control systems, and methods associated with reducing pump flow ripple. Instantaneous variation in pump displacement based on an angle of a rotating component of a pump is determined. A controller then controls speed and torque of an electric motor driving the pump to compensate for or counter the variation in the pump displacement and reduce flow ripple.

[0025] Figure 1 illustrates a schematic of a hydraulic system 100, according to an example implementation. The hydraulic system 100 includes a pump 102 driven by an electric motor 104 via a shaft 106 (output shaft of the electric motor 104 coupled to an input shaft of the pump 102). Although the disclosure describes shaft between the electric motor and pump, the control concepts described herein are applicable to “shaft-less” implementations where the electric motor is integrated with the pump in an assembly in which the electric motor drives the pumps directly (e.g., rotor of electric motor drives outer gear in internal gear pumps, cylinder block in piston pumps, etc.). As such, the term “output shaft” of the electric motor is used herein to encompass the rotor of the electric motor or any shaft coupled thereto, and the term “input shaft” of the pump is used to encompass a rotating member of the pump (e.g., cylinder block or gear) or any shaft coupled thereto. Also, although the disclosure describes an electric motor driving a single pump, in other examples implementation, the electric motor can drive multiple pumps controlled in the same manner described below.

[0026] The speed and torque of the electric motor 104 are controlled by a motor controller 108. The motor controller 108 is an electronic control unit or electronic controller configured to perform the operations described herein. Particularly, the motor controller 108 can include one or more processors and data storage (non-transitory storage medium or memory) having executableinstructions stored thereon that, when executed by the one or more processors, enable the motor controller 108 to perform the operations described herein (e.g., control the electric motor 104, and thus the pump 102, to reduce pump flow ripple).

[0027] As the electric motor 104 drives the pump 102, the pump 102 draws fluid through a pump inlet port 109 from a fluid reservoir 110, e.g., a tank storing fluid at a low pressure such as 0-70 pounds per square inch (psi) or atmospheric pressure. The pump 102 then displaces or discharges fluid to a hydraulic actuator 112, which can be a hydraulic cylinder actuator (with a piston movable inside a cylinder) or a hydraulic motor, as examples. In examples, valves or other components can be disposed between the pump 102 and the hydraulic actuator 112 to regulate fluid flow and pressure between the pump 102 and the hydraulic actuator 112.

[0028] The electric motor 104 or the pump 102 can have an angular sensor 114. The angular sensor 114 provides sensor information indicative of a rotational position of a rotor of the electric motor 104, a rotational position of a rotating member of the pump 102, and / or the rotational position of the shaft 106, for example. The motor controller 108 receives the sensor information from the angular sensor 114, and responsively controls electric current provided to the wires windings of a stator of the electric motor 104 to control its torque and speed (torque applied by the shaft 106 to the rotating member of the pump 102 and rotational speed of the shaft 106).

[0029] The pump 102 can be any type of pump. As examples, the pump 102 can be a variable displacement piston pump, a gear pump, or a vane pump. Although in the description below a variable displacement piston pump is used to describe the control method, it should be understood that the methods described below are applicable to any pump type with a finite number of displacement chambers.

[0030] Figure 2A illustrates a cross-sectional view of a piston pump 200, according to an example representation. The piston pump 200 can represent the pump 102 in an example implementation.

[0031] The piston pump 200 is a variable displacement pump having an input shaft 202, a swashplate 204, and a rotating member 206 (e.g., a rotating group) mounted to the input shaft 202 and rotatable therewith. The rotating member 206 includes a cylinder block 208 in which a plurality of pistons such as piston 210 are disposed in a circular array. The pistons (e.g., the piston 210) are coupled to each other via a slipper 211, which allows the pistons to slip across the surface of the swashplate 204 as the rotating member 206 rotates. The piston pump 200 further includes a valve plate 212.

[0032] The cylinder block 208 forms a plurality of chambers or cylinders in which the pistons can reciprocate when the swashplate 204 is angled. For example, the piston 210 can reciprocate within a cylinder 216 formed within the cylinder block 208.

[0033] The input shaft 202 can be coupled to an output shaft of an electric motor (e.g., the electric motor 104) or is generally driven by an electric motor in the case where the electric motor and pump are integrated in an assembly. Thus, as the rotor of the electric motor rotates, the input shaft 202 of the piston pump 200 rotates, causing the rotating member 206 to rotate therewith.

[0034] By varying the angle of the swashplate 204, a continuous ratio from zero flow to a maximum fluid flow rate can be obtained. The angle of the swashplate 204 relative to the input shaft 202 can be changed, e.g., via a cylinder mechanism that is not shown in Figure 2A to reduce visual clutter in the drawing.

[0035] If the angle of the swashplate 204 relative to the input shaft 202 is zero (e.g., the swashplate 204 is vertical), the piston pump 200 might not discharge fluid. However, when the swashplate204 is actuated to a particular angle, the pistons of the rotating member 206 reciprocate within the cylinder block 208, thereby withdrawing fluid from a fluid reservoir (e.g., the fluid reservoir 110) and discharging fluid from the piston pump 200.

[0036] Figure 2B illustrates a perspective view of the valve plate 212, according to an example implementation. As shown, the valve plate 212 is configured as a disk having an arcuate groove that operates as an inlet or low pressure port 218, which is fluidly coupled to an inlet port (e.g., the pump inlet port 109) of the piston pump 200. The inlet port can be fluidly coupled to the fluid reservoir (e.g., the fluid reservoir 110), for example.

[0037] The valve plate 212 also has a plurality of holes operating as an outlet or high pressure port 220, which is fluidly coupled to an outlet port (e.g., the outlet port 111) of the piston pump 200. Fluid is discharged from the piston pump 200 through its outlet port, which can be fluidly coupled to a hydraulic actuator (e.g., the hydraulic actuator 112), for example.

[0038] As shown in Figure 2A, the piston 210 is disposed within the cylinder 216 at its most extended position. This position can be referred to as the top dead center position. In this position of the piston 210, a volume of a chamber 222 (in which the piston 210 is disposed) within the cylinder 216 is maximum. As the cylinder block 208 rotates about a longitudinal axis of the input shaft 202, the piston 210 extends on its way to the position shown in Figure 2A, withdrawing fluid into the chamber 222 through the low pressure port 218 of the valve plate 212. As the cylinder block 208 continues to rotate from the position shown in Figure 2A, due to the angle of the swashplate 204, the piston 210 retracts, causing fluid to be discharged from the chamber 222 through the high pressure port 220 of the valve plate 212.

[0039] Figure 2C illustrates a partial view of the piston pump 200 showing the piston 210 in a retracted position, according to an example implementation. As depicted, the volume of thechamber 222 has been reduced as the piston 210 retracts and compresses fluid in the chamber 222. The volume of the chamber 222 in Figure 2C can be a minimum volume, corresponding to a most retracted position of the piston 210, which could be referred to as the bottom dead center position.

[0040] Thus, as the input shaft 202 and the rotating member 206 rotate, the pistons reciprocate within their respective cylinders within the cylinder block 208, thereby alternating between withdrawing (sucking) fluid through the low pressure port 218 and pushing fluid through the high pressure port 220, discharging fluid from the piston pump 200.

[0041] The flow rate of fluid discharged from the piston pump 200 is based on a parameter referred to as a pump displacement PD of the piston pump 200 and the rotational speed of the input shaft 202. The pump displacement PDcan be expressed in cubic inches per revolution (in3 / rev) or in cubic centimeters per revolution (cc / rev), for example. The pump displacement PD indicates the volume of fluid discharged per one revolution (360^ rotation) of the input shaft 202 or the rotating member 206. The pump displacement PD is based on the angular position of the swashplate 204. The larger the angle of the swashplate 204, the larger the pump displacement, and vice versa.

[0042] The electric motor 104 can be rotating the input shaft 202 at a particular speed having units of revolutions per minute (RPM). As such, multiplying the speed of the input shaft 202 by PD determines the fluid flow rate Q in cubic inches per minute (in3 / min) or cubic centimeters per minute (cc / min) provided by the piston pump 200.

[0043] Thus, if the swashplate 204 is disposed at a particular angle, and the input shaft 202 is rotating at a particular speed, it is generally assumed that the piston pump 200 can discharge fluid at a constant flow rate. However, in practice, a typical pump does not provide a smooth flow rate. Rather, the fluid flow rate fluctuates over a given revolution of the rotating member 206 (the cylinder block 208 and the pistons disposed therein), causing pump flow ripple.

[0044] Conventional pumps may have mechanical features that attempt to alleviate pump flow ripple. For example, as shown in Figure 2B, the valve plate 212 can include notches, such as notch 224 and notch 226. The notches 224, 226 may allow some cross flow between the high and low pressure ports, and may cause variation in a flow profile to reduce flow ripple. However, such features might not mitigate flow ripple sufficiently in many applications where system efficiency, actuator stability, and noise levels are important.

[0045] Figure 3A is a graph 300 showing pump flow ripple, according to an example implementation. The x-axis of the graph 300 shows shaft angle (e.g., angle of the input shaft 202). The y-axis shows pump fluid flow rate in liters per minute (L / min). The graph 300 shows pump flow over one revolution (360^) of rotation of the input shaft 202 or the rotating member 206 for a particular angle of the swashplate 204 and a particular rotational speed of the input shaft 202.

[0046] The bottom portion of Figure 3A shows fluid flow from each individual piston chamber of the piston pump 200 as the respective piston reciprocates in the respective chamber over one revolution of the input shaft 202. In this example, the piston pump 200 has nine pistons. Particularly, line 302 represents flow from a first piston chamber, line 304 represents flow from a second piston chamber, line 306 represents flow from a third piston chamber, line 308 represents flow from a fourth piston chamber, line 310 represents flow from a fifth piston chamber, line 312 represents flow from a sixth piston chamber, line 314 represents flow from a seventh piston chamber, line 316 represents flow from an eighth piston chamber, and line 318 represents flow from a ninth piston chamber. In the case of other types of pumps, the lines 302-318 can represent flow from a finite number of displacement chambers (e.g., between gear teeth) of the pump, for example.

[0047] The total flow discharged from the piston pump 200 (combination or addition of flows of the lines 302-318) is shown by line 320. As illustrated by the line 320, although the angle of the swashplate 204 and the rotational speed of the input shaft 202 are fixed throughout the one revolution of the input shaft 202, fluid flow rate from the piston pump 200 is not constant. Rather, it pulsates, fluctuates, or ripples between a maximum flow value 322 and a minimum flow value 324 based on the angular position of the input shaft 202 or the rotating member 206.

[0048] The line 320 demonstrates that while the piston pump 200 may have a nominal pump displacement, the actual, instantaneous, or effective pump displacement PDof the piston pump 200 (despite the swashplate angle being fixed) is not constant over a revolution of the input shaft 202 and rotating member 206. Rather, the actual pump displacement PDchanges over a revolution of the input shaft 202 and the rotating member 206 of the piston pump 200 based on an angular position of the input shaft 202 and the rotating member 206. In other words, an instantaneous or effective pump displacement of the piston pump 200 varies (from the nominal pump displacement) based on the angular position of the rotating member 206. The term instantaneous or effective pump displacement is used here to indicate the actual pump displacement a particular time or at a particular angle of rotation during operation of the electric motor and pump.

[0049] As mentioned above, mechanical features such as the notches 224, 226 can be added in an attempt to mitigate flow ripple. Such notches, for example, can change a shape of a flow profile from each piston to deviate from a perfect sinusoid. For instance, the line 312 has a vertical portion 326, rendering the line 312 not a perfect sinusoid, in an attempt to compensate for other factors that cause flow ripple or fluctuations. However, as shown by the line 320, the notches might not reduce flow ripple sufficiently.

[0050] Characteristics of flow ripple (e.g., magnitude of flow ripple) from a given pump is based on several variables. For example, characteristics of flow ripple may depend on the number of pistons of the piston pump 200.

[0051] Figure 3B is a graph 328 showing percentage of flow ripple based on a number of pistons of a given piston pump, according to an example implementation. The x-axis shows the number of pistons, and the y-axis shows the magnitude of flow ripple in percentage (e.g., deviations from an average flow rate in percentage).

[0052] As demonstrated by the graph 328, using an odd number of pistons can lead to reduced flow ripple compared to using an even number of pistons. Further, using a large number of pistons can smoothen fluid flow rate from a pump and reduce flow ripple. However, even with a large odd number of pistons, flow ripple still exists, which can cause vibration and noise that might not be acceptable in some applications. Further, using an odd number of pistons (or odd number of displacement chambers generally) may potentially increase frequency and harmonics of the pump flow ripple, and may excite more vibration modes.

[0053] As mentioned above, a piston pump is used herein as an example. Other types of pumps exhibit similar characteristics. For instance, in a gear pump, flow ripple depends on the number of gear teeth of the rotating gears of the pump (rather than the number of pistons, as the number of teeth determines the number of low pressure and high pressure chambers).

[0054] Thus, regardless of the type of pump, it may be desirable to control the electric motor driving the pump in a manner that changes its speed and torque over a revolution of the input shaft or rotating member of the pump to compensate for flow ripple. To determine how to change the speed and torque of the electric motor, it may be desirable to first determine variation of the pump displacement PD over a revolution of the input shaft of the pump. This may allow a controller(e.g., the motor controller 108) to determine whether to change an instantaneous speed of the electric motor, for example, to compensate for an instantaneous increase or decrease in the output fluid flow rate of the pump.

[0055] Variation in the pump displacement over a revolution of a rotating member of the pump can depend on various operating variables. As mentioned above, the number of pistons or gears of a rotating member affects the pump flow and displacement variation. Other factors could include temperature of fluid, type of fluid, configuration of the pump, and output fluid pressure.

[0056] The variation in pump displacement can further depend on the rotational speed of the input shaft 202. It may also depend on the top dead center and bottom dead center positions of the pistons (e.g., the angular orientation of the rotating member 206 of the piston pump 200) relative to an angular position of a rotor of the electric motor 104.

[0057] Variation in the pump displacement over a revolution of the pump can be determined in various ways. In an example, the pump can be characterized ahead of deployment in a machine or during initial testing cycles of the pump when deployed in the machine. For example, a map can be generated for each pump that correlates an “n” number of input variables (e.g., temperature, pressure, number of pistons / gear teeth, relative angular positions between the pump and the electric motor, etc.) with a particular profile of variation of pump displacement over a revolution of the input shaft. Such a map can be referred to as an “n-dimensional” map as it correlates multiple input variables or “dimensions” with the pump displacement variation profiles. During operation of the machine through its operating life, a controller (e.g., the motor controller 108) can receive information indicative of the input variables in a particular operating condition, and responsively select or determine the pump displacement profile (variation of pump displacement over one revolution) to use.

[0058] In other examples, after deployment of the pump in a machine (e.g., mobile machinery such as tractors, loaders, excavators, or industrial machinery), and over time, or due to the pump operating in a different operating condition that is not included in the n-dimensional map, characteristics of the pump may differ from what is characterized in the n-dimensional map. For example, components of the pump may wear, performance of the pump may change or deteriorate over time, etc.

[0059] As such, it may be desirable to continually update the models during the life of the pump or alternatively anticipate the changes in the pump characteristics prior to deployment and implement an automatic adaptation of the electric motor controls to account for deterioration of (e.g., changes in coefficient of friction) over the life of the pump. Such updating or “online” training can be accomplished by an algorithm implemented by a controller (e.g., the motor controller 108 or other machine controllers) to determine changes in the pump displacement profiles.

[0060] In other examples, a controller may have access to look up tables or control algorithms that determine a pump displacement variation profile for particular pump configurations, but might not have information indicating the particular configuration of a pump being used in a particular application. In these examples, the controller may be configured to determine the configuration of the pump (e.g., the number of pistons in a piston pump) by analyzing flow and pressure characteristics of the pump, either a priori or after deployment of the pump.

[0061] For example, for a given piston pump, the fundamental frequency of the pump flow ripple is dependent on the number of pistons and operating speed of the input shaft of the pump. The fundamental frequency for a pump flow pulsation with odd number of pistons can be twice that of a pump with even number of pistons, for instance. Thus, a controller can evaluate thecharacteristics of the pump by adding flows from each piston over the shaft revolution as shown in Figure 3A. These flow pulsations interact with the flow path inside the pump to create local pressure ripples. This causes the hydraulic pumps to exhibit higher harmonics of the fundamental frequency as well. The first two harmonics of the fundamental frequency may have the highest amplitudes for both odd and even number of pistons.

[0062] Thus, by evaluating the fundamental frequency and harmonics of the flow ripple, the controller can determine the number of pistons of the pump. In one example, where the configuration of the pump is not known to the controller, the controller can implement an online (e.g., during operation of the pump) Fast Fourier Transform (FFT) analysis or evaluation to determine the fundamental frequencies and the subsequent harmonics.

[0063] Particularly, an FFT analysis algorithm implemented by the controller can determine the discrete Fourier transform of a sequence of flow values, or its inverse. A Fourier analysis converts a signal from its original domain to a representation in the frequency domain and vice versa, and then a discrete Fourier Transform can be obtained by decomposing a sequence of values into components of different frequencies. By evaluating the fundamental frequency and harmonics, the controller can determine the number of pistons for example, and may thus determine which pump displacement variation profile to use.

[0064] In one example, in addition or as an alternative to performing an FFT analysis of flow / pressure signal, a sound sensor, a vibration sensor, or a virtual sensor can be used to provide feedback or sensor signal / information that can be used by the controller to perform real-time FFT or Digital Signal Processing (DSP) for sound spectrum frequency analysis. For instance, Artificial intelligence (AI)-based on-line learning algorithms can be implemented by the controller to optimize the sound spectrum distribution, thus minimize the pump and system noise.

[0065] Thus, in examples, an n-dimensional map can be generated a priori (before deployment of the pump or during initial training cycles of the machine) to determine its characteristics and determine the pump displacement variation profile. Such map and profile can be refined and updated during operation of the pump during the life of the machine to account for changes or operating conditions not used to generate the n-dimensional map.

[0066] A partial or full online learning system can be used in the absence of such an n-dimensional map / model or to further improve the n-dimensional map / model of the pump. The online learning system can actively update the n-dimensional map / model by incorporating new state estimates and measured dependencies, for example.

[0067] Figure 4 is a block diagram of an online learning system 400, according to an example implementation. The online learning system 400 can be used to identify the pump configuration if not known or to enhance a model (e.g., the n-dimensional map) generated a priori for the pump configuration and operating characteristics. The term “online” indicates that the online learning system 400 can be implemented during operation of the pump and electric motor by a controller (e.g., the motor controller 108 of the electric motor 104 or a remote controller located remotely from the electric motor or the machine).

[0068] Block 402 represents a model for the electric motor and pump dynamics. The input to block 402 is an electric current, and the output is an actual flow “Actual Q” generated by the pump. Such actual Q can be provided, for example, as sensor feedback from a flow sensor or via a calculation based on pressure sensors.

[0069] The controller may also implement an artificial neural network (ANN) 404 as a model that estimates an expected flow “expected Q” based on a model of the pump and based on sensor feedback (e.g., sensor information from the angular sensor 114, sensor information from variousflow and pressure sensors, other sensors in the electric motor such as current sensors, etc.). The ANN 404 can be represented as a number of nodes that are arranged into a number of layers, with connections between the nodes of adjacent layers. Generating such an ANN involves (i) collecting a set of training data (online or offline) about performance of the pump in various conditions, and (ii) training the ANN 404 using the set of training data to correlate input variables associated with a particular operating conditions with an expected flow rate from the pump. Training the ANN 404 provides a model that can then be applied during operation of the pump and the electric motor.

[0070] The expected flow output of the ANN 404 and the actual flow value from the block 402 are provided to a summation block 406. The summation block 406 subtracts the actual Q from the expected Q to generate an error that is provided to an ANN learning algorithm 408. Based on the error or discrepancy between the actual Q from the expected Q, the ANN learning algorithm 408 updates parameters of the ANN 404 to enhance prediction of the ANN 404 in determining the expected Q such that the error is reduced or eliminated.

[0071] In one example, the ANN 404 can be used to determine a pump displacement variation profile over a given revolution of an input shaft of the pump, and such profile can be used by other control modules as described below with respect to Figure 5 to control the electric motor speed and torque in a manner that reduces flow ripple. In examples, another ANN 410 can be used to modify a command to an electric motor drive 412 (e.g., inverter) of the electric motor to generate an electric current that is provided to the electric motor at the block 402 such that the electric motor compensates for the pump displacement variation.

[0072] In this example, pump flow demand can be generated at block 414 and provided to the ANN 410 as an input. This flow demand can be indicated by an operator of the machine (e.g., viaa joystick), for example. It can be the flow demand by the hydraulic actuator 112, for example, to operate the hydraulic actuator 112 at a desired speed and force.

[0073] The ANN 410 receive the actual Q and the pump flow demand from the block 414 as inputs. The ANN 410 may additional receive information from FFT block 416.

[0074] As mentioned above, an FFT analysis can be implemented (e.g., via the FFT block 416) to determine the fundamental frequency and harmonics of flow ripple based on sensor feedback (e.g., flow rate information, angular sensor information, sound sensor, vibration sensor, etc.). The resulting information is provided to the ANN 410, which in turn generates a feedforward flow value provided to a summation block 418 to be added to or subtracted from the pump flow demand from the block 414.

[0075] This way, the resultant flow demand value generated by the summation block 418 and provided to the electric motor drive 412 compensate for instantaneous variation in pump displacement based on an angle of rotation of the rotating member of the pump or its input shaft. Additionally, the ANN 410 can generate feedforward flow value that also counteracts the 1st, 2ndand 4thharmonic of the fundamental frequency, as determined by the FFT block 416, to ensure cancellation of majority of the flow pulsations from the pump irrespective of the number of pistons.

[0076] In examples, the online learning system 400 can include another ANN learning algorithm 420 configured to update parameters of the ANN 410 to enhance performance of the ANN 410 in generating the feedforward flow value that reduces flow ripple.

[0077] In examples, once the pump characteristics are identified and the profile of the pump displacement variation over a revolution of the input shaft is determined, such profile is used to generate a speed command modifier and / or a torque command modifier that are provided to a aspeed control loop and / or a torque control loop of the electric motor. The speed and torque command modifiers compensate for the variation in the pump displacement and reduce flow ripple.

[0078] Figure 5 is a block diagram of a control system 500 for reducing pump flow ripple, according to an example implementation. A typical motor control system can include a speed control module 502 and a current / torque control module 504. The term “module” or “block” is used generally herein to include software, hardware, or a combination of software and hardware components.

[0079] The speed control module 502 receives a commanded speed signal 506 (^set) for the electric motor. The commanded speed signal 506 can be based on the flow demanded from the pump (e.g., via an operator of a machine).

[0080] As described below, the commanded speed signal 506 is modified to reduce flow ripple, and a modified speed command 507 (^cmd) is provided to the speed control module 502. The speed control module 502 then determines a reference torque command 508 based on an error or difference between the modified speed command 507 and a speed sensor information signal 510 (^meas), e.g., from the angular sensor 114 coupled to the electric motor 104. The angular sensor 114 can generate an angular position signal 512 as well, and the speed sensor information signal 510 can be also provided by the angular sensor 114 or derived from the angular position signal 512. In other examples, the electric motor 104 includes a speed sensor (e.g., a tachometer or resolver) that provides the speed sensor information signal 510 to the speed control module 502, which implements closed-loop speed control to control the speed of the electric motor 104.

[0081] As described below, the reference torque command 508 is modified to reduce flow ripple, and a modified torque command 511 is provided to the torque control module 504. The torquecontrol module 504 then provides a current command 514 to drive the electric motor 104. The electric motor 104 can include a current sensor that provides current sensor information signal 516 to the torque control module 504, which implements closed-loop current control to control the current provided to the electric motor 104, and thus control the torque output of the electric motor 104.

[0082] The control system 500 differs from typical motor control systems in that the control system 500 includes a profiles module 518, which receives pump identification information (profile parameters) from identification module 520. The profiles module 518 responsively generates a speed modifier 522 (e.g., a profiles speed command ^prof) and a torque modifier 524 (e.g., a profiles torque command ^prof). The speed modifier 522 modifies the commanded speed signal 506 to generate the modified speed command 507, and the torque modifier 524 modifies the reference torque command 508 to generate the modified torque command 511.

[0083] Particularly, the speed modifier 522 augments (e.g., added to or subtracted from) the set speed command ^setthat is based on flow demand by the hydraulic system to generate the modified speed command 507 (^cmd) as an input to the speed control module 502. Similarly, the torque modifier 524 augments (e.g., added to or subtracted from) the reference torque command 508 (^) to generate the modified torque command 511 as an input to the torque control module 504.

[0084] The identification module 520 can implement any of the techniques discussed above (e.g., n-dimensional map, FFT analysis, ANN models, etc.) to determine characteristics of the pump (e.g., number of pistons, gear teeth, etc.) and provide such identification information to the profiles module 518. The profiles module 518 can also receive sensor feedback information (pressure sensor information p, angular position information ^meas, angular speed information ^, etc.) anddetermines the variation profile of pump displacement based on the angular position of the input shaft of the pump. The profiles module 518 then generates the speed modifier 522 and the torque modifier 524 to reduce pump flow ripple as described next as an example for illustration.

[0085] The profiles module 518 thus has access to a profile of variation of pump displacement over a revolution of the inputs shaft or rotating member of the pump based on an angular position of the inputs shaft or rotating member. Such profile represents the non-ideality of the pump (non- constant pump displacement as the angle of the input shaft changes over one revolution) and is referred to herein as ^^^^^^, where V is the pump displacement (e.g., in cc / rev) and ^ is the angle of the input shaft (e.g., the input shaft 202) or a rotating member (e.g., the rotating member 206) of the pump (e.g., the piston pump 200). Assuming that the input shaft rotates at a speed ^, then the fluid flow rate of the pump can be expressed as: ^^ ൌ ^^^^^^. ^^

[0086] The flow Q is non-uniform because, while a pump can be assigned a nominal pump displacement value, the actual pump displacement varies or shifts slightly based on the angle of the input shaft or rotating member. Thus, the actual instantaneous flow being discharged at a given rotational speed ^ depends on the angle of the input shaft.

[0087] To ensure that Q is constant, the first derivative of the Q with respect to time is set to be equal to zero: ^^^^ ^^^^ 0^^ଶ ^ ^^^^^^. ^^^

[0088] This equation expresses how the angular or rotational acceleration ^^^ (e.g., non-constantspeed profile) of the input shaft can be varied to maintain a constant flow rate output from thepump. Particularly, the controller can cause the input shaft to track a non-constant speed profile to make flow rate Q constant. Tracking such non-constant speed profile cancels or counters variations in the pump displacement V over a revolution of the input shaft. Such non-constant speed can be expressed as ொ ^^ఏ^.

[0089] Further, aequation for the electric motor and pump can be expressed as follows: ^^^^^ ൌ ^^^ െ ^^^^^^. ^^ െ ^^^^^^,^^,^^^Where J is the inertia of the electric motor, ^eis a commanded torque (the torque that the electric motor applies to the rotating group of the pump) that cancels instantaneous flow ripple, ^fis torque losses, and p is the operating pressure (e.g., in bar) of the pump. This equation expresses what torque ^ecan be applied to counter flow ripple while tracking a desired speed profile as indicatedby ^^^ , thus maintaining a constant flow rate output from the pump.

[0090] The commanded torque ^ecan be expressed as follows: ^^ ^^^^ ^^^ൌ ^^^^^^ฬ ^^^^^^ଶ െ ^^^^^^^^ ^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^ఏ

[0091] The first term ^ డ^ ^ ^^ଶindicates a torque value that is applied to follow the desired ఏspeed profile and flow ripple. Particularly, this term ^ డ^ଶ^^ ^^ ^^ is the torque ఏ that is to be added to increase a speed of, or slows down, the inertiamotor and the pump to follow the desired speed profile.

[0092] The second term ^^^^^^^^ indicates a torque value that cancels or counters load torque fluctuations per angle. Particularly, the operating pressure at the outlet of the pump applies a backtorque that can slow down the pump and electric motor, thereby causing a variation in the actual pump displacement based on the angle. This second torque term ^^^^^^^^ can counter such effect of pressure.

[0093] The third term “Normal Control” can be the normal torque command (e.g., the reference torque command 508) provided by the speed control module 502.

[0094] As such, the commanded torque ^eexpressed by the equation above is determined by the controller and provided as a command torque to cancel the torques that cause fluctuations in the pump displacement based on the angular position of the input shaft, while following a particular speed profile to cancel flow ripple (e.g., torque ^e is equal to ^ plus ^prof , so ^e is the final command provided to the torque loop).

[0095] In one example, the speed and torque modifiers or attenuators (e.g., the speed modifier 522, the torque modifier 524, speed profile, ^e, etc.) are applied in an open loop configuration without feedback. This allows the sampling time to be small, and may render control system more stable.

[0096] Figure 6 is a block diagram of a control architecture of the control system 500, according to an example. For example, the block diagram of Figure 6 depicts one example implementation of the control system 500 or a portion thereof.

[0097] At block 600, the controller can have access to an n-dimensional pump map (as described above) or model for a given pump. The map or model can include inputs and variables such as pump type, nominal pump displacement, a steady state model of pump performance, acceleration limits, jerk limits, etc.

[0098] A supervisory control block 602 can have a pump configurator module 604 that receives information from the block 600 and determines a particular configuration and operating parameters of the pump being controlled (pump type, pump displacement, speed and pressure limits, etc.).

[0099] A ripple estimator block 606 has access to or receives sensor information such as motor speed feedback, motor rotation angle feedback, pump pressure feedback, and can be configured to estimate, based on such information, pressure and flow output of the pump. The ripple estimator block 606 may further identify parameters such as top dead center and bottom dead center positions (e.g., of a piston pump), and may also perform an FFT analysis to identify the frequency response (e.g., the fundamental frequency and harmonics) of pump flow.

[0100] Information from the ripple estimator block 606 and the pump configurator module 604 are provided to an estimator module 608 with the supervisory control block 602. The estimator module 608 can accordingly estimate the pump instantaneous flow and pressure. For example, the estimator module 608 can have access to a pre-trained motor and pump dynamic module. Based on the information from the ripple estimator block 606 and the pump configurator module 604, in addition to sensor feedback indicating torque and speed of the electric motor, for example, the estimator module 608 can use such information and the pre-trained model to estimate the pump instantaneous flow and pressure.

[0101] Information generated by the modules of the supervisory control block 602 are provided to a command tuning block 610. For example, the instantaneous pump angle (input shaft angle), variables or parameters indicating the form of the flow ripple (e.g., frequencies, maximum and minimum flow values, average flow values), etc. can be provided to the command tuning block 610. The command tuning block 610 can also receive or can have access to operator desired speed and torque (e.g., indicated via a joystick or other input device), whether the controller is in anenable state, angular position, speed, current, and torque feedback for the electric motor, fluid temperature, pump pressure, the angle of the swashplate in the case the pump is a piston pump, etc.

[0102] Responsively, the command tuning block 610 can determine the desired motor speed and motor torque (e.g., based on the equations detailed above to determine the speed modifier 522 and the torque modifier 524). The command tuning block 610 can then provide an updated motor speed command and an updated motor torque command back to the supervisory control block 602.

[0103] The supervisory control block 602 can further modify the commands before providing them to the motor controller (e.g., the inverter) of the electric motor. For example, the motor speed command can be multiplied by a proportional gain at gain block 612, and the motor torque command can be multiplied by a respective proportional gain at gain block 614.

[0104] In an example, the supervisory control block 602 may include an online learning module 616. The online learning module 616 can apply constraints on the speed and torque command, and may adapt the commands as performance of the electric motor and pump changes over time or over various operating conditions.

[0105] In one example, the online learning module 616 can have access to limits on torque, current, acceleration, and jerk limits of the electric motor and the pump, where such limits ensure safe operation. The online learning module 616 can have a power limitation control module that applies limits on the speed and torque commands accordingly.

[0106] The online learning module 616 can also implement the operations described above with respect to the ANN 404, the ANN 410, the ANN learning algorithm 408, and / or the ANN learning algorithm 420. The online learning module 616 can thus perform operations to synchronize themodels (e.g., the ANN 404, the ANN 410) with actual sensor feedback information. The online learning module 616 may also apply acceleration and deceleration control limitations on the motor speed and torque commands. Any limitations or modifications generated by the online learning module 616 can be implemented via the gain blocks 612, 614, for example.

[0107] As such, pump flow ripple can be reduced or countered to reduce the noise and vibration resulting therefrom. Figure 7A is a graph 700 illustrating change in speed profile to counter pump flow ripple, according to an example implementation. The y-axis show instantaneously pump flow and speed profile of the rotating member of the pump. The x-axis shows the angular position of the input shaft or rotating member of a pump over one revolution. Line 702 represents expected pump flow without flow ripple compensation, and thus exhibits flow ripple as depicted. Line 704 shows a speed profile of the rotating member of the pump to counter flow ripple as described above.

[0108] As shown, the speed profile is out of phase with (e.g., a mirror image of) the expected instantaneous flow of the pump before compensation. As such, if the expected instantaneous flow of the pump (without ripple compensation) tends to increase during a portion (e.g., 7 degrees) of one revolution of the input shaft, the speed of the rotating member of the pump decreases to maintain a substantially constant flow rate. Conversely, if the expected instantaneous flow of the pump (without ripple compensation) tends to decrease during a following portion of the revolution of the input shaft or rotating member of the pump, the speed of the rotating member is increased by the electric motor to maintain a substantially constant flow rate. This way, ripple can be reduced.

[0109] Figure 7B is a graph illustrating reduction of pump flow ripple, according to an example implementation. Line 706 represents the resulting fluid flow rate after applying the currentcommand of the line 704. As show, the line 706 is substantially flat, indicating that flow ripple has been reduced or substantially eliminated.

[0110] Figure 8 is a block diagram of an controller 800, according to an example implementation. The controller 800 represents any of the controllers (e.g., the motor controller 108), modules, or blocks described above with respect to Figures 1, 4-6.

[0111] The controller 800 may have processor(s) 802, a communication interface 804, and data storage 806, each connected to a communication bus 808. The controller 800 may also include hardware to enable communication within the controller 800 and between the controller 800 and a communication bus of a machine (e.g., a machine including any of the electric motors and pumps described above), for example. The hardware may include transmitters, receivers, and antennas, for example.

[0112] The communication interface 804 may be a wireless interface and / or one or more wireline interfaces that allow for both short-range communication and long-range communication to one or more networks or to one or more remote devices (e.g., to allow communication with a communication bus of a machine). Such wireless interfaces may provide for communication under one or more wireless communication protocols, Bluetooth, Wi-Fi (e.g., an institute of electrical and electronic engineers (IEEE) 402.11 protocol), Long-Term Evolution (LTE), cellular communications, near-field communication (NFC), and / or other wireless communication protocols. Wireline interfaces may include an Ethernet interface, a CAN network interface, a USB interface, or similar interface to communicate via a wire, a twisted pair of wires, a coaxial cable, an optical link, a fiber-optic link, or other physical connection to a wireline network. Thus, the communication interface 804 may be configured to receive input data from the communication bus of the machine or any of its components, and may be configured to send output data to thecommunication bus. In that manner, the communication interface 804 or other communication ways may enable the controller 800 to receive information from sensors and send command signals to other components (e.g., inverter controlling an electric motor).

[0113] The data storage 806 may include or take the form of one or more computer-readable storage media that can be read or accessed by the processor(s) 802. The computer-readable storage media can include volatile and / or non-volatile storage components, such as optical, magnetic, organic or other memory or disc storage, which can be integrated in whole or in part with the processor(s) 802. The data storage 806 is considered non-transitory computer readable media. In some examples, the data storage 806 can be implemented using a single physical device (e.g., one optical, magnetic, organic or other memory or disc storage unit), while in other examples, the data storage 806 can be implemented using two or more physical devices.

[0114] The data storage 806 thus is a non-transitory computer readable storage medium, and executable instructions 810 are stored thereon. The executable instructions 810 include computer executable code. When the executable instructions 810 are executed by the processor(s) 802, the processor(s) 802 are caused to perform the operations implemented by any of the controllers, modules, blocks described herein.

[0115] The processor(s) 802 may be a general-purpose processor or a special purpose processor (e.g., digital signal processors, application-specific integrated circuits (ASIC), etc.). The processor(s) 802 may receive inputs from the communication interface 804, and process the inputs to generate outputs that are stored in the data storage 806. The processor(s) 802 can be configured to execute the executable instructions 810 (e.g., computer-readable program instructions) that are stored in the data storage 806 and are executable to provide the functionality of the controller 800 described herein

[0116] Figure 9 is a flowchart of a method 900 for controlling an electric motor to reduce pump flow ripple, according to an example implementation. The method 900 can be implemented by one or more components of the control system 500, the controller 800, or any of the modules or blocks described above, for example.

[0117] The method 900 may include one or more operations, or actions as illustrated by one or more of blocks 902-904. Although the blocks are illustrated in a sequential order, these blocks may in some instances be performed in parallel, and / or in a different order than those described herein. Also, the various blocks may be combined into fewer blocks, divided into additional blocks, and / or removed based upon the desired implementation.

[0118] In addition, for the method 900 and other processes and operations disclosed herein, the flowchart shows operation of one possible implementation of present examples. In this regard, each block may represent a module, a segment, or a portion of program code, which includes one or more instructions executable by a processor (e.g., the processor(s) 802 of the controller 800) for implementing specific logical operations or steps in the process. The program code may be stored on any type of computer readable medium or memory, for example, such as a storage device including a disk or hard drive. The computer readable medium may include a non-transitory computer readable medium or memory, for example, such as computer-readable media that stores data for short periods of time like register memory, processor cache and Random Access Memory (RAM). The computer readable medium may also include non-transitory media or memory, such as secondary or persistent long term storage, like read only memory (ROM), optical or magnetic disks, compact-disc read only memory (CD-ROM), for example. The computer readable media may also be any other volatile or non-volatile storage systems. The computer readable medium may be considered a computer readable storage medium, a tangible storage device, or other articleof manufacture, for example. In addition, for the method 900 and other processes and operations disclosed herein, one or more blocks in Figure 9 may represent circuitry or digital logic that is arranged to perform the specific logical operations in the process.

[0119] At block 902, the method 900 includes determining a variation of a pump displacement with an angular position of an input shaft (e.g., the shaft 106, or the input shaft 202) of a pump (e.g., the pump 102, the piston pump 200) over a revolution of the input shaft, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per the revolution of the input shaft, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and wherein the input shaft of the pump is driven by an electric motor (e.g., the electric motor 104).

[0120] At block 904, the method 900 includes controlling, by an electronic controller (e.g., the motor controller 108, any of the modules or blocks of Figures 5-6, the controller 800), based on the variation of the pump displacement, the electric motor to drive the input shaft at a rotational speed that varies over the revolution of the input shaft to counter the variation of the pump displacement and reduce the flow ripple.

[0121] The method 900 can further include any of the steps performed by the control system 500 or any of the module, controllers, blocks described above.

[0122] The detailed description above describes various features and operations of the disclosed systems with reference to the accompanying figures. The illustrative implementations described herein are not meant to be limiting. Certain aspects of the disclosed systems can be arranged and combined in a wide variety of different configurations, all of which are contemplated herein.

[0123] Further, unless context suggests otherwise, the features illustrated in each of the figures may be used in combination with one another. Thus, the figures should be generally viewed as component aspects of one or more overall implementations, with the understanding that not all illustrated features are necessary for each implementation.

[0124] Additionally, any enumeration of elements, blocks, or steps in this specification or the claims is for purposes of clarity. Thus, such enumeration should not be interpreted to require or imply that these elements, blocks, or steps adhere to a particular arrangement or are carried out in a particular order.

[0125] Further, devices or systems may be used or configured to perform functions presented in the figures. In some instances, components of the devices and / or systems may be configured to perform the functions such that the components are actually configured and structured (with hardware and / or software) to enable such performance. In other examples, components of the devices and / or systems may be arranged to be adapted to, capable of, or suited for performing the functions, such as when operated in a specific manner.

[0126] By the term “substantially” or “about” it is meant that the recited characteristic, parameter, or value need not be achieved exactly, but that deviations or variations, including for example, tolerances, measurement error, measurement accuracy limitations and other factors known to those with skill in the art, may occur in amounts that do not preclude the effect the characteristic was intended to provide.

[0127] The arrangements described herein are for purposes of example only. As such, those skilled in the art will appreciate that other arrangements and other elements (e.g., machines, interfaces, operations, orders, and groupings of operations, etc.) can be used instead, and some elements may be omitted altogether according to the desired results. Further, many of the elementsthat are described are functional entities that may be implemented as discrete or distributed components or in conjunction with other components, in any suitable combination and location.

[0128] While various aspects and implementations have been disclosed herein, other aspects and implementations will be apparent to those skilled in the art. The various aspects and implementations disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the following claims, along with the full scope of equivalents to which such claims are entitled. Also, the terminology used herein is for the purpose of describing particular implementations only, and is not intended to be limiting.

[0129] Embodiments of the present disclosure can thus relate to one of the enumerated example embodiments (EEEs) listed below.

[0130] EEE 1 is a method comprising: determining a variation of a pump displacement with an angular position of a rotating member of a pump over a revolution of the rotating member, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and wherein the rotating member of the pump is driven by an electric motor; and controlling, by an electronic controller, based on the variation of the pump displacement, the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple.

[0131] EEE 2 is the method of EEE 1, further comprising: determining, by the electronic controller, a speed command for the electric motor driving the rotating member; and determining, by the electronic controller, based on the variation of the pump displacement, a speed modifier, wherein controlling the electric motor comprises sending a modified speed command, based onthe speed command and the speed modifier, to the electric motor to drive the rotating member at the rotational speed that varies over the revolution of the rotating member.

[0132] EEE 3 is the method of any of EEEs 1-2, wherein the rotational speed varies based on the angular position of the rotating member over the revolution.

[0133] EEE 4 is the method of any of EEEs 1-3, further comprising: controlling, by the electronic controller, in an open loop configuration, based on the variation of the pump displacement, the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

[0134] EEE 5 is the method of EEE 4, wherein the torque applied by the electric motor is determined to increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple.

[0135] EEE 6 is the method of any of EEEs 4-5, wherein pressure of fluid discharged by the pump applies a back torque on the pump and the electric motor, and wherein the torque applied by the electric motor is determined to counter the back torque.

[0136] EEE 7 is the method of any of EEEs 1-6, wherein determining the variation of the pump displacement comprises: identifying a type of the pump.

[0137] EEE 8 is the method of EEE 7, wherein identifying the type of the pump comprises identifying that the pump is a piston pump, wherein the method further comprises: determining a number of pistons of the pump.

[0138] EEE 9 is the method of EEE 8, wherein determining the number of pistons of the pump comprises: performing, by the electronic controller, a Fast Fourier Transform (FFT) analysis of the flow ripple; and determining a fundamental frequency and harmonics of the flow ripple.

[0139] EEE 10 is the method of any of EEEs 1-9, wherein determining the variation of the pump displacement comprises: receiving information indicative of a type of the pump and operating condition of the pump; and using a map to correlate the type and the operating condition of the pump with a particular profile of variation of the pump displacement.

[0140] EEE 11 is the method of EEE 10, wherein the map changes during operating life of the pump using an online learning system as performance of the pump changes over time.

[0141] EEE 12 is the method of any of EEEs 1-11, wherein controlling the electric motor comprises: increasing the rotational speed of the rotating member during a first portion of the revolution in which the pump displacement decreases; and decreasing the rotational speed of the rotating member during a second portion of the revolution, following the first portion, in which the pump displacement increases.

[0142] EEE 13 is a hydraulic system comprising: a fluid reservoir; a pump that is fluidly coupled to the fluid reservoir; an electric motor driving a rotating member of the pump, causing the pump to draw fluid from the fluid reservoir and discharge fluid to a hydraulic actuator, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per a revolution of the rotating member; an angular position sensor providing information indicative of an angular position of the rotating member; and a motor controller performing operations comprising: determining a variation of a pump displacement with the angular position of the rotating member over the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged fromthe pump, and controlling, based on the variation of the pump displacement, the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple.

[0143] EEE 14 is the hydraulic system of EEE 13, wherein the operations further comprise: determining a speed command for the electric motor driving the rotating member; and determining, based on the variation of the pump displacement, a speed modifier, wherein controlling the electric motor comprises sending a modified speed command, based on the speed command and the speed modifier, to the electric motor to drive the rotating member at the rotational speed that varies over the revolution of the rotating member.

[0144] EEE 15 is the hydraulic system of any of EEEs 13-14, wherein the operations further comprise: controlling, based on the variation of the pump displacement, the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

[0145] EEE 16 is the hydraulic system of EEE 15, wherein the torque applied by the electric motor is determined to increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple.

[0146] EEE 17 is the hydraulic system of any of EEEs 15-16, wherein pressure of fluid discharged by the pump applies a back torque on the pump and the electric motor, and wherein the torque applied by the electric motor is determined to counter the back torque.

[0147] EEE 18 is a control system comprising: a speed control module that receives a commanded speed for an electric motor based on flow demand for a pump having a rotating member driven by the electric motor, wherein the pump is characterized by a nominal pumpdisplacement that indicates a volume of fluid to be discharged per a revolution of the rotating member, wherein the speed control module determines, based on the commanded speed, a torque command to achieve the commanded speed; a torque control module that receives the torque command from the speed control module, and responsively provides a current command to the electric motor to achieve the torque command; and a profiles module that (i) determines a variation of a pump displacement with an angular position of the rotating member of the pump over the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and (ii) provides a speed modifier that modifies the commanded speed, based on the variation of the pump displacement, thereby modifying the torque command to cause the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple the rotating member.

[0148] EEE 19 is the control system of EEE 18, wherein the profiles module further provides a torque modifier, based on the variation of the pump displacement, that modifies the current command provided to the electric motor, thereby causing the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

[0149] EEE 20 is the control system of EEE 19, wherein the torque applied by the electric motor is determined to (i) increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple, and (ii) counter a back torque applied to the electric motor and the pump due to pressure of fluid discharged by the pump.

Claims

CLAIMS What is claimed is:

1. A method comprising: determining a variation of a pump displacement with an angular position of a rotating member of a pump over a revolution of the rotating member, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and wherein the rotating member of the pump is driven by an electric motor; and controlling, by an electronic controller, based on the variation of the pump displacement, the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple.

2. The method of claim 1, further comprising: determining, by the electronic controller, a speed command for the electric motor driving the rotating member; and determining, by the electronic controller, based on the variation of the pump displacement, a speed modifier, wherein controlling the electric motor comprises sending a modified speed command, based on the speed command and the speed modifier, to the electric motor to drive the rotating member at the rotational speed that varies over the revolution of the rotating member.

3. The method of claim 1, wherein the rotational speed varies based on the angular position of the rotating member over the revolution.

4. The method of claim 1, further comprising: controlling, by the electronic controller, in an open loop configuration, based on the variation of the pump displacement, the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

5. The method of claim 4, wherein the torque applied by the electric motor is determined to increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple.

6. The method of claim 4, wherein pressure of fluid discharged by the pump applies a back torque on the pump and the electric motor, and wherein the torque applied by the electric motor is determined to counter the back torque.

7. The method of claim 1, wherein determining the variation of the pump displacement comprises: identifying a type of the pump.

8. The method of claim 7, wherein identifying the type of the pump comprises identifying that the pump is a piston pump, wherein the method further comprises:determining a number of pistons of the pump.

9. The method of claim 8, wherein determining the number of pistons of the pump comprises: performing, by the electronic controller, a Fast Fourier Transform (FFT) analysis of the flow ripple; and determining a fundamental frequency and harmonics of the flow ripple.

10. The method of claim 1, wherein determining the variation of the pump displacement comprises: receiving information indicative of a type of the pump and operating condition of the pump; and using a map to correlate the type and the operating condition of the pump with a particular profile of variation of the pump displacement.

11. The method of claim 10, wherein the map changes during operating life of the pump using an online learning system as performance of the pump changes over time.

12. The method of claim 1, wherein controlling the electric motor comprises: increasing the rotational speed of the rotating member during a first portion of the revolution in which the pump displacement decreases; and decreasing the rotational speed of the rotating member during a second portion of the revolution, following the first portion, in which the pump displacement increases.

13. A hydraulic system comprising: a fluid reservoir; a pump that is fluidly coupled to the fluid reservoir; an electric motor driving a rotating member of the pump, causing the pump to draw fluid from the fluid reservoir and discharge fluid to a hydraulic actuator, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per a revolution of the rotating member; an angular position sensor providing information indicative of an angular position of the rotating member; and a motor controller performing operations comprising: determining a variation of a pump displacement with the angular position of the rotating member over the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and controlling, based on the variation of the pump displacement, the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple.

14. The hydraulic system of claim 13, wherein the operations further comprise: determining a speed command for the electric motor driving the rotating member; and determining, based on the variation of the pump displacement, a speed modifier, wherein controlling the electric motor comprises sending a modified speed command, based on the speedcommand and the speed modifier, to the electric motor to drive the rotating member at the rotational speed that varies over the revolution of the rotating member.

15. The hydraulic system of claim 13, wherein the operations further comprise: controlling, based on the variation of the pump displacement, the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

16. The hydraulic system of claim 15, wherein the torque applied by the electric motor is determined to increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple.

17. The hydraulic system of claim 15, wherein pressure of fluid discharged by the pump applies a back torque on the pump and the electric motor, and wherein the torque applied by the electric motor is determined to counter the back torque.

18. A control system comprising: a speed control module that receives a commanded speed for an electric motor based on flow demand for a pump having a rotating member driven by the electric motor, wherein the pump is characterized by a nominal pump displacement that indicates a volume of fluid to be discharged per a revolution of the rotating member, wherein the speed control module determines, based on the commanded speed, a torque command to achieve the commanded speed;a torque control module that receives the torque command from the speed control module, and responsively provides a current command to the electric motor to achieve the torque command; and a profiles module that (i) determines a variation of a pump displacement with an angular position of the rotating member of the pump over the revolution of the rotating member, wherein the variation of the pump displacement over the revolution causes flow ripple in a flow rate of fluid discharged from the pump, and (ii) provides a speed modifier that modifies the commanded speed, based on the variation of the pump displacement, thereby modifying the torque command to cause the electric motor to drive the rotating member at a rotational speed that varies over the revolution of the rotating member to counter the variation of the pump displacement and reduce the flow ripple the rotating member.

19. The control system of claim 18, wherein the profiles module further provides a torque modifier, based on the variation of the pump displacement, that modifies the current command provided to the electric motor, thereby causing the electric motor to apply a torque that counters the variation of the pump displacement and reduce the flow ripple.

20. The control system of claim 19, wherein the torque applied by the electric motor is determined to (i) increase a speed of, or slow down, an inertia of the electric motor and the pump to follow a desired speed profile that counters the variation of the pump displacement and reduce the flow ripple, and (ii) counter a back torque applied to the electric motor and the pump due to pressure of fluid discharged by the pump.

Citation Information

Patent Citations

  • Hydraulic pump system with output fluctuation compensation function and related method

    CN114696710A

  • Method and Device for Monitoring and Controlling a Hydraulic Actuated Process

    US20090220352A1

  • Control system and method of a VFD-based pump and pump system

    US20180080443A1

  • Hydraulic machines and systems

    US20200386101A1

  • Hydraulic fracturing pump control system

    US20220090594A1