U.S. patent application number 15/359112 was filed with the patent office on 2020-05-14 for programmable temperature control system for pools and spas.
This patent application is currently assigned to Hayward Industries, Inc.. The applicant listed for this patent is Hayward Industries, Inc.. Invention is credited to Gilbert Conover, James Murdock, Kevin L. Potucek.
Application Number | 20200150701 15/359112 |
Document ID | / |
Family ID | 38345841 |
Filed Date | 2020-05-14 |
![](/patent/app/20200150701/US20200150701A9-20200514-D00000.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00001.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00002.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00003.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00004.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00005.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00006.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00007.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00008.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00009.png)
![](/patent/app/20200150701/US20200150701A9-20200514-D00010.png)
United States Patent
Application |
20200150701 |
Kind Code |
A9 |
Potucek; Kevin L. ; et
al. |
May 14, 2020 |
Programmable Temperature Control System For Pools And Spas
Abstract
A system and method are provided for controlling water
temperature in a body of water. The temperature control system
includes a processor, a user interface for receiving a desired
temperature and a desired time for reaching the desired
temperature, a sensor interface for receiving sensor information
from one or more sensors, and an actuator interface for controlling
a plurality of heat sources. The processor determines one or more
optimal heat sources for heating the body of water to the desired
temperature by the desired time. The processor controls the one or
more optimal heat sources through the actuator interface and
periodically polls the sensor interface to determine whether
changes in the operating environment require additional or
alternate heat sources to be activated to ensure that the body of
water is heated to the desired temperature by the desired time.
Inventors: |
Potucek; Kevin L.; (Far
Hills, NJ) ; Conover; Gilbert; (Providence, RI)
; Murdock; James; (Wakefield, RI) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Hayward Industries, Inc. |
Elizabeth |
NJ |
US |
|
|
Assignee: |
Hayward Industries, Inc.
Elizabeth
NJ
|
Prior
Publication: |
|
Document Identifier |
Publication Date |
|
US 20170285672 A1 |
October 5, 2017 |
|
|
Family ID: |
38345841 |
Appl. No.: |
15/359112 |
Filed: |
November 22, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11704718 |
Feb 9, 2007 |
9501072 |
|
|
15359112 |
|
|
|
|
60771762 |
Feb 9, 2006 |
|
|
|
60771656 |
Feb 9, 2006 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G05D 23/1923 20130101;
G05D 23/1931 20130101; E04H 4/129 20130101; G05D 23/1902
20130101 |
International
Class: |
E04H 4/12 20060101
E04H004/12; G05D 23/19 20060101 G05D023/19 |
Claims
1. A programmable temperature control system for a plurality of
bodies of water, comprising: a user interface for allowing a user
to specify a first desired temperature for a first body of water, a
first desired time by which the first body of water is to be heated
to the desired temperature, a second desired temperature for a
second body of water, and a second desired time by which the second
body of water is to be heated to the desired temperature; an
actuator interface for controlling a plurality of heat sources; and
a processor in electrical communication with the user interface and
the actuator interface, the processor executing a stored
temperature control program for automatically heating the first
body of water to the first desired temperature by the first desired
time and for automatically heating the second body of water to the
second desired temperature by the second desired time using at
least one of the plurality of heat sources.
2. The programmable temperature control system of claim 1, wherein
the actuator interface actuates a valve for diverting heated water
from one of the plurality of heat sources to one of the first or
second bodies of water.
3. A method for controlling temperature of a body of water,
comprising: acquiring a desired temperature for said body of water
and a desired time for reaching said desired temperature; selecting
an optimal heat source from a plurality of heat sources
operationally associated with said body of water; and heating said
body of water to said desired temperature by said desired time
using said optimal heat source.
4. The method of claim 3, further comprising receiving
environmental information from one or more sensors.
5. The method of claim 4, further comprising controlling the
optimal heat source based upon the received environmental
information.
6. The method of claim 4, further comprising actuating an
alternative heat source based upon the received environmental
information.
7. The method of claim 4, further comprising actuating a second
heat source in addition to said optimal heat source based up said
received environmental information.
8. The method of claim 3, wherein the step of selecting said
optimal heat source includes: calculating a required time value for
each of the plurality of heat sources to heat the body of water to
the desired temperature by the desired time; calculating an
efficiency value for each of the plurality of heat sources to heat
the body of water to the desired temperature by the desired time;
generating a heat source priority list containing an entry for each
of the plurality of heat sources; and sorting the heat source
priority list by the required time values and the efficiency
values.
9. The method of claim 8, wherein the step of selecting the optimal
heat source includes selecting a heat source with the highest
priority from the heat source priority and actuating the optimal
heat source to heat the body of water to the desired temperature by
the desired time.
10. The method of claim 8, wherein the step of calculating the
efficiency values includes determining an amount of energy required
by each of the plurality of heat sources to heat the body of water
to said desired temperature by the desired time.
11. The method of claim 8, wherein the step of calculating the
efficiency values includes determining a monetary cost for each of
the plurality of heat sources to heat the body of water to the
desired temperature by the desired time.
Description
RELATED APPLICATIONS
[0001] This application is a divisional application of and claims
the benefit of priority to U.S. patent application Ser. No.
11/704,718 filed on Feb. 9, 2007 and claims the benefit of priority
to U.S. Provisional Application Ser. No. 60/771,656 filed on Feb.
9, 2006, and U.S. Provisional Application Ser. No. 60/771,762 filed
on Feb. 9, 2006, the entire disclosures of which are expressly
incorporated herein by reference in their entirety.
BACKGROUND OF THE INVENTION
Field of the Invention
[0002] The present invention relates to temperature control
systems, and more particularly, to a programmable temperature
control system for pools and spas.
Background of the Invention
[0003] Various temperature controllers have, in the past, been
developed for pools and spas. One example is a simple thermostat
for controlling the temperature of water in a pool or spa. In such
a system, a heater is activated when the water temperature is below
a desired value, thereby heating the water. When the water
temperature reaches the desired temperature, the heater is
deactivated. The heater is then re-activated when the water
temperature falls below a predetermined threshold. This cycle is
continuously repeated so as to maintain the desired water
temperature in the pool or spa.
[0004] Heaters for pools and spas can be powered by numerous energy
sources, such as gas, oil, or electricity. Some systems employ
solar power. Still others combine solar power with conventional
oil, gas, or electric heat sources. One such system known in the
art is disclosed in U.S. Pat. No. 4,368,549 to Ramay (hereinafter
"the Ramay '549 patent"). The Ramay '549 patent discloses a
swimming pool heating system which uses a solar collector as a
primary heating source, supplemented by a heater powered by oil,
gas, or electricity. The temperature control system disclosed in
the Ramay '549 patent automatically adjusts the temperature
settings of the supplemental heater to conform to the temperature
versus time profile of an optimum solar collector heating
system.
[0005] Microprocessor-based swimming pool management systems are
known in the art. One example of such a system is disclosed in U.S.
Pat. No. 6,125,481 to Sicilano (hereinafter, the "Sicilano '481
patent"). The Sicilano '481 patent discloses a swimming pool
management system that automatically dispenses substances into a
pool. Other systems allow a user to specify a desired temperature
and a desired time at which the temperature is to be provided, and
control a heater so that the temperature is provided at the desired
time.
[0006] Despite efforts to date, improved temperature control
systems for pools and spas are needed that offer greater control of
efficiency when heating pools and spas, and/or flexibility in
heating pools and spas. These and other needs are addressed in the
systems and methods disclosed herein.
SUMMARY OF THE INVENTION
[0007] The present invention overcomes the disadvantages and
shortcomings of the prior art by providing a programmable
temperature control system for pools or spas which allows a user to
specify both a desired water temperature and a desired time at
which the temperature is to be achieved, and which automatically
selects one or more optimum heating sources from a plurality of
heating sources. The programmable temperature control system
includes a microprocessor-based controller connected to a plurality
of heater actuators, a plurality of valve actuators, and a
plurality of sensors. The plurality of sensors includes a water
temperature sensor, an ambient temperature sensor, an ambient
humidity sensor, an ambient light sensor, and, optionally, a depth
level sensor and a flow rate sensor. The heater actuators are
connected to a plurality of heaters, which could include gas,
electric, solar, or other types of heaters. The controller includes
a user interface (e.g., a keyboard and display) for allowing a user
to interact with a stored control program for controlling the water
temperature of a pool or spa. The stored control program allows the
user to operate in a manual mode or a program mode. In manual mode,
the user can specify a desired water temperature and a desired heat
source, and the system heats the water to the desired temperature.
Then, the system operates in a thermostat mode, wherein the water
temperature is monitored and the heater is controlled to maintain
the water temperature at the desired temperature.
[0008] In program mode, the user can activate one or more stored
temperature control programs. The stored temperature control
program allows the user to specify a desired water temperature and
desired time at which the temperature is to be achieved. The stored
temperature control program identifies the types of heaters present
in the system, and their respective power outputs. Based on
measured water temperatures, ambient conditions, the power outputs
of the heaters, and, optionally, water flow rates, the stored
temperature control program activates an optimum heater from the
plurality of heaters so that the desired water temperature is
provided at the desired time. The system can automatically switch
to another heater so as to achieve optimum efficiency, or operate
two or more heaters at the same time. For example, the stored
temperature control program can periodically poll the ambient light
sensor and ambient temperature sensor to determine whether the sun
is shining brightly and whether the ambient temperature is above a
predetermined threshold. In such a circumstance, the controller
could activate a solar heater to heat the pool water, thereby
increasing efficiency. Any desired types of stored temperature
control programs could be provided in the controller.
[0009] Further features and advantages of the present invention
will appear more clearly upon a reading of the following detailed
description of exemplary embodiment(s) of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] For a more complete understanding of the present invention,
reference is made to the following detailed description of
exemplary embodiment(s) considered in conjunction with the
accompanying drawings, in which:
[0011] FIG. 1 is a block diagram of a programmable temperature
control system for a pool and/or spa constructed in accordance with
an exemplary embodiment of the present invention;
[0012] FIG. 2 is a block diagram showing the controller of FIG. 1
in greater detail;
[0013] FIG. 3 is a perspective view of a control panel having a
display and keyboard for allowing a user to interact with the
controller of the present invention;
[0014] FIG. 4 is a flow chart showing processing steps of the main
control program executed by the controller of FIG. 2;
[0015] FIG. 5 is a flow chart showing processing steps of a stored
temperature control program in accordance with the present
invention;
[0016] FIG. 6 is a flow chart showing, in greater detail, the
thermostat mode carried out by the stored temperature control
program of FIG. 5;
[0017] FIG. 7 is a flow chart showing, in greater detail, a stored
temperature control sub-program executed by the control program of
FIG. 5;
[0018] FIG. 8 is a flow chart showing a procedure for determining
pool volume; and
[0019] FIG. 9 is a flow chart showing a procedure for creating a
heat source priority list.
[0020] FIG. 10 is a flow chart showing step 216 of FIG. 8 in
greater detail.
DETAILED DESCRIPTION OF THE INVENTION
[0021] FIG. 1 is a block diagram showing the programmable
temperature control system of the present invention, indicated
generally at 10. The control system 10 is operable with any pool or
spa. As shown in FIG. 1, the control system 10 is operable to
control the temperature of water 14 in a pool 12. The pool 12 can
be constructed in accordance with any desired design, and could
have any desired shape. Thus, for example, the pool 12 could
include dual main drains 16a, 16b, a skimmer 18, a pump 20, a
filter 22, a plurality of heaters 28a-28c, and return jets 34a,
34b. The control system 10 includes a plurality of valve actuators
26a-26c for selectively controlling valves 24a-24c, a plurality of
heater actuators 30a-30c, a controller 32, a water temperature
sensor 36, a depth level sensor 38, an inline temperature sensor
40, a flow rate sensor 42, an ambient temperature sensor 44, an
ambient humidity sensor 46, and an ambient light sensor 48. Of
course, the numbers and types of the sensors 36-48 could be varied
without departing from the spirit or scope of the present
invention. It should be noted that the depth level sensor 38 and
the flow rate sensor 42 are optional components. Further, it should
be noted that the inline temperature sensor 40 could be placed
downstream of the filter 22.
[0022] In the embodiment shown in FIG. 1, the heaters 28a-28c and
the valves 24a-24c are connected in a parallel configuration, but
any other desired combination (i.e., serial configuration) could be
provided. The heaters 28a-28c can be powered by any suitable energy
source, such as electricity, gas, oil, or solar power. The
controller 32 selectively actuates the valves 24a-24c (using the
valve actuators 26a-26c), as well as the heater actuators 30a-30c,
based upon ambient and water conditions so that an optimal one of
the heaters 28a-28c is operated to heat the water 14 of the pool
12. The valve actuators 26a-26c could be any commercially-available
actuator known in the art, such as a solenoid- or motor-driven
valve actuator.
[0023] The aforementioned ambient and water conditions are
monitored by the controller 32 using the sensors 36-48. The depth
level sensor 36 measures the depth of the water 14 in the pool 12
so that the controller 32 can approximate the total volume of water
14 in the pool 12. The water temperature sensor 38 measures the
temperature of the water 14 of the pool 12 as a whole. Optionally,
the inline temperature sensor 40 can also measure the temperature
of the water 14, and could be positioned between the pump 20 and
the filter 22 as an alternative to the water temperature sensor 38,
or in addition thereto. The sensor 42 measures the flow rate of the
water 14 between the pump 20 and the filter 22. The ambient
temperature sensor 44 measures the temperature of the air outside
of the pool 12. The ambient humidity sensor 46 measures the
humidity of the air outside of the pool 12. The ambient light
sensor 48, which could be a CdS photocell or any other suitable
light sensor, detects the presence and intensity of sunlight, which
is used by the controller 32 to determine the heating capacity of a
solar heater in the event that such a heater is provided as one of
the heaters 28a-28c. Further, the ambient light sensor 48 could be
a "black body" sensor, wherein a standard temperature sensor is
positioned within a black housing. It has been found that such an
arrangement provides increased sensitivity to heat generated by
sunlight. The heater actuators 30a-30c include circuitry for
actuating the heaters 28a-28c, and can also include temperature
sensors for measuring the temperature of heated water exiting from
the heaters 28a-28c.
[0024] In operation, the water 14 is pumped by the pump 20 from the
pool 12 via the main drains 16a, 16b and the skimmer 18. The water
14 passes through the filter 22, which could be any suitable
commercial or residential pool filter known in the art, to the
valves 24a-24c. The controller 32 operates one of the valves
24a-24c via a corresponding one of the valve actuators 26a-26c, and
activates one or more of the heaters 28a-28c using one of the
heater actuators 30a-30c for heating the pool water 14. It should
be noted that two or more of the heaters 28a-28c could be activated
simultaneously, if desired. The choice of heaters 28a-28c is based
on measurements obtained from the sensors 36-48, as well as
thermostats in the heater actuators 30a-30c, if provided. The
heated water 14 flows through return lines to output jets 34a, 34b,
which return the heated water to the pool 12.
[0025] FIG. 2 is a block diagram showing the components of the
controller 32 of FIG. 1 in greater detail. The components of the
controller 32 include a power supply 50, a clock 52, a processor or
central processing unit (CPU) 54, memory 56, a display 58, a
keyboard 60, input/output (I/O) bus circuitry 62, an actuator
interface 64, an analog-to-digital (A/D) converter 66, a
multiplexer (MUX) 68, a sensor interface 70, an external memory
interface 74, and an expansion bus 76. The power supply 50 can
include one or more AC-to-DC converters for supplying various
voltage levels to the components of the controller 32. The power
supply 50 can also include a ground fault circuit interrupter
(GFCI) to protect against ground faults. The clock 52 can be a
battery-backed, real time clock or a zero-crossing detector which
derives clock pulses from the AC power line.
[0026] Processor 54 can reside within an embedded system having an
external standard bus system. The bus system, such as STD, VME, or
any other bus type, can accept several types of expansion cards via
the expansion bus 76. The processor 54 could be the PIC 18F2620
microprocessor manufactured by Microchip, Inc. The processor 54
could be programmed in any suitable high or low level language
(e.g., assembler language), and it could also run any suitable
operating system. The memory 56 can include random access memory,
read-only memory, hard disk, FLASH memory, or any other suitable
memory circuit. Non-volatile memory for the system could also be
provided in the memory 56, and could be expanded as desired using
the external memory interface 74. The memory 56 (or external memory
plugged into the external memory interface 74) stores the control
logic executed by the present invention, as well as data gathered
from the sensors 36-48 and control signals for actuators 26a-26c
and the heater interfaces 30a-30c (and, optionally, temperature
readings provided by each of the heater interfaces 30a-30c). The
control logic of the present invention could be written in any
suitable high or low level programming language, and stored as
executable object code in the memory 56.
[0027] Referring now to FIGS. 2 and 3, the display 58 and the
keyboard 60 can be provided in a housing 80. The keyboard 60 can
include push buttons or a flat panel membrane for allowing a user
to interact with the controller 32 of the present invention. The
keyboard 60 acts as an array of on/off switches, which the
processor 54 receives as interrupts. These quantities can be
displayed on the display 58, which can be a vacuum-fluorescent
tube, an electroluminescent display, LCD display, etc. Optionally,
the keyboard 60 and display 58 could be replaced with a single
touch-sensitive display. Electrical wiring interfaces 82a, 82b
connect the keyboard 60 and the display 58 to the controller 32.
The keyboard 60 and the display 58 can reside in the vicinity of
the pool 12, or at a remote location, such as within a
dwelling.
[0028] Referring again to FIG. 2, the processor 54 includes a
number of general purpose, digital I/O control lines which can
drive outputs or receive inputs from other devices via the I/O bus
circuitry 62. The I/O bus circuitry 62 could also provide a path to
the processor 54 for receiving data and interrupts from a GFCI
within the power supply 50 when a ground fault is detected, as well
as data from the clock 52 and data entered at the keyboard 60. The
processor 54 utilizes the I/O bus circuitry 62 to drive the display
58. The processor 54 can receive measurements from the heater
actuators 30a-30c and the sensors 36-48 via the sensor interface
70, the analog-to-digital (A/D) converter 66, and the multiplexer
68. Additionally, the processor 54 can control one or more of the
valve actuators 26a-26c (e.g., to operate one or more of the valves
24a-24c of FIG. 1) and one or more of the heater actuators 30a-30c
(e.g., to activate one or more of the heaters 28a-28c of FIG. 1)
using the actuator interface 64 and the I/O bus circuitry 62. The
controller 32 can be electrically isolated from the valves 24a-24c
and the rest of the pool 12 via isolation circuitry within the
actuator interface 64, which may be implemented, for example, using
opto-isolators, solenoids, transformers, etc.
[0029] With reference to FIG. 4, a flow chart is shown illustrating
the main control program 100 of the present invention, which is
executed by the processor 54 of FIG. 2 upon application of power to
the controller 32. System hardware is initialized at step 102.
Then, in step 104, the registers of the controller are initialized
for use. This could be accomplished by setting all of the registers
of the controller 32 to pre-defined values. At this time, a loop
timer is also initialized for controlling overall program flow. In
step 106, a determination is made as to whether the loop timer has
expired. If a negative decision is made, step 106 is re-invoked. If
a positive determination is made (i.e., the loop timer has
expired), step 108 is invoked, wherein the loop timer is re-loaded.
In step 110, the circuitry of the controller is synchronized to the
frequency of the alternating current (AC) power supply connected to
the controller. Among other functions, this allows the controller
32 to synchronously read the sensors and update the relays,
actuators, and other devices connected to the controller 32.
[0030] In step 112, the controller updates all sensors connected to
the controller 32. Optionally, in this step, the controller 32 can
poll each sensor to determine the types of sensors connected to the
sensor interface 70, as well as the operational status of each
sensor (e.g., operational, failure mode, etc.). In step 114, the
controller 32 updates all relays and actuators connected thereto.
In step 116, the controller 32 checks for user input (such as user
input or "keypresses" using the keyboard 60 of FIG. 2). In step
118, the controller's memory is updated with the current day and
time information stored in the controller's clock (e.g., a
real-time clock). In step 120, all timers and clocks ("timeclocks")
utilized by the controller are then updated.
[0031] In step 122, the controller 32 acts on commands or
information entered by a user. For example, in this step, the user
can enter or change date and time information. In step 124, the
controller 32 executes a specialized control program loaded into
the memory of the controller 32, such as the stored temperature
control program of the present invention which will be discussed
hereinbelow. Optionally, in step 126, if an automated pool
chlorinator is connected to the controller 32, it is updated for
operation and control by the controller 32. In step 128, any errors
detected by the controller 32 are processed, including, but not
limited to, malfunctioning sensors or actuators connected to the
controller 32. In response to such errors, the controller 32 can
disable a malfunctioning sensor or actuator, display an error code,
or undertake any other preprogrammed action. In step 130,
non-volatile memory of the controller is updated, if applicable.
Finally, in step 132, any wired or wireless devices in
communication with the controller 32, including but not limited to,
handheld controllers, remote control panels connected to the
controller 32 (such as inside of a dwelling), or other devices, are
updated for use and control. Processing then returns to step
106.
[0032] With general reference to FIGS. 1, 2, and 5, and with
particular reference to FIG. 5, a flow chart is provided showing
processing steps of the stored temperature control program of the
present invention, indicated generally at 140. The stored
temperature control program 140 could be executed at step 124 of
the main control program 100 of FIG. 4. The stored temperature
control program 140 allows for both manual and program control of
one or more heaters to heat pool or spa water to a desired
temperature by a desired time. Upon the application of power to the
controller 32 (see FIG. 1), the processor 54 loads the stored
temperature control program 140 from the memory 56 and begins
executing a power-up procedure at step 142. During the power-up
procedure 142, which will be discussed in more detail hereinbelow
with reference to FIG. 6, input parameters are entered by the user
and sensor types and conditions are determined. After the power-up
procedure 142 is completed, step 144 is invoked, wherein the
processor 54 retrieves a flag from the memory 56 which indicates
whether the controller 32 is to operate in manual mode or program
mode, and whether an error condition is present. This flag is set
either during the power-up procedure in step 142, or by the user
when the user presses one of the keys on the keyboard 60 to select
an operating mode, which may cause an interrupt to be generated. Of
course, the controller 32 could be programmed to operate without
generating interrupts. If, at step 144, the processor 54 determines
that the controller 32 is to run in program mode, then at step 146,
the processor 54 executes a stored temperature control sub-program
which resides in the memory 56. This stored temperature control
sub-program will be described hereinbelow with reference to FIG. 8.
Operating in parallel is a process or task, illustrated in steps
148-150, which listens for interrupts (for example, from the
keyboard 60). If the processor 54 receives an interrupt at step
148, then the processor 54 could, if necessary or desirable,
deactivate any currently active heat sources (e.g., one of the
heaters 28a-28c of FIG. 1) at step 150 and return to step 144.
[0033] If, at step 144, the processor 54 determines that an error
condition has occurred, then at step 152, an error code is
displayed to the user on the display 58. At step 154, the processor
54 attempts to recover from the error condition, and determines
whether the error condition has been corrected. For example, the
processor 54 could poll a device experiencing an error (either in a
single poll or in a series of polls over a period of time) to
ascertain whether the device has returned back to an operational
state. If, at step 154, the processor 54 determines that the system
is able to recover from the error condition, the processor 54
returns to step 144 for further processing. If, at step 154, the
processor 54 determines that the system is not able to recover from
the error condition, the processor 54 enters a safe mode at step
156 wherein any currently active heat source (e.g., one of the
heaters 28a-28c of FIG. 1) is deactivated.
[0034] If, at step 144, the processor 54 determines that the
controller 32 is to run in manual mode, then at step 158, the
processor 54 prompts the user via the display 58 to enter a desired
temperature to which to heat the pool. After the user enters the
desired temperature at the keyboard 60, the desired temperature is
stored by the processor 54 in the memory 56. Then, at step 160, the
processor 54 prompts the user via the display 58 to enter a desired
heat source. After the user enters the desired heat source at the
keyboard 60, the desired heat source is stored by the processor 54
in the memory 56. At step 162, the processor 54 goes into
thermostat mode, to be described hereinbelow with reference to FIG.
7. Operating in parallel is a process or task, illustrated in steps
164-166, which listens for interrupts (for example, from the
keyboard 60). If the processor receives an interrupt at step 164,
then the processor 54 could, if necessary or desirable, deactivate
any currently active heat source (e.g., one of the heaters 28a-28c
of FIG. 1) at step 166 and return to step 144.
[0035] With reference to FIG. 6, which is a flow chart showing a
power-up procedure 142 of FIG. 5 in greater detail, the total
volume of water in the pool 12 is determined at step 168. The total
volume of water can be determined automatically as described
hereinbelow with reference to FIG. 9, or it can be entered by the
user. At step 170, the processor 54 polls the sensor interface 70
via the multiplexer 68 and the I/O bus circuitry 62 to determine
the numbers and the types of sensors present, and stores this
information in the memory 56. At step 172, the processor 54 polls
for the presence of a battery-backed clock (i.e., clock 52). If
such a clock is determined to be present at step 172, then at step
174, the processor 54 determines whether the clock 52 is running
properly. If not, then step 176 is invoked, wherein an error
condition is flagged and the processor 54 then goes into error
mode, and notifies the user of the error condition via the display
58. The processor 54 could also spawn a process or task to monitor
proper functioning of the clock 52, which process or task could run
in the background. If the clock 52 is running properly, then the
current time and date are retrieved by the processor 54 from the
clock 52, and this data is stored in the memory 56. If the
processor 54 determines that a battery-backed clock (i.e., clock
52) is not present, then step 178 is invoked, wherein the processor
54 prompts the user at the display 58 to enter the current time.
After the user has entered the current time at the keyboard 60, at
step 180, the processor 54 prompts the user at the display 58 to
enter the current date. After the user has entered the current date
at the keyboard 60, then at step 182, the processor 54 stores the
current time and date in the memory 56. It should be noted that the
power-up procedure 142 could be substituted with one or more of the
initialization procedures disclosed in connection with the main
control program 100 of FIG. 4 without departing from the spirit of
scope of the present invention.
[0036] Referring to FIG. 7, which is a flow chart showing the
thermostat mode 162 of FIG. 5 in greater detail, as well as to
FIGS. 1 and 2, the processor 54 takes a measurement in step 190 of
the temperature of the water 14 of the pool 12. At step 192, if the
temperature of the water 14 is less than the desired temperature,
then at step 194, the processor 54 activates a desired heat source
(i.e., one of the heaters 28a-28c). Then, at step 196, the
processor 54 delays a predetermined amount of time before returning
to take another water temperature measurement at step 190. The
delay could be pre-set by the manufacturer, or specified by the
user.
[0037] If, at step 192, the processor 54 determines that the water
temperature of the pool is equal to or greater than the desired
temperature, then at step 198, the processor 54 deactivates the
desired heat source. At step 200, the processor 54 delays a
predetermined amount of time before taking a water temperature
measurement at step 202. At step 204, the processor 54 then
calculates the difference (AT) between the desired temperature and
the present pool water temperature. At step 206, if the processor
54 determines that the absolute value of AT is greater than a
predetermined value (i.e., a maximum permissible temperature
deviation, which can be pre-set or specified by the user), then the
processor 54, at step 194, reactivates the desired heating source.
Otherwise, the program returns to step 200.
[0038] Referring again to FIG. 2, the processor 54 monitors pool
temperature by selecting one or more of the output lines associated
with the I/O bus circuitry 62 which, in turn, selects an address on
address lines (not shown) of the multiplexer 68. The address
corresponds to selecting the analog output voltage of the
temperature sensors 38 or 40, both of which measure the water
temperature of the pool. The analog output voltage of the sensor 38
or 40 is impressed upon the inputs of the A/D converter 66 via the
multiplexer 68 and the sensor interface 70. The A/D converter 66
converts the voltage to a digital bit stream which travels through
the I/O bus circuitry 62 to the processor 54. The processor 54
compares this temperature to the desired temperature stored in the
memory 56. To activate a desired heat source, the processor 54
enables one of the valve actuators 30a-30c via one of the I/O lines
of the I/O bus circuitry 62. This operates one of the valves
24a-24c which permits cool water 14 from the pool 12 to flow
through the selected one of the heaters 28a-28c to provide hot
water to the pool 12.
[0039] Referring to FIG. 8, which is a flow chart showing step 146
of FIG. 5 in greater detail, as well as to FIGS. 1 and 2, the
desired temperature of water in the pool 12 is determined in step
210. If the user has previously entered the desired temperature,
and no change in temperature is desired, then the processor 54
retrieves the desired temperature from the memory 56. If the user
wishes to change the desired temperature, or the desired
temperature has not been previously entered, then the processor 54
prompts the user at the display 58 for the desired temperature.
After receiving the desired temperature from the user via the
keyboard 60, the processor 54 stores the desired temperature in the
memory 56. At step 212, the desired time at which the desired
temperature is to be provided is determined. If the user has
previously entered the desired time, and no change in time is
desired, then the processor 54 retrieves the desired time from the
memory 56. If the user wishes to change the desired time, or the
desired time has not been previously entered, then the processor 54
prompts the user at the display 58 for the desired time. After
receiving the desired time from the user via the keyboard 60, then
the processor 58 stores the desired time in the memory 56.
[0040] At step 214, the processor 54 identifies the numbers and
types of heat sources present (e.g., heaters 28a-28c), and
determines the respective power outputs of each identified heat
source. The processor 54 polls the heater interfaces 30a-30c via
the I/O bus hardware 62, and then receives identification, model
type, and power output from the heater interfaces 30a-30c over the
I/O bus hardware 62. Alternatively, the processor 54 can determine
the presence of each of the heater interfaces 30a-30c, and retrieve
the model number and power output of each heat source from the
memory 56. The data for each heater stored in the memory 56 can be
preprogrammed at the factory, or it can be entered by the user
during the power-up procedure 142 (see FIG. 5). For a solar array
heating source, the processor 54 reads the current power output of
the ambient light sensor 48, which is indicative of the power
output of the entire solar array, and the processor 54 then makes a
calculation of estimated power output of the solar array. At step
166, the processor 54 calculates the current pool water volume, to
be described hereinafter with reference to FIG. 8. Based on current
pool temperature, the ambient air temperature, the power output of
each of the heating sources which are present, and, optionally, the
water flow rate, the processor 54 generates in step 216 a heating
source priority list, which will be described hereinbelow in
greater detail with reference to FIG. 9. The heating source
priority list can determine the most energy efficient and/or
fastest heating source at the present time for heating the pool 12
up to the desired temperature by the desired time.
[0041] At step 218, the processor 54 selects the optimal heating
source from the priority list generated at step 216. The processor
54 then enters thermostat mode at step 220 as previously described
with reference to FIG. 7. In addition, at step 222, the processor
54 updates the heating source priority list. Since the parameters
used to generate the heating source priority list, such as a change
in power output of the ambient light sensor 48, may have changed,
the processor 54 returns to step 164 to recalculate the heating
source priority list.
[0042] With reference to FIG. 9, which is a flow chart showing step
168 of FIG. 6 in greater detail, if the pool volume was previously
entered manually by the user during the start-up procedure 142 or
preset in the memory 56, then this volume value is retrieved from
the memory 56 in step 230 by the processor 54. If the pool volume
is to be determined by current conditions, the processor 54 takes a
depth measurement of the pool water 14 at step 232 by taking a
reading of depth level sensor 36 via the sensor interface 70, the
multiplexer 68, the A/D converter 66, and the I/O bus hardware 62.
The processor 54 then recalls the pool area from the memory 56 at
step 234. This pool area can be factory programmed, or entered by
the user during the start-up procedure 142 (see FIG. 5). At step
236, the depth measurement determined at step 232 is multiplied by
the pool area to obtain the current pool volume. It should be noted
that other algorithms may be employed to calculate the current pool
volume for pools that have irregular shapes. Moreover, the
controller of the present invention could be programmed to include
a volume of water corresponding to a pool or spa, or the user could
be prompted to enter such information into the controller. Other
attributes, such as the surface area of water in the pool or spa
could be pre-programmed or entered by the user.
[0043] Referring FIG. 10, which is a flow chart showing step 216 of
FIG. 8 in greater detail, as well as to FIGS. 1 and 2, the time it
would take for each heat source present to heat the current volume
of pool water to the desired temperature is calculated at step 240.
At a minimum, the current pool temperature must be determined from
a measurement from the temperature sensors 38 or 40. To obtain more
accurate calculations, measurements from the other sensors 42 and
44-48, and, optionally, temperature sensors within the heater
interfaces 30a-30c can be obtained by the processor 54.
[0044] The controller 32 of the present invention can calculate the
approximate time it will take for each of the heaters 28a-28c to
reach the desired temperature using known equations and stored
information about each of the heaters 28a-28c connected to the
controller, which could be preprogrammed by the manufacturer. For
example, the controller 32 could prompt the user to specify the
types of heating sources (i.e., heaters 28a-28c) that are present,
and could then retrieve from memory power outputs (e.g., in BTU's)
associated with the specified heating sources. Then, based upon the
volume of the pool and the associated power outputs of the heating
sources, the controller 32 can automatically calculate the time it
will take each heating source to reach the desired temperature
using known temperature calculations.
[0045] At step 242, based upon the estimated heating times, those
sources which can heat the pool to the desired temperature by the
desired time are determined and stored in the memory 56 along with
the energy efficiency of each heat source. At step 244, these
sources are arranged in a list in order of decreasing energy
efficiency and/or increasing heating time. As discussed earlier
with respect to FIG. 7, once the heating source priority list is
generated, an optimal heating source is selected from the list and
activated to heat the pool water. The optimal heating source is
then monitored using the aforementioned thermostat mode. It should
be noted that the controller 32 could be programmed to select a
most optimal heating source, and if such heating source is not
capable of achieving a desired temperature at a desired time, the
controller 32 could activate one or more additional heating sources
so that the desired temperature is provided at the desired
time.
[0046] The present invention is subject to numerous variations and
modifications. For example, the heaters 28a-28c and the valves
24a-24c can be arranged in a series configuration. To select a
particular heating source, all but one of the valves 24a-24c is
operated in bypass mode so that only the desired one of the heaters
28a-28c is not bypassed. In other embodiments, the multiple valves
24a-24c of FIG. 1, which are arranged in a parallel configuration,
can be replaced by a single multi-way valve.
[0047] As another example, other criteria can be used to generate
the priority list of step 216 of FIG. 8. Instead of ranking heaters
28a-28c based on energy efficiency, priority can be based on cost
efficiency, e.g., according to the costs associated with running
each heater for specified periods of time. Further, the heaters
28a-28c can be ranked in terms of speed (i.e., the minimum time it
would take a given one of the heaters 28a-28c to heat the pool 12
to the desired temperature). The time to heat the pool can be
determined with fewer sensors if estimates of parameters are used.
For example, flow rate, hot water temperature, and pool volume can
be replaced by factory programmed values, or parameters entered by
the user during the power-up procedure 142 (see FIG. 5) which can
be determined from the literature packaged with the equipment.
[0048] Additionally, the number of temperature sensors can be
increased to improve the accuracy of determining the best
representation of pool temperature. For instance, temperature
sensors can be placed at several locations and depths in the pool
12 and the average temperature of all the temperature sensors can
be taken as representing the temperature of the water 14 of the
pool 12. Other types of sensors can be included for measuring
quantities not directly related to determining a heating method,
such as sensors which measure the pH of the water 12, and a
pressure sensor for measuring the water pressure associated with
the filter 22 to detect a reduction of fluid flow through the
filter 22 due to sedimentation, etc.
[0049] The controller 32 could be programmed to determine if a
brown-out condition (e.g., a decrease in the AC voltage level being
supplied to the controller 32) occurs, as well as to prevent the
pump 20 or an electric heat source from being used if such a
condition is detected. The controller 32 could also include logic
for controlling a variable speed pump 20 and automatically
adjusting the speed of the pump 20 based on operating conditions.
Further, the controller 32 could allow the user to input time
ranges and corresponding costs for particular energy types, or
periodically programmed (locally through software updates, or
remotely through a data link connecting to the controller 32 to a
utility company) with such information. For example, the controller
32 could allow the user to enter a first cost for electricity
during peak hours (e.g. from 6:00 am to 10:00 pm) and a second cost
for electricity during non-peak hours (e.g. from 10:00 pm to 6:00
am). Still further, the controller 32 could include a wireless or
power line carrier (PLC) receiver for receiving signals
representing energy costs which are transmitted by a local electric
company. In such circumstances, the controller 32 could supplement
active heat sources with an electric heat source during non-peak
hours.
[0050] The controller 32 could also include a receiver for
receiving power control commands from a utility company to adjust
power consumption on demand. For example, the user may get a more
favorable rate for electricity if the local electric company is
permitted to periodically adjust electrical energy consumption.
Moreover, the controller 32 could include an actuator for
controlling an automatic pool covering device. For example, the
controller 32 could be programmed to ensure that the pool is
automatically covered at predetermined times or when the ambient
temperature reaches a predetermined threshold to minimize heat loss
due to evaporation. Still further, the controller 32 could be
connected to an actuator for controlling a water feature in a pool
or spa, such as a fountain or aerator, and programmed to control
such devices at desired times.
[0051] Additionally, a single controller of the present invention
could be programmed to control the temperatures of multiple bodies
of water, and associated equipment (such as sensors and actuators,
etc.) could be interconnected with the controller for operation
with such multiple bodies of water. For example, a single
controller could be implemented to control temperatures of both a
pool and a spa. In such circumstances, the user can specify desired
temperatures and desired times for achieving such temperatures for
both the pool and the spa, and the system of the present invention
will achieve such goals using one or more optimal heat sources.
Moreover, the controller can selectively direct water flow from one
or more heat sources to either (or both) of the pool and the spa,
so as to achieve optimal heating for both bodies of water.
[0052] It should also be noted that the controller of the present
invention could be programmed to allow a user to override (e.g.,
temporarily stop) an executing temperature control program, and
then resume execution of such program. In such circumstances, the
temperature control program could include the ability to re-assess
environmental conditions (such as water temperature, ambient
temperature, ambient humidity, etc.) and select an optimal heat
source based on assessed conditions after execution of the control
program has been resumed. Additionally, the controller could
re-assess environmental conditions and select an optimal heat
source based upon the remaining time to heat the pool water to the
desired temperature at the desired time, after resumption of the
temperature control program.
[0053] It will be understood that the embodiments described herein
are merely exemplary and that a person skilled in the art may make
many variations and modifications without departing from the spirit
and scope of the invention. All such variations and modifications
are intended to be included within the scope of the invention.
* * * * *