METHOD FOR DETERMINING A FLUID FLOW RATE THROUGH A PUMP
20210148739 · 2021-05-20
Inventors
- Peter Elvekjær (Bjerringbro, DK)
- Jesper Thørring Jensen (Bjerringbro, DK)
- Carsten Christensen (Bjerringbro, DK)
Cpc classification
F05D2270/304
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D13/06
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F05D2270/335
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
H02P29/60
ELECTRICITY
F04D15/0088
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F05D2270/709
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D1/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F05D2270/71
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F02D41/1401
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04B2205/09
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
International classification
F04D1/00
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
F04D25/06
MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
Abstract
Computer-implemented methods are disclosed for determining a flow rate of fluid flow at a target time through a pump, such as a centrifugal pump, the pump being driven by a pump motor. An illustrative method includes, in some aspects: receiving at least one set of previous parameter values including a first previous parameter value indicative of a first operational parameter of the pump motor at a previous time, earlier than the target time, and a second previous parameter value indicative of a second operational parameter of the pump motor at the previous time, and receiving a current set of parameter values including a first current parameter value indicative of the first operational parameter of the pump motor at the target time and a second current parameter value indicative of the second operational parameter of the pump motor at the target time.
Claims
1. A computer-implemented method for determining a flow rate of fluid flow at a target time through a pump driven by a pump motor, the method comprising: receiving at least one set of previous parameter values including a first previous parameter value indicative of a first operational parameter at a previous time, earlier than the target time, and a second previous parameter value indicative of a second operational parameter at the previous time; receiving a current set of parameter values including a first current parameter value indicative of the first operational parameter at the target time and a second current parameter value indicative of the second operational parameter at the target time; computing the flow rate of fluid flow at the target time from the current set of parameter values and from the at least one set of previous parameter values.
2. A computer-implemented method according to claim 1, further comprising receiving a plurality of sets of previous parameter values, each set of previous parameter values being indicative of the first and second operational parameters at respective previous times, each previous time being earlier than the target time.
3. A computer-implemented method according to claim 1, wherein the first operational parameter is indicative of a frequency or rotational speed of the pump motor.
4. A computer-implemented method according to claim 1, wherein the second operational parameter is indicative of a power, in particular an electrical power, of the pump motor.
5. A computer-implemented method according to claim 1, wherein second operational parameter is indicative of an electrical current fed into the pump motor.
6. A computer-implemented method according to claim 1, wherein the set of current parameter values and each set of previous parameter values include parameter values of a third operational parameter.
7. A computer-implemented method according to claim 6, wherein, in addition to a parameter value indicative of the first operational parameter, the set of current parameter values and each set of previous parameter values include parameter values of the power of the pump motor and of the electrical current fed into the pump motor.
8. A computer-implemented method according to claim 1, wherein the computing of the flow rate of fluid flow at the target time is based on a computational model that relates the current and previous parameter values of the respective operational parameters with the flow rate at the target time.
9. A computer-implemented method according to claim 8, wherein the computational model includes a dynamic model that maintains an internal state, wherein the computation of the flow rate at the target time is based on the current set of parameter values and on a previously calculated internal state, wherein the previously calculated internal state of the dynamic model depends on the one or more sets of previous parameter values.
10. A computer-implemented method according to claim 9, further comprising computing a current internal state of the model from the current set of parameter values and from the previously calculated internal state, the current internal state being maintained for use in a subsequent step for computing, from a subsequent set of parameter values and from the current internal state, a subsequent internal state and a subsequent flow rate at a subsequent target time.
11. A computer-implemented method according to claim 8, wherein the computational model comprises a machine learning model, in particular a recurrent neural network model.
12. A computer-implemented method according to claim 11, wherein the machine learning model comprises a neural network model, wherein the neural network model comprises a recurrent portion and one or more feed-forward portions, in particular one or more convolutional network layers followed by one or more recurrent network layers.
13. A data processing system configured to perform the acts of the method according to claim 1.
14. A computer program configured to cause a data processing system to perform the acts of the computer-implemented method according to claim 1.
15. A pump system comprising a pump assembly and a data processing system according to claim 13.
16. A computer-implemented method according to claim 1, wherein the pump is a centrifugal pump.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034] The above and other aspects will be apparent and elucidated from the embodiments described in the following with reference to the drawing in which:
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
DETAILED DESCRIPTION
[0046]
[0047] The pump assembly comprises a pump 110 and a pump drive 120. The pump 110 may be a centrifugal pump or a different type of pump. The pump 110 has an inlet 111 for suction of water or a different fluid, such as of a different liquid. The pump 110 also has an outlet 112 for providing the output flow of the pump. The pump drive 120 comprises a motor 121, such as an electrical motor, and a motor drive circuit 122. The motor drive circuit may include a frequency converter for supplying the motor with electrical energy and/or other circuitry for controlling operation of the motor 121. The motor drive circuit may be connectable to a suitable power supply (not shown) in order to supply the drive circuit, e.g. a frequency converter, with electric energy. During operation, the motor 121 drives the pump causing the pump to pump fluid from the inlet 111 to the outlet 112 at a flow rate Q.
[0048] The data processing system 200 may be a suitably programmed computer or other data processing device; alternatively the data processing system may be a distributed system including more than one computer. For example, the data processing system may be a suitably programmed tablet computer, smartphone or the like. Other examples of a data processing system may include a control system configured to control one or more pump assemblies. The data processing system is communicatively coupled to the pump assembly 100, e.g. via a wired or wireless connection. In particular, the data processing system 200 may be communicatively coupled to the pump drive 120, such as to the motor drive circuit 122. The communication between the pump assembly and the data processing system may be a direct communication link or an indirect link, e.g. via one or more nodes of a communications network. Examples of a wired connection include a local area network, a serial communications link, etc. Examples of wireless connections include radio frequency communications link, e.g. Wifi, Bluetooth, cellular communication, etc.
[0049] The data processing system 200 comprises a suitably programmed processing unit 210 and a memory 220. The memory has stored thereon a computer program and/or data for use by the processor.
[0050] During operation, the data processing system 200 receives parameter values from the pump assembly 100. The received parameter values are indicative of a first operational parameter of the pump motor and of a second operational parameter of the pump motor. In particular, the first operational parameter may be indicative of a frequency or a rotational speed (rpm) of the pump motor. The second operational parameter may be indicative of a power (P), in particular an electrical power, of the pump motor or of an electrical current (i) fed into the pump motor. In some embodiments, the data processing system may receive parameter values of one or more additional or alternative operational parameters of the pump motor and/or other sensor data, e.g. temperature data.
[0051] The data processing system 200 may receive the parameter values intermittently, e.g. periodically, e.g. such that the data processing system receives first and second time series of parameter values indicative of the first and second parameter, respectively, at different points in time. The pump assembly may transmit the parameter values automatically or upon request of the data processing system. Each parameter values may be associated with a time stamp.
[0052] The processing unit 210 computes a computed flow rate Q′ of fluid flow through the pump 110 based on the received parameter values. In particular, the processing unit is configured to compute the flow rate at a target time, e.g. a current flow rate, based on the received parameter values indicative of the first and second parameters at the target time and from received parameter values indicative of the first and second parameters at one or more earlier times, earlier than the target time. Typically, the parameter values indicative of the first and second parameters at one or more earlier times are parameter values which the data processing system has received from the pump assembly at one or more earlier times, earlier than a time of receipt of the parameter values indicative of the first and second parameters at the target time. To this end, the processing unit stores the received parameter values in memory 220 and/or the processing unit stores an internal state of a computational model in memory where the internal state depends on the parameter values indicative of the first and second parameters at the one or more earlier times. The data processing system 200 comprises an output interface 230, e.g. a display or other user-interface and/or a data communications interface, an interface to a data storage device, and/or the like. The data processing system may thus be configured to output the computed flow rate Q′ via the output interface 230.
[0053] An example of a computational model for computing the flow rate will be described in more detail below.
[0054]
[0055]
[0056] At step S1, the process is initialised. In particular the process initialises an internal state of a computational model. It will be appreciated that the internal state of the model may be defined by a single value of a single model parameter or by multiple values of respective model parameters. The internal state may e.g. be initialised to one or more predetermined initial values. The process stores the internal state in a memory, e.g. in a RAM associated with the processing unit executing the process. The process also initialises a time to an initial time, e.g. time t=0.
[0057] At step S2, the time is incremented. It will be appreciated that the time may be incremented by a fixed or by a variable interval. In some embodiments the time may be incremented based on a time of receipt of current parameter values or based on a time stamp received from the pump drive associated with received parameter values, i.e. in some embodiments, incrementing the time may be performed as part of subsequent step S3. For the purpose of the present description, for simplicity of presentation, the time parameter t will be considered as an index, i.e. incrementing the time will be represented as t−>t+1.
[0058] At step S3, the process receives a set of current parameter values {p}.sub.t from a pump drive. The received current parameter values represent the parameter values at the current time. The set includes a first parameter p.sub.1 and a second operational parameter p.sub.2. The first parameter may represent a frequency or rotational speed (rpm) of the pump motor and the second parameter may represent a power P of the pump motor. Accordingly, in one embodiment, p.sub.1=rpm and p.sub.2=P. In another embodiment the second operational parameter is the electric current I fed into the pump motor, i.e. p.sub.1=rpm and p.sub.2=I. In yet another embodiment, the process receives three parameters, e.g. p.sub.1=rpm, p.sub.2=P and p.sub.3=I. It will be appreciated that other embodiments of the process may receive additional or alternative parameters, in particular additional or alternative operational parameters of the pump motor and/or other sensor data. As mentioned above, in some embodiments the process receives the current time t as an additional parameter.
[0059] At step S4, the process computes an estimated flow rate Q′.sub.t from the received current parameter values and from the stored internal state of the computational model that is retrieved from memory. As will be apparent from the description below, during an initial iteration, the stored internal state may be the state determined during the initialisation step. In subsequent iterations, the stored internal state is the state that was computed during a previous iteration of the process, i.e. in respect of a previous time, in particular in respect of time t−1. The internal state of the model retrieved from memory will thus be designated as S.sub.t-1. The computation may thus be represented as
Q′.sub.t=f({p}.sub.t,S.sub.t-1),
i.e. Q′.sub.t is computed as a function f of {p}.sub.t and S.sub.t-1.
[0060] At step S5, the process computes an updated internal state S.sub.t (also referred to as the current internal state) of the computational model from the previous internal state S.sub.t-1 retrieved from memory and from the received current parameter values:
S.sub.t=g({p}.sub.t,S.sub.t-1),
i.e. S.sub.t is computed as a function g of {p}.sub.t and S.sub.t-1.
[0061] At step S6, the process stores the current internal state S.sub.t in the memory for use in a subsequent iteration of the process. It will be appreciated that step S5 may be performed as an integral part of step S4.
[0062] At step S7, the process outputs the computed estimated flow rate Q′.sub.t. The computed flow rate thus represents the flow rate at the current time. For example, the process may display the computed estimated flow rate or a value derived therefrom, e.g. an averaged estimated flow rate, such as an averaged flow rate averaged over a number of time steps, or a relative flow rate relative to a nominal flow rate or a desired flow rate. Alternatively or additionally, the process may output the computed estimated flow rate in a different manner, e.g. communicate the flow rate to another process or device, log or otherwise store the computed estimated flow rate, and/or the like.
[0063] Unless the process is terminated, the process returns to step S2 where the time is incremented, and where a new set of current parameter values is received and processed. During the subsequent iteration of the process, the internal state used for the computation of the flow rate is the internal state computed in the previous iteration, i.e. the internal state is based on one or more previously received sets of parameter values. In particular, when the new internal state depends on a current set of parameter values and on the current internal state, the internal state maintains information about a plurality of previous parameter values.
[0064] In some embodiments, alternative or in addition to the dependence of the estimated flow rate on the internal state of the computational model, the computation of the estimated flow rate may explicitly depend on previously received parameter values, e.g.
Q′.sub.t=h({p}.sub.t,{p}.sub.t-1, . . . ,{p}.sub.t-K) or Q′.sub.t=h({p}.sub.t,S.sub.t-1,{p}.sub.t-1. . . ,{p}.sub.t-K)
i.e. Q′.sub.t is computed as a function h of at least the current parameter values {p}.sub.t and of K (K>0) previous sets of parameter values {p}.sub.t-1, . . . , {p}.sub.t-K.
[0065]
[0066] The computational model receives respective time series of the power of the pump motor, the rotational speed of the pump motor and of the electrical current driving the pump motor. It will be appreciated that, in other embodiments, the model may receive alternative and/or additional parameters. In some embodiments, the model may receive the time steps as an explicit additional input series.
[0067] The model input is input to an optional pre-processing stage 310. The pre-processing stage may perform one or more pre-processing steps, such as scaling of the respective parameters.
[0068] In some embodiments, the pre-processing step may compute processed parameters, e.g. combinations from the received parameters. Examples of such combination include a linear combination of two or more parameters, a polynomial of one or more of the received parameters, one or more roots of such a polynomial, a plurality of possible solutions of an analytical model and/or the like.
[0069] The pre-processed time series are fed into a multilayer neural network model 320.
[0070] In particular, the neural network model 320 comprises an initial 1-dimensional convolutional layer 321. For each time series, the convolutional layer computes a convolution of the input with a convolution kernel. The 1d convolutional layer may receive a suitable number of time steps, e.g. between 10 and 100 time steps. The output of the convolutional layer may be considered as filtered values that are down-sampled relative to the input time series which may result in a reduced calculation time in the subsequent recurrent layers.
[0071] The 1d convolutional layer as an initial layer has been found useful, because the data is down sampled, which speeds up the training of the subsequent recurrent layers (LSTM/GRU). Moreover, it is believed that the convolution may help to reduce the sensitivity of the model to the size of the time steps, which may be varying during operation.
[0072] The output of the convolutional layer 321 is fed into a recurrent layer 322, e.g. a GRU layer or an LSTM layer. The recurrent layer includes a plurality of recurrent nodes that each computes an output which depends on the input to the recurrent node and on an internal state which is also updated.
[0073] The output of the recurrent layer 322 is fed into a fully connected hidden layer 323 which comprises a plurality of hidden nodes. Each hidden node receives as inputs the outputs of some or all recurrent nodes of the preceding recurrent layer 322, weighted by respective weights, and outputs an activation function of a sum of the weighted inputs.
[0074] The model further comprises an output node 324 which receives the outputs of all hidden nodes of hidden layer 323, weighted by respective weights, and outputs an activation function of a sum of the weighted inputs. The output of the output node represents the flow rate. The output of the output node 324 may be fed through a post-processing block 330 which may e.g. perform a suitable scaling and/or other post-processing steps and output the final estimated flow rate Q′.
[0075] It will be appreciated that alternative embodiments may employ other computational models, such as neural networks with other model architectures. For example, in some embodiments, the initial convolutional layer may be omitted and the time series may be input directly into a recurrent layer. Other embodiments may include more than one convolutional layer where the output of the initial convolutional layer is fed into a subsequent convolutional layer. The recurrent layer may thus receive the output of a final convolutional layer of a series of two or more convolutional layers. Alternatively or additionally, some embodiments of a neural network model may include more than one recurrent layer such that the recurrent nodes of a subsequent recurrent layer receive the outputs of some or all of the recurrent nodes of a previous recurrent layer. It will further be appreciated that other combinations or successions of different types of layers may be used. Similarly, the various layers may include different numbers of nodes (also referred to as “neurons”). The nodes of successive layers may be fully connected or partially connected by respective weights to the nodes of the preceding layers.
[0076]
[0077] Typically, a layer of a recurrent neural network model comprises a plurality of nodes that each operate in a parallel fashion. At each time step, each node receives an input and computes an output. The node also updates an internal state of the node for use in a subsequent time step.
[0078]
[0079] At time step t, the node 501 receives an input i.sub.t. The input i.sub.t may be [0080] one of the operational parameters of the motor, e.g. the motor power P.sub.t, the motor current I.sub.t, the motor speed rpm.sub.t or the like, or a parameter derived from, or otherwise associated with the operational state of the motor. [0081] a vector representing multiple operational parameters—for example, the network may comprise an input layer comprising one input node for each operational parameter—, or [0082] the output of a previous layer, e.g. a vector of the outputs of respective nodes of a previous layer of the neural network model, e.g. of a convolutional layer or of a previous recurrent layer.
[0083] At time step t, the node 501 computes an output o.sub.t. The output o.sub.t is fed as an input to a subsequent layer or to an output node of the neural network model. Accordingly, the output node or the subsequent layer may receive a vector of the outputs of the nodes of the layer to which node 501 belongs.
[0084] In particular, the node 501 computes the output o.sub.t as
o.sub.t=α(W.sub.o.Math.i.sub.t+U.sub.o.Math.S.sub.t+V.sub.o.Math.c.sub.t+b.sub.o)
[0085] Here α is an activation function, e.g. a sigmoidal function, e.g. a tanh or the like. W.sub.o is a weight matrix which is determined during training of the neural network. S.sub.t and c.sub.t represent the internal state of the node 501 at time t and U.sub.o, V.sub.o and b.sub.o are sets of weight parameters that are determined during training of the network.
[0086] The values S.sub.t and c.sub.t are retrieved from internal memory, e.g. memory 220 of
[0087] The network may be trained by a suitable supervised training method. To this end, a training set may be constructed such that each example of the training set represents a path, i.e. a sequence of points, in a suitable parameter space. If the network, during operation, is to receive the motor speed (rpm) and motor power (P) and to output the flow rate Q through the pump, the training examples may be chosen as a sequence of points in a (rpm, P, Q) space. If alternative or additional input parameters are used, a corresponding parameter space may be used. The training examples may be generated by operating a physical pump at different rpm and P and by measuring the corresponding flow rates Q. Alternatively or additionally, training examples may be synthetically created based on computational models describing the pump performance.
[0088]
[0089] It is important to note that, while numerical models of the pump operation may be used to create training examples, these models do not always allow the flow rate Q to be estimated from the other operational parameters of the pump motor (e.g. from the rotational speed and power). In particular, the same sets of operational parameters (e.g. the same rpm and P values) may map onto different flow rates. This is illustrated in
[0090] The inventors have realized that using a computational model that employs a time history of input parameters for predicting the flow rate provides an accurate flow rate prediction. In particular, use of a suitably trained recurrent neural network has been found to provide accurate predictions of the flow rate.
[0091] During training of the network model, e.g. the model described with reference to
[0092] The prediction quality of a trained machine learning model may be validated based on suitable validation examples, i.e. based on examples of paths through the chosen parameter space for which the actual flow rates are known but which have not been used for the training of the model.
[0093]
[0094]
[0095]
[0096]
[0097] In some embodiments of the process described herein, the process may, e.g. for each time step, determine the possible solutions of an analytical model and feed the possible solutions as additional parameters into the dynamic computational model. For example, the possible solutions may be calculated in an initial stage of the model and fed into a subsequent machine learning portion of the model, e.g. into the neural network model 320 described above with reference to
[0098] For instance, when the process receives a new set of parameters, e.g. (Pn, In, Sn), where Pn, In and Sn are the received power, current and speed value at time step n, respectively, the model may evaluate a polynomial Pn as Pn=a1*Q{circumflex over ( )}3+a2*In{circumflex over ( )}3+a3*Sn{circumflex over ( )}3+a4*Q{circumflex over ( )}2*In+other terms in Pn, In, Sn and/or Q with a corresponding set of constants (a1, a2, a3, etc.). The constants may be found using known performance data of the motor. These constants can be said to represent a compressed version of the performance data set of the given pump, which may thus be regarded as additional information to the model.
[0099] This polynomial can then be solved for Q, which may result in two plausible solutions, where one of those solutions is relatively close to the real flow-value. However, based on the analytical model and the current parameter values alone it is difficult, if not impossible, to reliably and accurately determine which of the plausible solutions is the correct solution.
[0100] Therefore, in some embodiments, these two solutions, i.e. the two (or more), resulting flow estimate values, are fed as additional parameters into the computation machine learning model.
[0101] Embodiments of the method described herein can be implemented by means of hardware comprising several distinct elements, and/or at least in part by means of a suitably programmed microprocessor. In the apparatus claims enumerating several means, several of these means can be embodied by one and the same element, component or item of hardware. The mere fact that certain measures are recited in mutually different dependent claims or described in different embodiments does not indicate that a combination of these measures cannot be used to advantage.
[0102] It should be emphasized that the term “comprises/comprising” when used in this specification is taken to specify the presence of stated features, elements, steps or components but does not preclude the presence or addition of one or more other features, elements, steps, components or groups thereof.