Prototype of Smart Dynamically Shaded Window
Control Algorithm
| Constant | Value for Demo | Description |
|
i_dark |
10% |
threshold below which is considered to be night |
|
i_dark_time |
10s |
time in seconds during which it has to be dark before the blinds drop into night Mode |
|
i_sun |
60% |
level above which there is significant solar loads |
|
i_max |
4.8V |
maximum value at saturated intensity, use this value to convert the voltage to a percentage (i_max=100%) |
|
o_waittime |
30s |
time in seconds during which not to do anything after a manual override |
|
down_waittime |
10s |
time in seconds during which not to change state after they were dropped because of solar |
|
up_waittime |
10s |
time in seconds
during which do not change state after they were raised because of no
solar |
|
t_e_cooling_down |
26C |
external temperature above which the system expects the house to need cooling, and will move shades down |
|
t_e_cooling_up |
24C |
external
temperature below which the shades will be raised |
|
t_e_cooling_time |
5s |
time in seconds during which this temperature has to be exceeded to go into shading Mode |
|
default_blind_state |
up |
state in which
the system is when it starts up |
Inputs
|
t_i |
interior (room) temperature, from DS18B20 |
|
t_e |
exterior temperature, from DS18B20 |
|
i |
intesity
of light on exterior, Vad from DS2438 |
|
o |
override
button from DS2406 |
Outputs
|
blind_up |
move blinds up , through DS2406 |
|
blinds_down |
move blinds down, through DS 2406 |
all
inputs should be shown on web-applet, refreshed after each sleep cycle
Rules
1)
if
override button is pushed, flipped the state of the blinds (up->down,
down->up) immediately
2)
start
with default_blind_state
3) keep a running average of t_e and i over running_average_time
4)
if
i > i_sun and t_e > t_e_cooling_down
then blinds_down (solar load mode)
5)
wait
for down_waittime before evaluating new actions, but keep running average
going
6)
if
t_e < t_e_cooling_up then blinds_up only if previous action was dropping
blinds by action 3), if it was because of action 1)(override) then don't move
them up
7)
wait
for up_waittime before evaluating new actions, but keep running average going
8)
if
i < i_dark for at least i_dark_time then blinds_down (night time mode)
9)
take
sample and then sleep for sleep_time, only override button should be
immediately.
Last Updated: 08/05/2003 17:39