Automatic pool cleaner traction correction

A pool cleaner is provided including a top housing, a chassis and a computing system. The computing system can include a PID control module for maintaining a process variable at a setpoint value. The PID control module can receive the setpoint value for the process variable and can monitor the process variable to calculate the phase difference between the setpoint value of the process variable and the present state of the process variable. The PID control module can automatically tune the PID control module to account for the pool surface the pool cleaner is cleaning by using the phase difference previously calculated.

BACKGROUND

Field

The present invention relates to a pool cleaner, and, more specifically to a pool cleaner with automatic cleaner traction correction to account for different swimming pool surfaces and conditions.

Related Art

Swimming pools commonly require cleaning. Beyond the treatments and filtration of pool water, the bottom wall and side walls of a pool are scrubbed regularly. Automated pool cleaning devices, e.g., swimming pool cleaners, have been developed to routinely navigate about the pool walls, cleaning as they go.

During cleaning, the pool cleaner will traverse the pool surfaces brushing or scrubbing the debris therefrom. The pool cleaner can be designed to operate at a certain speed while traversing certain walls or operating in certain modes. However, due to many different variables such as obstacles in the pool, changes in pressure, and different pool surfaces, the speeds and angular rates of the pool cleaner can change to an undesirable speed while cleaning the pool.

In order to overcome this problem, pool cleaners can be designed to have a setpoint, which is a desired target for a process variable. In the case of maintaining the angular rate of a pool cleaner, the process variable could be the angular rate of the pool cleaner. Accordingly, the pool cleaner can monitor the angular velocity of the cleaner and if there is an error, the pool cleaner can adjust the motors speed instruction in an effort to achieve the setpoint on the angular velocity of the cleaner.

A pool cleaner can adjust the motor speed instruction based on a “Proportional Integral Derivative” or “PID” control loop formula which takes into account the present error, historical error and future error in deviations from the desired set-point on the angular velocity (or other process variable). In other words, a PID control loop accounts for the input at the present moment, things learned from historical data, and the future projected data. Each one of the three parts to the PID control loop can have a constant factor or coefficient associated with it, also known respectively as “proportional gain,” “integral gain,” and “derivative gain.” Each “gain” represents how much emphasis or weight to put on that part of the formula. In some situations, it could be desirable to focus only on present and historical errors, in which case the gain for the D component is zero, which would result in a “PI” control loop. Alternatively, it could be desirable to focus only on the present error, in which case the gain for the I and D components are zero, which results in a “P” control loop. As used herein, the term “PID” control module can be understood to include within its scope, a “PI” control module (in which the derivative gain is 0) and a “P” control module (in which the integral gain and the derivative gain is 0).

The process of pre-assigning gain values can be called “tuning.” The issue with tuning pool cleaners is that some fixed set of gain values may perform well on some pool surfaces while not performing well on other surfaces because of the difference in traction on the wheels of the pool cleaner. Moreover, pool surfaces can vary greatly from one pool to another. The surfaces can range from concrete, vinyl, fiberglass, tile, and many variations in between. Accordingly, it is difficult to tune the gain values in advance because it cannot be known what pool surface the cleaner will clean.

Therefore, there exists a need for a pool cleaner designed with the ability to automatically account for the differences in traction on any pool surface it may encounter while cleaning.

SUMMARY

A pool cleaner is provided including a top housing, a chassis and a computing system. The computing system can include a PID control module, for example, for maintaining a process variable at a setpoint value. The PID control module can be operable to execute various instructions. First, the PID control module can receive the setpoint value for the process variable in memory. Second, the PID control module can monitor the process variable of the pool cleaner while it is cleaning a pool surface to obtain a present state of the process variable. Third, the PID control module can calculate the phase difference and ultimate gain between the setpoint value of the process variable and the present state of the process variable. Finally, the PID control module can automatically tune (“auto-tune”) the PID control module to account for the pool surface the pool cleaner is cleaning by using the phase difference and ultimate gain previously calculated.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to a pool cleaner with automatic cleaner traction correction to account for different swimming pool surfaces, as discussed in detail below in connection withFIGS. 1-6. Any type of pool cleaner can be used, e.g., a positive pressure pool cleaner, a negative pressure (suction) pool cleaner, and/or a robotic (electric/robot) pool cleaner. However, given that the present disclosure operates with electricity, the present disclosure is preferably, but not necessarily, used with a pool cleaner whose primary power source is electricity (e.g., a robotic pool cleaner). However, the present disclosure could be provided in connection with a pool cleaner whose primary source of power is negative pressure (suction) and/or positive pressure, such as in connection with a battery provided for some functionality.

Examples of robotic (electrical) cleaners are disclosed in U.S. Pre-Grant Patent Application Publication No. 2016/0215516, published Jul. 28, 2016, entitled “Swimming Pool Cleaner With Hydrocyclonic Particle Separator And/Or Six-Roller Drive System” (Hayes/Teuscher/Marciano), U.S. Pre-Grant Patent Application Publication No. 2016/0244988, published Aug. 25, 2016, entitled “Pool Cleaner With Optical Out-Of-Water And Debris Detection” (Barcelos/Teuscher), and U.S. Pat. No. 8,869,337, issued Oct. 28, 2014, and entitled “Pool cleaning device with adjustable buoyant element” (Sumonthee), and the contents of each and all of the foregoing are hereby incorporated by reference.

With reference toFIG. 1, a pool cleaner10is provided. The cleaner10includes a top housing12, a bottom housing14, a plurality of wheels16, and a plurality of rollers18. The top housing12includes a lid20which is pivotally associated with the bottom housing14. For example, the bottom housing14and top housing12may include a hinge22for hingedly connecting the lid20relative to the bottom housing14. The top housing can also include a handle24for facilitating extraction of the cleaner10from a pool.

The bottom housing14includes side panels24and front panel26. Together, the top housing12, the bottom housing14, side panels24, and front panel26form a cavity for housing various internal components within the cleaner10. The bottom housing14allows the plurality of wheels16to be secured to the cleaner10. The plurality of wheels16allow the cleaner10to traverse the swimming pool surfaces to clean debris. The plurality of wheels16is an example of a means for traversing a pool surface to be cleaned. The means for traversing a pool cleaner can include, but is not limited to, tank treads, rollers and similar means. The plurality of rollers18facilitate the collection of debris and particles into the cleaner10.

The cleaner10is connected to an external power supply28. The power supply28generally includes a transformer/control box30and a power cable32in communication with the transformer/control box30and the cleaner10. In an exemplary embodiment, the pool cleaner10is an electrical pool cleaner.

Reference will now be made toFIG. 2showing an exploded view of the pool cleaner10. The pool cleaner10houses a filter34for collecting debris from the swimming pool. The pool cleaner10also houses a motor drive36for driving the plurality of wheels16. A float can be used to turn the cleaner10. Alternatively, two motors can be used for a differential drive. The motor drive36can receive electrical control signals from a computing system44, also housed within the pool cleaner10. A person of ordinary skill in the art can appreciate that there are many suitable ways to house the computing system44so that it can monitor and send signals to the plurality of wheels16to achieve the purpose of the present disclosure. Furthermore, a person of ordinary skill in the art would appreciate that the computing system44can be potted with a compound or otherwise sealed to prevent water damage when the cleaner is submerged and cleaning a swimming pool. The computing system44contains the functionality to control the plurality wheels16to implement automatic traction control and account for varying pool surfaces to maintain a setpoint speed of the pool cleaner as will be discussed in greater detail below.

Reference will now be made toFIG. 3showing a block diagram of a cleaner control system using a PID control loop system46. The PID control loop system46includes, for example, a bus47, a storage device48, central processing unit or microprocessor50, a random access memory52, and a network interface54. The bus47allows data to be transferred from the various components in the system46. The storage device48includes a PID control module56for generating the proper instructions for a drive system58which controls the plurality of wheels16to provide automatic traction control. The network interface54allows the system46to be updated via wireless or Ethernet connection. In particular, the network interface54allows the system46to have updated historical data, as will be explained in greater detail below.

Reference will now be made toFIG. 4which shows a PID control loop equation60of the PID control functionality for the pool cleaner10. The PID control module56can have a setpoint angular velocity for the cleaner induced by the motor driving the plurality of wheels16. Setpoint angular velocity is used in the present application as only an example, and the present disclosure can be applied to monitoring any process variable. While the pool cleaner10is operating, the PID control module56can receive information regarding the body angular velocity by using a gyroscope sensor, optical flow or similar means known to those of ordinary skill in the art. If the body angular velocity is outside a setpoint range, the PID control module56will use the equation60to determine the bias to the motor speed instruction in an effort to course-correct the pool cleaner10to achieve the desired setpoint range. It should be noted that the setpoint range can be any setpoint range suitable to those of ordinary skill in the art. The present disclosure is not limited by a certain setpoint range. The equation60includes three primary parts in determining the amount of bias to apply to the motor speed instruction. First, the proportional component62constitutes the present error. Second, integral component64constitutes the historical error. Third, the derivative component66constitutes the future error. Each of these three primary parts of equation60has two subparts. The proportional component62has a proportional gain68and the calculation for the magnitude of error70. The integral component64has an integral gain72and a calculation for the integral of error74for determining the historical error. The derivative component66has a derivative gain76and a derivative calculation for the future error78for determining the projected future error. The three gain values are constants which can apply a “weight” to each respective part of the equation60. For example, a gain of 0 for the derivative gain76means the equation60and the control functionality does not take future error66into account and therefore the control functionality is reduced to PI control.

FIG. 5is a flowchart of the auto-tuning process80shown in greater detail. The auto-tuning process automatically sets the proportional gain68, integral gain72, and derivative gain76of equation60. Automatically setting these gain values is advantageous because a constant preset gain value could allow the PID control functionality to perform well on one pool surface while not allowing proper performance on different pool surface. The number of pool surfaces may vary significantly, so the automatic tuning process80can account for any pool surface the cleaner10may encounter. The automatic tuning process80starts with step82where the process80receives a setpoint body angular velocity. The setpoint body angular velocity can be called the commanded value of the angular velocity. The setpoint body angular velocity can be any desirable velocity known to those of ordinary skill in the art. The setpoint body angular velocity can be set upon manufacture of the pool cleaner10or it can be updated remotely through the network interface54.

As shown inFIG. 6, the setpoint angular velocity can be represented as a wave92on an oscilloscope. In step84, the automatic tuning process80monitors the present setpoint angular velocity (e.g., by measurement with a sensor). A person of ordinary skill in the art can use any known sensor in the art to obtain the angular velocity. The measured angular velocity can be represented as a second wave94on an oscilloscope. In step86, the automatic tuning process80makes a determination as to whether the present angular velocity is within the setpoint. If a positive determination is made, the process80proceeds to step84. If a negative determination is made, the process80will proceed to step88where it will calculate the phase difference between the setpoint body angular velocity and the measured body angular velocity, and the ultimate gain from the peaks of the measured body angular velocity. As shown inFIG. 6, the phase difference is shown as the difference between waves92and94, represented as theta(θ). The PID control module56can also send a signal to the motor drive36in order to bias the motor drive in an effort to course correct the pool cleaner10to maintain the cleaner10at the setpoint process variable.

In step90, the automatic tuning process80updates the proportional gain68, integral gain72, and derivative gain76in equation60. The automatic tuning process80uses the phase difference calculated in step88when updating the proportional gain68, integral gain72, and derivative gain76. There is a mathematical relationship between the phase difference and how much traction the plurality of wheels16have on the pool surface. There is also a relationship between how much traction the plurality of wheels16have and the material the pool surface is made of. From most traction to least traction, the following is an example of the relative traction on pool surfaces: concrete→vinyl→fiberglass→tile. Therefore, the PID control module56automatically tunes the pool cleaner10based on the traction and pool surface. The automatic tuning process80derives the proportional gain68, integral gain72, and derivative gain76by using the following function:
Phi=180−theta
Kp=Ku*cos(phi)
Kd=0.25*Ki
Ki=(tan(phi)+(tan(phi)^2+16)^(½))/(2*Wu)

The proportional gain68, integral gain72, and derivative gain76can be tuned based on surface the pool cleaner10is currently cleaning. For a concrete pool surface, the proportional gain68could be 5, the integral gain72could be 1, and the derivative gain76could be 0.25. For a vinyl pool surface, the proportional gain68could be 5, the integral gain72could be 1, and the derivative gain76could be 0.25. For a fiberglass pool surface, the proportional gain68could be 5, the integral gain72could be 1, and the derivative gain76could be 0.25. For a tile pool surface, the proportional gain68could be 5, the integral gain72could be 1, and the derivative gain76could be 0.25. There can be gain scheduling, e.g., where these gain values can be located in a look-up table stored in memory in the storage device48and retrieved based on the phase difference, e.g., based on the theta value. The PID control module56can receive an input from the user indicating which pool surface the cleaner10will clean. The PID control module56can receive this input via the network interface54or by a push button located on the cleaner10or on a central controller. A user can send the input from a smartphone, PDA, tablet or a similar device which can be received by the cleaner10via the network interface54. Upon receiving this input, the PID control module56can use the look-up table and input the proper gain values in the equation60. For example, a user interface could include buttons or a touchscreens that allow a user to input a choice/selection between a pool wall formed of concrete, vinyl, fiberglass, or tile, and then retrieve, calculate, and/or adjust the gain values accordingly. The system of the present application can tune one gain value, two gain values, or three gain values.

Additionally and/or alternatively, the PID control module56can auto-tune the gain values (e.g., calculate the gain values in real-time) where it automatically determines the correct gain values to input into the equation60by relying on the phase difference in theta calculated in step88. Depending on the phase difference, the PID control module56can automatically determine the correct pool surface and the many variations thereof. A look-up table is not required. Instead, the proportional gain68, integral gain72, and derivative gain76could be formulas themselves which are constantly updating. The formula for the gain values can be based on the theta value calculated in step88.

Reference will now be made toFIG. 7which is a flowchart illustrating processing steps96-106for an alternative embodiment for implementing automatic tuning of gain values. In step96, the pool cleaner10can receive a setpoint input signal. The setpoint input signal is not limited to angular velocity and can include other control parameters for the pool cleaner10. Further, the setpoint input signal is not limited to a signal in the frequency domain, but can include signals in the time domain. Examples of the setpoint input can include, but is not limited to, a swept sine wave, a square wave, or a step function. In step98, the pool cleaner10receives a response program for operating the pool cleaner. The response program can include, but is not limited to, minimum time for cleaning the pool, minimum energy used by the pool cleaner10, or minimum wear on the pool cleaner10. In step100, the cleaner executes the setpoint input signal with all gains set to unity. In step102, the pool cleaner10receives output data from the pool cleaner10.

In step104, the pool cleaner10executes a model estimation program which uses the data received from the pool cleaner10in step102to identify a plant model. The model estimation program can utilize a parametric approach for minimizing value functions or metrics. Minimizing functions can include methods of batch gradient descent where the function is quadratic or has a global minimum. Stochastic gradient descent can be used with multiple state methods to avoid local minima. Using a single metric, (L1, L2 norm, mean error), the pool cleaner10can implement a “leave-one-out” strategy for a linear model. A buffer can be used to contain the mean error, and the plant model representing the smallest mean error can be selected. In step106, an optimization program analyzes a plant model to determine the appropriate gain values. The present disclosure is not limited by any type of plant model, and the specific plant models discussed are for explanatory purposes only. One example of a plant model could be a linear dynamic model where traction is estimate as torque is applies to the right and left wheels of the pool cleaner10via tractive effort. The following is a representation of this model:
M{umlaut over (q)}=Bτ−Cλ
where

Another plant model could use a plucker transformation into body coordinated as shown below:

Still further, another plant model could modeled as a second order system in the laplace domain as show in the equation below:

The optimization program can take rely on the fact that a plant model can have an inherent stability criteria based on the physics of the plant model. The optimization program can analyze the plant model and determine the gain values by taking the laplace transform of the plant mathematical model, and factoring the transfer function into poles and zeros as shown in the following equation:

G⁡(s)=k⁢(s-z1)⁢(s-z2)⁢⁢…⁢⁢(s-zm)(s-p1)⁢(s-p2)⁢⁢…⁢⁢(s-pn)
The location of the poles are where the transfer function does undefined. A PID controller could have a transfer function in the following form:

Kp+Kis+Kd⁢s=kd⁢s2+kp⁢s+Kis
A closed loop transfer can be the product of the plant transfer function and the PID transfer function. As shown inFIG. 8, the root locus in the s plane of an (open-loop) transfer function H(s) is a plot of the locations (locus) of all possible closed-loop poles with proportional gain K and unity feedback.
The closed loop transfer function is:

Y⁡(s)R⁡(s)=KH⁡(s)1+KH⁡(s)
Where G(s)=H(s), the pool cleaner10can determine when a certain gain value will make the plant model and system response parameters go unstable as based on the location of the zeros and the poles.

In one embodiment, traction estimation of a pool cleaner10can implement a square wave input for the target (desired) angular rate. The angular rate can then be demuxed into motor speeds for both the left and right driver to provide rotation motion for the wheels of the pool cleaner10. The actual angular rate is recorded and a peak detection algorithm can be used to determine the ultimate gain and the period for the closed loop plant model. A peak detection algorithm can work by using a first in first out (“FIFO”) buffer which only adds values to the values which are greater or less than the last value. The peak estimation algorithm determines the open loop system response. The gain values modify the transfer function of the plant model from an open loop transfer function to a closed loop transfer function. The gain values become incorporated in the pool cleaner10dynamics. The plant model is a representation of the physics in the traction estimation algorithm for determining gain values. Modeling in the time domain can be used based on Ziger Nichols tunings. Varying levels of traction can act as a low pass filter to the system response of the cleaner10.

FIG. 9is a graph showing the step response over time of an implementation of an embodiment of the present disclosure.FIG. 9shows the step response of the pool cleaner10on a high and low traction surface.FIG. 10is a graph showing the phase difference between the pool cleaner10on a high traction and low traction surface.FIGS. 11 and 12describe the frequency response of the pool cleaner10on a low and high traction surface.FIG. 11in particular is a graph showing the frequency with respect to the magnitude andFIG. 12shows the frequency with respect to the phase.

Having thus described the invention in detail, it is to be understood that the foregoing description is not intended to limit the spirit or scope thereof. It will be understood that the embodiments of the present invention described herein are merely exemplary and that a person skilled in the art may make any variations and modification without departing from the spirit and scope of the invention. All such variations and modifications, including those discussed above, are intended to be included within the scope of the invention.