TECHNICAL FIELD
[0001] This invention relates to elevator control software.
BACKGROUND ART
[0002] It is desirable to assign cars to service hall calls to maximize the performance
of the elevator system. This involves using a number of algorithms which determine
the number of passengers in the cars, determine the traffic mode of the elevator system,
estimate the number of hall passengers at each stop, and calculate the tradeoffs between
different performance parameters. These algorithms can be implemented as a plurality
of fixed rules.
[0003] However, difficulties occur at the boundary conditions for the fixed rules. For example,
a rule which bases the system traffic mode determination partially on the time of
day might be. "if it is between 7:00 AM and 9:00 AM and if 〈other conditions〉 , then
set the system traffic mode to UP-PEAK". The difficulty with such a rule is that at
6:59 AM, all of the other conditions which cause the system traffic mode to be UP-PEAK
may already be present, but because of the fixed rule, the system cannot be deemed
to be in the UP-PEAK traffic mode. The operation of the system may change abruptly
depending on the traffic mode, despite the fact that the input conditions, the predominant
traffic patterns, probably change gradually between 6: 59 AM and 7:00 AM.
[0004] Similar problems exist for the other car assignment related algorithms. Generally,
the input conditions change gradually and, for the most part, continuously while the
response to those changes, i.e., the reactions of the system (and ultimately the assignment
of a car to a hall call), changes abruptly and discontinuously as the inputs to the
system transition through boundary conditions.
DISCLOSURE OF INVENTION
[0005] Objects of the invention include a method of determining the number of hall passengers
waiting for a car at a stop, comprising the steps of :
determining a first instantaneous passenger rate in response to a first signal indicating
that the car has serviced a stop;
determining a second instantaneous passenger rate in response to a second signal indicating
that a hall call button has been pressed;
scaling said first and second rates by dividing said rates by (i-l)/(F-1), where i
is the floor number and F is the total number of building floors, in response to said
first and second rates being calculated at a down stop and by dividing said rates
by (F-l)/(F-i) in response to said first and second rates being calculated at an up
stop;
averaging said first and second instantaneous passenger rates into an up-peak, down-peak,
or off-peak quantity in proportion to the degrees of membership of terms of a traffic
mode fuzzy set having terms indicative of the degree to which the elevator system
exhibits up-peak, down-peak and off-peak characteristics; and
estimating the number of hall passengers waiting at particular elevator stop by multiplying
the elapsed time since the particular stop was last serviced by said up-peak, down-peak,
and off-peak quantities in proportion to the appropriate degrees of membership of
terms of said traffic mode fuzzy set.
[0006] According to the present invention, a signal indicative of passenger weight in a
car is used to select terms from a plurality of observed weight fuzzy sets to form
a fuzzy set indicative of the number of passengers in the car, wherein (a) each of
said observed weight fuzzy sets corresponds to a particular passenger count and (b)
terms of each of said observed weight fuzzy sets have (i) basis elements corresponding
to passenger weights and (ii) degrees of membership corresponding to the frequency
of observation of the weight represented by the associated basis element and number
of passengers represented by the set.
[0007] According further to the present invention, assignment of a car to a hall call is
made by using a fuzzy set indicative of car assignment utility, said set having (a)
basis elements corresponding to each car of an elevator system and (b) degrees of
membership corresponding to the utility of assigning the car represented by the associated
basis element to the hall call.
[0008] According further to the present invention, the utility of assigning each car to
service a hall call is determined by:
(a) estimating the performance of each car for each of a plurality of performance
criteria, (b) scaling the estimated performances by values indicative of the assigned
importance of each of the performance criteria, and (c) setting the utility equal
to the maximum value from the scaled performance values.
[0009] According further to the present invention, the utility of assigning each car to
a hall call is determined by (a) estimating the performance of each car for each of
a plurality of performance criteria, (b) scaling the estimated performances by values
indicative of the assigned importance of each of the performance criteria, and (c)
choosing the minimum value from the scaled performance values.
[0010] According further to the present invention, (a) an instantaneous passenger rate for
an elevator system is calculated whenever a hall call button is pressed or whenever
an elevator services a stop, (b) said instantaneous rates are then averaged in to
one or more of (i) an up rate quantity, (ii) a down rate quantity, and (iii) an off
rate quantity according to the mode of the elevator system, and (d) the number of
people waiting at a stop is determined by multiplying the time since the stop was
last serviced by one or more of said up, down, or off rate quantities according to
the mode of the elevator system.
[0011] According further to the present invention, up-peak onset rules, up-peak termination
rules, down-peak onset rules, and down-peak termination rules are evaluated separately
and combined to form a fuzzy logic set indicative of elevator traffic mode, said set
having a term corresponding to up-peak, a term corresponding to down-peak, and a term
corresponding to off-peak wherein the degrees of membership of the terms corresponds
to the degree to which the elevator system exhibits characteristics of up-peak, down-peak,
and off-peak modes, respectively.
[0012] The foregoing and other objects, features and advantages of the present invention
will become more apparent in light of the following detailed description of exemplary
embodiments thereof, as illustrated in the accompanying drawings.
BRIEF DESCRIPTION OF DRAWINGS
[0013] Fig. 1 is a perspective, partially broken away, view of an elevator system.
[0014] Fig. 2 is a data flow diagram that illustrates operation of elevator control software.
[0015] Fig. 3 is a graph illustrating empirically observed elevator weight loading data.
[0016] Fig. 4 is a flow chart illustrating operation of a weight interpretation software
module.
[0017] Fig. 5 is a flow chart 120 illustrating off-line construction of a weight interpretation
table.
[0018] Fig. 6 is a data flow diagram illustrating operation of a traffic module.
[0019] Fig. 7 is a flow chart illustrating operation of an up calculations module.
[0020] Fig. 8 is a graph illustrating a SHORT-PERIOD fuzzy logic set.
[0021] Fig. 9 is a graph illustrating a SEVERAL-CARS fuzzy logic set.
[0022] Fig. 10 is a graph illustrating a HEAVILY-LOADED fuzzy logic set.
[0023] Fig. 11 is a data flow diagram illustrating operation of a count estimator module.
[0024] Fig. 12 is a bar chart illustrating an average wait time performance fuzzy set.
[0025] Fig. 13 is a flow chart illustrating operation of a performance estimator module.
[0026] Fig. 14 is a bar chart illustrating a customer preferences fuzzy set.
[0027] Fig. 15 is a flow chart illustrating operation of an assignment utility calculator
module.
BEST MODE FOR CARRYING OUT THE INVENTION
[0028] Referring to Fig. 1, an elevator system 20 is comprised of a first car 22, a second
car 23, a first motor 24 having a pulley 26 attached thereto, a second motor 25 having
a pulley 27 attached thereto and counterweights 28, 29. A first cable 30 is threaded
through the pulley 26 and attached at one end to the first car 22 and at the other
end to the counterweight 28. A second cable 31 is threaded through the pulley 27 and
attached at one end to the second car 23 and at the other end to the counterweight
29.
[0029] First motor 24 moves first car 22 between a plurality of building floors 32-34 in
response to activation of one or more car call buttons 36 by a car passenger (i.e.,
a passenger riding in car 22). Second motor 25 moves second car 23 between building
floors 32-34 in response to activation of one or more car call buttons 37 by a car
passenger. Motors 24, 25 also move cars 22, 23 between floors in response to one or
more hall calls. A hall call occurs when one or more hall call buttons 38 is pressed
by a hall passenger. A hall passenger is a prospective user of the elevator system
20 waiting in a hallway at one of the floors 32-34 for service by one of the cars
22, 23.
[0030] An electronic elevator controller 40 for the elevator system 20 receives electronic
input signals from car call buttons 36, 37, hall call buttons 38, from a first weight
sensor 42, located in the floor of first car 22 and from a second weight sensor 43,
located in the floor of second car 23. The weight sensors 42, 43 each provide an electronic
signal which varies according to the weight of the passengers in cars 22, 23, respectively.
Controller 40 provides an output signal to first motor 24 for moving first car 22
between the various floors 30-32. The controller 40 also provides an output signal
to second motor 25 for moving the second car 23 between the various floors 30-32.
[0031] The electronic hardware for the controller 40 is a conventional microprocessor system,
the implementation of which is known to those skilled in the art, containing a microprocessor
(not shown), one or more ROMs (not shown) for storing elevator controller software,
one or more RAMs (not shown), means for providing the output signals (not shown) to
the motors 24, 25, and means for receiving the input signals (not shown) from the
car call buttons 36, 37, the hall call buttons 38, and from the weight sensors 42,
43.
[0032] Referring to Fig. 2, a data flow diagram 50 illustrates operation of elevator control
software which is stored in the ROMs and which is executed by the microprocessor.
The software causes the controller 40 to provide the output signals to direct operation
of the motors 24, 25 in response to input electronic signals to the controller 40.
Boxes on the diagram 50 indicate program modules (portions of the elevator control
software) while cylinders indicate data elements (portions of elevator control data).
Arrows between boxes and cylinders indicate the direction of the flow of data. Unlike
a flow chart, no portion of the data flow diagram 50 indicates any temporal relationships
between the various modules.
[0033] The input signals shown on the diagram 50 are summarized in the following table:
Signal Name |
Description |
WEIGHT |
Indicates passenger weight |
ELPTIME |
Elapsed time counter |
DEPARTURE |
Indicates departures of cars from various floors |
ARRIVALS |
Indicates arrivals of cars at various floors |
HALLCALLS |
Indicates hall calls made from various floors |
[0034] A weight interpretation module 52 is provided with a WEIGHT signal from each weight
sensor 42, 43 and with input data from an observed weight data element 53. The weight
interpretation module 52 uses the WEIGHT signals and the observed weight data element
53 to estimate the number of car passengers. The passenger estimate is provided by
the weight interpretation module 52 to a car passengers data element 54. Using the
observed weight data element 53 and the WEIGHT signals from the weight sensors 42,
43 to estimate the number of car passengers is discussed in detail hereinafter.
[0035] The car passengers data element 54 is provided as an input to a traffic module 56,
which is also provided with input from an ELPTIME input signal, a DEPARTURES input
signal, and an ARRIVALS input signal. The ELPTIME signal indicates elapsed time (i.e.,
a counter which increments at a fixed rate). The DEPARTURES signal indicates the departure
of the cars 22, 23 from the various floors 32-34. The ARRIVALS signal indicates the
arrival of cars 22, 23 at each floor 32-34.
[0036] There are three mode variables used by the elevator control software: UP-PEAK, DOWN-PEAK,
and OFF-PEAK. The magnitude of UP-PEAK indicates the extent to which passengers are
riding from the lobby to higher floors. The magnitude of DOWN-PEAK indicates the extent
to which passengers are riding from higher floors to the lobby. The magnitude of OFF-PEAK
indicates the extent to which passengers are riding between non-lobby floors. The
values of UP-PEAK, DOWN-PEAK, and OFF-PEAK are stored by traffic module 56 into traffic
mode data element 58. Operation of traffic module 56 is described in detail hereinafter.
[0037] The ELPTIME, DEPARTURES, and ARRIVALS signals are provided as inputs to a count estimator
module 60. A HALLCALLS signal, indicating that one of the hall call buttons 38 has
been pressed, is also provided as an input to count estimator module 60. Count estimator
module 60 is also provided with input from car passengers data element 54 and from
traffic mode data element 58. Count estimator module 60 estimates the number of hall
passengers at a particular stop waiting for service by a car. Every floor, except
the top and bottom floors, has two stops, an up stop and a down stop. The top floor
has only a single down stop and the bottom floor has only a single up stop. Count
estimator module 60 outputs the estimate to a hall passengers data element 62. Operation
of count estimator module 60 is described in detail hereinafter.
[0038] A performance estimator module 64 is provided with input from the HALLCALLS signal
and from traffic mode and hall passengers data elements 58, 62. Performance estimator
module 64 predicts the performance of each car 22, 23 in response to a particular
hall call. Output from performance estimator module 64 is provided to a performance
data element 66. Operation of performance estimator module 64 is described in detail
hereinafter.
[0039] Performance data element 66 and a customer preferences data element 68 are provided
as inputs to an assignment utility calculator module 70, which determines the utility
of assigning each car 22, 23 to respond to a particular hall call by predicting the
performance of each car 22, 23 and scaling the predicted performance based on the
customer preferences. Output from assignment utility calculator module 70 is provided
to an assignment utility data element 72. Operation of assignment utility calculator
module 70 is described in detail hereinafter.
[0040] Assignment utility and customer preferences data elements 68, 72 are provided as
inputs to an uncertainty filter module 74, which assigns a particular car to service
a particular hall call using preliminary assignment data element 72. The assignment
is made only when the uncertainty associated with assignment of one of the cars is
below a predetermined threshold indicated by data stored in customer preferences data
element 68. In situations where it acceptable to wait until the last possible moment
to assign a car to a hall call, uncertainty filter module 74 does not provide data
to assignment data element 76 until the uncertainty associated with assignment utility
data element 72 is fairly low. In situations where a car assignment must be made relative
quickly after a hall call, uncertainty filter module 74 provides data to assignment
data element 76 even though the uncertainty associated with the assignment is relatively
high. Operation of uncertainty filter module 74 is described in detail hereinafter.
[0041] Assignment data element 76 is provided as an input to a motion control system module
78, which provides the signals to motors 24, 25 to move cars 22, 23. Motion control
system module 78 uses the information from assignment data element 76 to cause the
assigned one of cars 22, 23 to stop at a particular one of floors 32-34 in response
to a hall call. There are many types of generic elevator software motion control systems
which are known to those skilled in the art and are currently in use. Many of the
generic motion control systems would be suitable implementing the motion control system
module 78.
[0042] Weight interpretation module 52 transforms the WEIGHT signal from each weight sensor
42, 43, one at a time, into an estimate of the number of car passengers by using fuzzy
logic, a branch of mathematics closely related to basic set theory and logic. Fuzzy
logic involves using sets having basis elements which are only partially contained
in the sets. For example, whereas a traditional set C may be defined as {X, Y, Z},
a fuzzy set F can be defined as {.3¦X, .7¦Y, .1¦Z} wherein the numbers which precede
the vertical bars indicate the degree of membership of basis elements X, Y, and Z.
The quantity .3¦X is called a term of the fuzzy set. The basis elements X, Y, and
Z can represent numeric or non-numeric quantities. In cases where the basis elements
x, Y, and Z represent numbers, the value of a basis element or the value of a term
is simply the numerical quantity represented by X, Y, or Z. A crisp value is any value
or system of values which does not employ fuzzy logic. A thorough discussion of fuzzy
logic can be found in Schmucker, K. J.,
Fuzzy Sets, Natural Language Computations, and Risk Analysis, Computer Science Press, Rockville, Maryland, 1984.
[0043] Although the discussion hereinafter explains implementation details of operation
of the fuzzy system, much of the implementation can be automated by tools which translate
high level fuzzy logic statements into compilable computer code. One such development
tool is the Togai Fuzzy C Development System, manufactured by Togai InfraLogic Inc,,
of Irvine, California, which converts fuzzy logic statements into compilable C code.
[0044] The observed weight data element 53 shown in Fig. 2 is constructed by having an observer
tabulate the number of passengers in cars 22, 23 vs. the magnitude of the WEIGHT signals
provided by weight sensors 42, 43. Ideally, this tabulation is performed at the building
where the elevator system 20 is installed in order to have the data account for passenger
loading and passenger weight distributions for the particular building. However, it
is possible to construct observed weight data element 53 using generic tables showing
probabilities and distributions of people's weights. The tabulated data is used to
construct a plurality of fuzzy sets which are stored in observed weight data element
53. Each fuzzy set corresponds to a particular passenger count. For each set, the
degrees of membership of each term correspond to the number of times a particular
magnitude of the WEIGHT signal has been observed and the basis elements correspond
to particular weights. Each set can be represented as FO(N) where N is a particular
passenger count and each element can be represented as FO(N, W) where W is a particular
weight.
[0045] Fig. 3 is a graph 90 illustrating a hypothetical group of fuzzy sets constructed
by tabulating passenger load vs. the magnitude of the WEIGHT signal. Graph 90 is comprised
of a plurality of plots 92-103 wherein plot 92 corresponds to the fuzzy set describing
the different values of the WEIGHT signal for one passenger, i.e., FO(1), plot 93
corresponds to the fuzzy set describing the different values of the WEIGHT signal
for two passengers, FO(2), etc. The relative magnitudes of plots 92-103 indicate the
number of times a particular magnitude of the WEIGHT signal is observed and hence
indicate the degree of membership of the terms of the fuzzy sets.
[0046] Fig. 4 is a flow chart 110 illustrating operation of weight interpretation module
52. Processing begins at a first step 111 where a fuzzy set FW(N) (N representing
a particular passenger count) is initialized to have no terms. Following step 111
is a step 112 where a variable representing hypothetical passenger counts, PC, is
initialized to 1. Following step 112 is a test 113 where the value of the variable
PC is compared to PCMAX, a predetermined constant value equal to the maximum number
of possible car passengers.
[0047] If PC is not greater than PCMAX, control passes from test 113 to a step 114 where
a term, taken from the fuzzy set FO(PC) stored in observed weight data element 53,
is added to the fuzzy set FW. The added term corresponds to a passenger count equal
to PC and a weight equal to the magnitude of the WEIGHT signal, i.e., the value of
the FO (PC, WEIGHT) term. After step 114 is a step 115 where the PC variable is incremented.
[0048] Steps 113-115 are repeatedly executed until PC exceeds PCMAX at test 113, after which
control passes from the test 113 to a step 116, where the fuzzy set FW is normalized.
Normalization of a fuzzy set involves dividing all of the degrees of membership of
the terms by a constant value in order to make the sum of all the degrees of membership
equal to one.
[0049] After step 116 is a step 117 where the fuzzy set FW is defuzzified to produce a value
equal to the passenger count. Defuzzification is a process whereby a fuzzy logic set
is reduced to a crisp, i.e., single, value. FW can be defuzzified by using the value
of the term having the highest degree of membership. FW can also be defuzzified by
summing the products of the degree of membership of each term and the passenger count
represented by each term. After step 117 is a step 118 where the calculated value
of the passenger count is stored in passenger count data element 54 shown in Fig.
2. Passenger count data element 54 is used by traffic module 56 and count estimator
module 60, in a manner described in detail hereinafter. If it is possible for traffic
module 56 and count estimator module 60 to make use of the elevator passenger count
expressed as a fuzzy logic set rather than as a crisp value, weight interpretation
module 52 does not defuzzify the set FW, but rather follows a logic path 119 around
defuzzification step 117 and stores the fuzzy set FW, rather than a crisp value, at
step 118.
[0050] The code illustrated by flow chart 110 of Fig. 4 is meant to be run real time by
the microprocessor of elevator controller 40. If only a crisp value of car passenger
count is desired, however, the code illustrated by flow chart 110 can be executed
off-line to generate a weight interpretation table, which is a table of values of
the magnitude of the WEIGHT signal vs. passenger counts, that can be indexed by weight
interpretation module 52 at run time.
[0051] Fig. 5 is a flow chart 120 illustrating off-line construction of a weight interpretation
table which can be loaded into the ROMs of the elevator controller 40 and accessed
by weight interpretation module 52 to provide a crisp car passenger count based upon
the magnitude of the WEIGHT signal. The WEIGHT signal becomes the index to the table
and the passenger count is the entry at that index. At a first step 122, two variables,
OLDPC and NEWPC, are initialized to zero. Following first step 122 is a step 124 where
a third variable, W, is initialized to zero.
[0052] After step 124 is a step 126 where NEWPC is set equal to the passenger count that
is calculated by the method illustrated by flow chart 110 of Fig. 4, except that the
value of W is used in place of the magnitude of the WEIGHT signal. After step 126
is a test 128 where the variable NEWPC is compared to the variable OLDPC. If the variables
are not equal, control passes from step 128 to a step 130, where the values of OLDPC
and W are entered into the weight interpretation table being constructed. After step
130 is a step 132 where the variable OLDPC is set equal to the variable NEWPC. The
table thus created has indices which define the values of W (analogous to the magnitude
of the WEIGHT signal) which cause the entries to the table, the number of passengers,
to change. At run time, weight interpretation module 52 searches the table to find
two adjacent indices wherein one is greater than the magnitude of the WEIGHT signal
and the other is less than or equal to the magnitude of WEIGHT signal. The entry at
the higher of the two table indices is the passenger count which is written to passenger
count data element 54.
[0053] Following step 132 (or following test 128 if OLDPC equals NEWPC) is a step 134 where
variable W is increased by an amount WINC, a predetermined constant equal to the granularity
of each weight sensor 42, 43 (i.e., the minimum difference between two weight measurements).
After step 134 is a test 136, where W is compared to WMAX, a predetermined constant
equal to the maximum possible magnitude for the WEIGHT signal. If W is not greater
than WMAX, control passes from step 136 back to step 126. Otherwise, control passes
to a step 137 where OLDPC and W are added as the last entries to the table. After
the step 137, processing is complete.
[0054] Weight interpretation module 52 provides, to car passengers data element 54, data
indicative of the number of passengers in cars 22, 23. Car passengers data element
54, the ELPTIME signal, the DEPARTURES signal, and the ARRIVALS signal are provided
as inputs to traffic module 56, which determines the predominant usage pattern of
elevator system 20 and provides the result to traffic mode data element 58. Traffic
mode of elevator system 20 can be described as up-peak, indicating that most of the
traffic is going from the lobby of the building to higher floors, down-peak, indicating
that most of the traffic is going from higher floors to the lobby, or off-peak, indicating
that there is no discernible predominant traffic pattern.
[0055] Referring to Fig. 6, a data flow diagram 150 illustrates operation of traffic module
56. The ELPTIME and DEPARTURES signals and data from car passengers data element 54
are provided as inputs to an up calculations module 152, which uses UP-PEAK-ONSET
rules (described in detail hereinafter) to calculate a value for UP-PEAK variable,
which is stored in an up-peak data element 154. The up calculations module 152 also
uses UP-PEAK-TERMINATION rules (described in detail hereinafter) to determine a value
for an UP-OFF-PEAK variable which is stored in an up off-peak data element 156.
[0056] The ELPTIME and ARRIVALS signals and data from car passengers data element 54 are
provided as inputs to a down calculations module 162, which uses DOWN-PEAK-ONSET rules
(described in detail hereinafter) to calculate a value for the DOWN-PEAK variable,
which is stored in a down-peak data element 164. Down calculations module 162 also
uses DOWN-PEAK-TERMINATION rules (described in detail hereinafter) to determine a
value for a DOWN-OFF-PEAK variable which is stored in a down off-peak data element
166. Up off-peak data element 156 and down off-peak data element 166 are provided
as inputs to an off calculations module 170 which combines the data from elements
156, 166 (in a manner described in detail hereinafter) to calculate a value for the
OFF-PEAK variable, which is stored in off-peak data element 172.
[0057] The UP-PEAK variable stored in up-peak data element 154, the DOWN-PEAK variable stored
in down-peak data element 164, and the OFF-PEAK variable stored in off-peak data element
172 are provided as inputs to a mode resolver module 174, which combines the input
data to provide a result to traffic mode data element 58. The result can either be
a single crisp value or a fuzzy set, depending upon the nature of follow-on processes
which use information from traffic mode data element 58. A crisp value (i.e., a single
indication of the mode) can be obtained by deeming the mode to be either up-peak,
down-peak, or off-peak depending upon which of the UP-PEAK, DOWN-PEAK, or OFF-PEAK
variables, respectively, is greatest.
[0058] Mode resolver module 174 can also provide a fuzzy set to indicate the traffic mode
of elevator system 20. The set would have a term corresponding to the UP-PEAK variable,
a term corresponding to the DOWN-PEAK variable, and a term corresponding to the OFF-PEAK
variable where the degree of membership of each term would be proportional to the
values of the UP-PEAK, DOWN-PEAK, and OFF-PEAK variables, respectively.
[0059] The UP-PEAK-ONSET rules used by up calculations module 152 have the form:

where ELEVATOR-CAR-1 is the car which has most recently departed from the lobby,
ELEVATOR-CAR-2 is the second most recently departed car and generally ELEVATOR-CAR-i
is the ith most recently departed car. DPTURE-TIME-i is defined as the elapsed time
since the ith most recently departed car, and i is a number from one to N, the number
rules. The number of rules, N, is set equal to the number of cars. However, N could
be chosen to be either less than or greater than the number of cars.
[0060] As an example, the rule corresponding to i equals three would be:

[0061] For each of the N rules, up calculations module 152 evaluates the conditional portion
of the UP-PEAK-ONSET rule and sets the result (the final value of the UP-PEAK variable)
according to the value of the conditional. The final value of the UP-PEAK variable
equals the maximum value resulting from evaluating each N UP-PEAK-ONSET rule.
[0062] Referring to Fig. 7, a flow chart 180 for evaluating the N UP-PEAK-ONSET rules shows
a first step 182 where i is initialized to the value one followed by a second step
184 where a variable OLD-UP-PEAK is initialized to zero. Following step 184 is a test
186 where the value of i is compared to the value of N, the number of rules. If at
test 186 i is greater than N, processing is complete. Otherwise, control transfers
from test 186 to a step 188 where the UP-PEAK-ONSET rule is used to calculate a value
for the UP-PEAK variable. Following step 188 is a step 190 where the variable i is
incremented.
[0063] Following step 190 is a test 192 where the value of OLD-UP-PEAK is compared to UP-PEAK.
If OLD-UP-PEAK is not greater than UP-PEAK, control transfers from step 192 to a step
194, where OLD-UP-PEAK is set equal to UP-PEAK. If at step 192 OLD-UP-PEAK is greater
than UP-PEAK, control transfers from step 192 to a step 196, where UP-PEAK is set
equal to OLD-UP-PEAK. Control passes step 194 or step 196 back to test 186. Steps
192, 194, 196 ensure that the variables UP-PEAK and OLD-UP-PEAK always equal the greatest
value calculated for UP-PEAK at step 188.
[0064] The UP-PEAK-TERMINATION rules used by up calculations module 152 have the form:

[0065] Up calculations module 152 processes the N UP-PEAK-TERMINATION rules in a manner
similar to that illustrated in Fig. 7 for processing the UP-PEAK-ONSET rules so that
OFF-UP-PEAK is the maximum value resulting from evaluating each N UP-PEAK-TERMINATION
rule. Up calculations module 152 stores the value of the OFF-UP-PEAK variable in off
up-peak data element 156.
[0066] The DOWN-PEAK-ONSET rules used by down calculations module 162 have the form:

while the DOWN-PEAK-TERMINATION rules used by down calculations module 162 have the
form:

[0067] Just as with up calculations module 152, down calculations module 162 processes the
N DOWN-PEAK-ONSET and DOWN-PEAK-TERMINATION rules in a manner similar to that illustrated
in Fig. 7 for processing the UP-PEAK-ONSET rules. The resulting values for DOWN-PEAK
and OFF-DOWN-PEAK are the maximum values calculated for the N DOWN-PEAK-ONSET and
DOWN-PEAK-TERMINATION rules, respectively. Down calculations module 162 stores the
values of the DOWN-PEAK and OFF-DOWN-PEAK variables in down-peak data element 164
and off down-peak data element 166, respectively.
[0068] Off calculations module 170 sets the variable OFF-PEAK to the maximum of OFF-UP-PEAK
(from off up-peak data element 156) and OFF-DOWN-PEAK (from off down-peak data element
166). The variable OFF-PEAK is provided by off calculations module 170 as an output
to off-peak data element 172.
[0069] The UP-PEAK-ONSET, UP-PEAK-TERMINATION, DOWN-PEAK-ONSET, and DOWN-PEAK-TERMINATION
rules can be described generally as having the form:
if 〈condition〉 then set X-PEAK
where X-PEAK is either UP-PEAK, DOWN-PEAK, UP-OFF-PEAK, or DOWN-OFF-PEAK.
[0070] For a fuzzy logic conditional expression, the value of the result variable (the variable
following the "then" portion of the conditional) is set according to the value of
the conditional. For the above equation, therefore, X-PEAK is set to a value which
depends upon the value of the 〈condition〉.
[0071] The conditional portion of the UP-PEAK-ONSET rule contains a plurality of simple
expressions, such as (DPTURE-TIME-i is SHORT-PERIOD) and (i is SEVERAL-CARS), which
are connected by ANDs. The value of the conditional is the minimum value of the simple
expressions. Evaluating the simple expressions requires quantifying SHORT-PERIOD,
SEVERAL-CARS, and HEAVILY-LOADED.
[0072] Referring to Fig. 8, Fig. 9, and Fig. 10, a first graph 200 illustrates a fuzzy set
for representing SHORT-PERIOD, a second graph 202 illustrates a fuzzy set for representing
SEVERAL-CARS, and a third graph 204 illustrates a fuzzy set for representing HEAVILY-LOADED.
The SEVERAL-CARS graph 202 is for an elevator system having several cars. A graph
for the two-car elevator system 20 of Fig. 1 would make it more difficult to illustrate
the SEVERAL-CARS fuzzy set.
[0073] The graph 200 has a plurality of squares 210-217 superimposed thereon wherein each
square 210-217 represents a term of the SHORT-PERIOD fuzzy set. Similarly, graph 202
has a plurality of squares 220-227 superimposed thereon for representing terms of
the SEVERAL-CARS fuzzy set, and graph 204 has a plurality of terms 230-242 superimposed
thereon for representing elements of the HEAVILY-LOADED fuzzy set.
[0074] The vertical axes of the graphs 200, 202, 204 indicate the degree of membership for
terms represented by squares 210-217, 220-227, 230-242 and the horizontal axes of
the graphs 200, 202, 204 represent the values of the basis elements. For example,
square 210 represents a term of the SHORT-PERIOD fuzzy set having a basis element
value of zero and a degree of membership of 1.0 and square 213 represents a term of
the SHORT-PERIOD fuzzy set having a basis element value of 3 and a degree of membership
of approximately 0.4.
[0075] Each simple expression for the UP-PEAK-ONSET rule is evaluated using the SHORT-PERIOD,
SEVERAL-CARS, and HEAVILY-LOADED fuzzy sets. The value of the (DPTURE-TIME-i is SHORT-PERIOD)
is the degree of membership of the term of the SHORT-PERIOD fuzzy set having a basis
element equal to DPTURE-TIME-i. For example, if the value of DPTURE-TIME-i is five
minutes, the expression (DPTURE-TIME-i is SHORT-PERIOD) equals the degree of membership
of the term of the SHORT-PERIOD fuzzy set having basis element equal to five minutes,
which is illustrated in graph 200 by square 215.
[0076] The value of the (i is SEVERAL-CARS) expression is the degree of membership of the
term of the SEVERAL-CARS fuzzy set having a basis element equal to i. For example,
if i equals 3, the expression (i is SEVERAL-CARS) equals the degree of membership
of the term of the SEVERAL-CARS fuzzy set having a basis element equal to 3, illustrated
in graph 202 by square 223.
[0077] Evaluation of the (DPTING-ELEVATOR-i is HEAVILY-LOADED) expression depends upon whether
the number of passengers in car i, which is an input value to traffic module 56, is
a crisp value or a fuzzy set. If the passenger count is a crisp value, the (DPTING-ELEVATOR-i
is HEAVILY-LOADED) expression equals the degree of membership of a term of the HEAVILY-LOADED
fuzzy set having a basis element value equal to the crisp passenger count.
[0078] If the number of passengers in car i is expressed as a fuzzy set, the (DPTING-ELEVATOR-i
is HEAVILY-LOADED) expression is evaluated by taking the maximum value of the degrees
of membership of the terms of a fuzzy set formed by the intersection of the passenger
count fuzzy set and the HEAVILY-LOADED fuzzy set. Generally, the fuzzy set formed
by the intersection of two fuzzy sets is a fuzzy set having terms whose degree of
membership equals the minimum degree of membership of corresponding terms (i.e., terms
having the same basis element). For example, if F1 = {.1¦A, .5¦B, .7¦C} and F2 = {.3¦A,
.2¦C}, then the intersection of F1 and F2 equals {.1¦A, .2¦C}. The value of the (DPTING-ELEVATOR-i
is HEAVILY-LOADED) expression is the maximum degree of membership of the terms of
the fuzzy set formed by intersecting the passenger count fuzzy set and the HEAVILY-LOADED
fuzzy set.
[0079] Evaluation of the UP-PEAK-TERMINATION, DOWN-PEAK-ONSET, and DOWN-PEAK-TERMINATION
rules is similar to evaluation of the UP-PEAK-ONSET rules illustrated above. The values
of the UP-PEAK, DOWN-PEAK, and OFF-PEAK variables will be between zero and one.
[0080] The processing illustrated herein for traffic module 56 can be done at run-time or
can be done off-line, in which case a table is constructed having indices indicating
possible inputs to traffic module 56 and having entries indicating possible outputs
of traffic module 56. Construction and use of a similar table for weight interpretation
module 52 is shown in Fig. 5 and the discussion associated therewith. One skilled
in the art could extrapolate from the specific example of Fig. 5 to build and use
a similar table for traffic module 56.
[0081] Fig. 11 is a data flow diagram 260 illustrating operation of count estimator module
60, which estimates the number of hall passengers waiting at a particular stop at
a particular time. Count estimator module 60 processes the ELPTIME, DEPARTURES, ARRIVALS,
and HALLCALLS signals along with data from passenger count data element 54 and traffic
mode data element 58 and writes the output to hall passengers data element 62.
[0082] Referring to Fig. 11, a first rate calculator module 262 is provided with data from
car passengers data element 54 and with the ELPTIME, DEPARTURES, and ARRIVALS input
signals. First rate calculator module 262 estimates the rate that hall passengers
arrive at a stop to wait for a car to service the stop. Calculations by first rate
module 262 (described in detail hereinafter) are based upon an estimate of the number
of passengers that enter a car at a stop and the time since the stop was last serviced.
First rate calculator module 262 provides the estimated rate and information indicative
of the particular stop to a first rate data element 264.
[0083] A second rate calculator module 266 is provided with input from the ELPTIME, DEPARTURES,
ARRIVALS, and HALLCALLS signals. The second rate calculator module 266 also estimates
the rate that hall passengers arrive at a stop to wait for one of a car to service
the stop. The second rate calculator module 266 provides the estimated rate along
with information indicative of the particular stop to a second rate data element 268.
Calculations by second rate module 266 (described in detail hereinafter) are based
upon the elapsed time between a car servicing a particular stop and a hall passenger
subsequently pressing a hall call button for that stop.
[0084] A rate averager 270 uses data from rate data elements 264, 268 along with data from
traffic mode data element 58 to calculate an up rate which is stored in an up rate
data element 272, a down rate which is stored in a down rate data element 274, and
an off rate which is stored in an off rate data element 276. Up rate data element
272 contains information indicating the up passenger rate (i.e., the rate that hall
passengers arrive at the lobby to wait for a car going to other floors). Down rate
data element 274 contains information indicative of the rate that hall passengers
arrive at other floors to wait for a car going to the lobby. Off rate data element
276 contains information indicative of the rate that hall passengers arrive to wait
for cars traveling between non-lobby floors.
[0085] As new rate values are calculated by first and second rate calculators 262, 266 and
placed in first and second rate data elements 264, 268, respectively, rate averager
270 updates up, down, and off data elements 272, 274, 276 according to the current
mode of elevator system 20. If the mode is a crisp value (i.e., a single value indicative
of either up, down, or off), then rate averager 270 applies the data from first and
second rate data elements 264, 268 to only one of the appropriate up, down, or off
rate data elements 272, 274, 276, respectively.
[0086] If, on the other hand, the traffic mode of elevator system 20 is expressed as a fuzzy
set having three terms indicative of the extent to which the system is in up, down,
and off mode, first and second rate data elements 264, 268 are applied to up, down,
or off rate data elements 272, 274, 276 in proportion to the degree of membership
of terms of the traffic mode fuzzy set stored in traffic mode data element 58.
[0087] Traffic mode data element 58 and up, down, and off data elements 272, 274, 276 are
provided as inputs to a rate converter module 278, which uses the input data and the
ARRIVALS, DEPARTURES, and ELPTIME signals to estimate the number of hall passengers
at a particular stop waiting for car service. The number of hall passengers at a stop
is determined by multiplying the rate (from one or more of up, down, and off data
elements 272, 274, 276, depending on the traffic mode of the system) by the amount
of elapsed time since the stop was last serviced. The number of passengers is provided
to hall passengers data element 62 as a fuzzy set or a crisp value, depending on the
needs of the follow-on processes. Operation of rate converter module 278 is described
in detail hereinafter.
[0088] First rate calculation module 262 calculates an instantaneous passenger rate, INSTRATE1,
whenever a car stops at a floor to answer a hall call. An assumption is made that
any passengers departing from the car will do so before any hall passengers board
the car. The number of passengers who board the car is therefore determined by subtracting
the minimum passenger count from the final passenger count (i.e., the number of passengers
in the car when the elevator doors close). The rate that is provided to first rate
data element 264, INSTRATE1, equals the number of passengers that board the car divided
by the elapsed time since the particular stop was last serviced.
[0089] If the number of passengers provided by car passengers data element 54 is a crisp
value, the subtraction and divisions described above are straightforward. If, however,
the number of car passengers is expressed as a fuzzy set, the fuzzy set describing
the number of passengers when the weight is a minimum is subtracted from the fuzzy
set describing the number of passengers in the car when the elevator door is closed.
This subtraction is performed by subtracting every combination of basis elements and
taking the minimum of the degrees of membership of the terms thus subtracted. Terms
having the same basis element are combined into a single term having a degree of membership
equal to the maximum degree of membership of the combined terms.
[0090] For example, assume fuzzy set F1 equals (u¦A, v¦B, w¦C) and that fuzzy set F2 equals
(x¦D, y¦E, z¦F). The fuzzy set formed by subtracting F2 from F1 would equal:
{min(u,x)¦(A-D),min(u,y)¦(A-E),min(u,z)¦(A-F),
min(v,x)¦(B-D),min(v,y)¦(B-E),min(v,z)¦(B-F),
min(w,x)¦(C-D),min(w,y)¦(C-E),min(w,z)¦(C-F)}
Any terms having the same basis elements, for example if A-D equals C-E, are combined
by taking the maximum of the degrees of membership of those terms, e.g.:
max(min(u,x), min(w,y))
As an added step for subtracting the passenger count fuzzy sets, any term of the
resulting set having a basis element less than zero is eliminated since having fewer
than zero passengers board a car at a stop does not make sense. First rate calculation
module 262 determines INSTRATE1, the fuzzy set representing the rate of hall passenger
arrivals, by dividing the basis elements of the fuzzy set resulting from subtracting
the passenger count fuzzy sets by the elapsed time since the particular stop was last
serviced. The resulting passenger rate fuzzy set, along with information indicating
the particular stop, is provided to first rate data element 264.
[0091] Second rate calculations module 266 determines a hall passenger arrival rate, INSTRATE2,
whenever a hall call button is pressed. The elapsed time (T) between the last servicing
of the particular stop and the pressing of the hall call button is used to construct
the INSTRATE2 fuzzy set which has basis elements with values 1/T, 2/T, 3/T, . . .
10/T wherein each term has a degree of membership defined by the formula:

where e is the natural logarithm and R is the basis element of the associated term
of the fuzzy set.
[0092] The rate fuzzy set produced by second rate calculations module 266, INSTRATE2, assumes
that the arrival of hall passengers follows a Poisson distribution. The number of
hall passengers increases by only one passenger at a time. INSTRATE2, along with information
indicative of the particular stop, is provided as an output by second rate calculations
module 266 to second rate data element 268.
[0093] First rate calculator 262 updates the value of INSTRATE1, stored in first rate data
element 264, in response to a car servicing a hall call. Second rate calculator 266
updates INSTRATE2, stored in second rate data element 268, in response to a hall passenger
pressing a hall call button. The fuzzy sets which represent INSTRATE1 and INSTRATE2
are used to update fuzzy set stored in up rate data element 272, down rate data element
274, and off rate data element 276.
[0094] Prior to being used to update the values for the overall system rates stored in up,
down, and off rate data elements 272, 274, 276, an adjustment is made to the values
of INSTRATE1 and INSTRATE2 to compensate for the greater probability of lower floors
having up hall calls and higher floors having down hall calls. When a new INSTRATE1
or INSTRATE2 is calculated in response to a downward travelling car or hall call,
the basis elements of the INSTRATE1 and INSTRATE2 fuzzy sets are divided by (i-1)/(F-1)
where F is the total number of floors in the building and i is the particular floor
that the system is servicing. Similarly, the basis elements of the INSTRATE1 and INSTRATE2
fuzzy sets are divided by (F-i)/(F-1) whenever a new calculation is made in response
to servicing a call with an upward travelling car.
[0095] Rate averager 270 updates the fuzzy set stored in up rate data element 272 whenever
INSTRATE1 is updated in response to a car servicing the lobby or whenever INSTRATE2
is updated in response to a lobby hall call button being pressed. The new up rate
fuzzy set is calculated by the following equation:

INSTRATE in the above formula is either INSTRATE1 or INSTRATE2. UM is the degree
of membership of the term of the traffic mode fuzzy set (from traffic mode data element
58) which corresponds to the up traffic rate. UM ranges from zero to one. Using UM
in the above equation causes the up rate fuzzy set to be affected by INSTRATE only
to the extent that the elevator system is currently in the UP mode. The multiplication
in the above equation affects on the degrees of membership of the terms of the fuzzy
sets. The addition is performed using standard techniques, known to those skilled
in the art, for adding fuzzy sets.
[0096] Rate averager 270 updates down rate fuzzy set and stores the new value in down rate
data element 274 whenever INSTRATE1 is updated in response to a car going down or
whenever INSTRATE2 is updated in response to a down hall call button being pressed.
The new down rate fuzzy set is calculated by the following equation:

INSTRATE in the above formula is either INSTRATE1 or INSTRATE2. DM is the degree
of membership of the term of the traffic mode fuzzy set which corresponds to the down
traffic rate. DM ranges from zero to one.
[0097] Rate averager 270 updates the off rate fuzzy set and stores the new value in off
rate data element 276 whenever INSTRATE1 or INSTRATE2 is updated. The new value of
the off rate fuzzy set is calculated by the following equation:

INSTRATE in the above formula is either INSTRATE1 or INSTRATE2. OP is the degree
of membership of the term of the traffic mode fuzzy set which corresponds to the off-peak
traffic mode. OP ranges from zero to one.
[0098] Rate converter module 278 provides a fuzzy set indicating the number of hall passengers
waiting for a car at any particular stop at any particular time. First, a total rate
fuzzy set is constructed by combining the fuzzy set from up rate data element 272,
the fuzzy set from down rate data element 274, and the fuzzy set from off rate data
element 276. The sets are combined by scaling the degrees of membership of each term
of the sets by the relative degree of membership of the corresponding terms of the
traffic mode fuzzy set so that the degrees of membership of the up rate fuzzy set
are scaled by

, the degrees of membership of the down rate fuzzy set are scaled by

, and the degrees of membership of the off rate fuzzy set are scaled by

. After scaling the degrees of membership, the three sets are added together and then
the values of the basis elements of the result are divided by 3 to produce the total
rate fuzzy set.
[0099] The ELPTIME and DEPARTURE signals are used to determine the amount of time since
a particular stop was last serviced. A fuzzy set indicative of the number of hall
passengers waiting at a particular stop is constructed by multiplying the values of
basis elements of the total rate fuzzy set by the amount of elapsed time. The resultant
fuzzy set is provided by count estimator module 60 to hall passengers data element
62.
[0100] The processing illustrated herein for count estimator module 60 can be done at run-time
or can be done off-line, in which case a table is constructed having indices indicative
of possible inputs to count estimator module 60 and having entries indicative of possible
outputs of count estimator module 60. Construction and use of a similar table for
weight interpretation module 52 is shown in Fig. 5 and the discussion associated therewith.
One skilled in the art could extrapolate from the specific example of Fig. 5 to build
and use a similar table for count estimator module 60.
[0101] There are many indicators for measuring elevator system performance, such as average
wait time, wait threshold, and average service time. The average wait time is the
average time between a hall call and servicing of the hall call. The wait threshold
is the average number of people that wait for longer than a constant, predetermined
amount of time. The average service time is the average time between a hall passenger
pressing a hall call button and the same passenger arriving at the destination floor.
The details of calculating the average wait time, the wait threshold, and the average
service time are known to those skilled in the art. Note that elevator performance
indicators can be calculated by using either crisp values or fuzzy sets.
[0102] The HALLCALLS signal is provided as an input to the performance estimator 64 which,
in response to a particular hall call, uses the traffic mode and hall passengers data
elements 58, 62 to construct a plurality of performance fuzzy sets. Each performance
fuzzy set corresponds to a particular elevator performance indicator. Each term of
each set represents the estimated value of the particular performance indicator which
corresponds to servicing the hall call with a particular car. The performance estimator
64 stores the fuzzy sets in the performance data element 66.
[0103] Referring to Fig. 12, a graph 290 has a plurality of bars 292-297 wherein the height
of each bar indicates the inverse of the estimated average wait time associated with
a particular car. A higher bar indicates a lower average wait time. The graph 290
can represent a performance fuzzy set wherein each basis element of the set represents
a particular car and the degree of membership of each basis element corresponds to
the height of each bar 292-297. Similar fuzzy sets can be constructed for any other
elevator performance indicators that can either be directly measured or derived from
direct measurements. The particular indicators chosen and the method of calculation
depend upon a variety of functional factors known to those skilled in the art.
[0104] Referring to Fig. 13, a flow chart 300 illustrates steps for constructing a plurality
of performance fuzzy sets which are represented on flow chart 300 by the symbol P.
The annotation P(I, C) indicates the Cth term, corresponding to car number equals
C, of the Ith performance fuzzy set.
[0105] At a first step 302, P is initialized to contain no terms and no fuzzy sets. Following
step 302 is a step 304 where an index variable, I, for indexing into all of the performance
fuzzy sets, is initialized to 1. Following step 304 is a test 306 where I is compared
to IMAX, a predetermined constant equal to the number of performance indicators.
[0106] If at step 306 I is not greater than IMAX, control passes from step 306 to a step
307 where C, an index variable for indexing through terms of the performance fuzzy
sets (and hence corresponding to each car), is initialized to 1. Following step 307
is a step 308 where C is compared to CMAX, the number of cars in the system. If at
test 308 C is not greater than CMAX, control passes from step 308 to a step 309, where
car C is assumed to be assigned to service a particular hall call at a particular
stop.
[0107] Following step 309 is a step 310 where P(I, C), which equals the Cth term of the
Ith fuzzy set, is determined. At step 310, car C is assumed to be assigned to a particular
hall call and the performance of the system is calculated using equations and calculation
methods that are appropriate for the Ith performance indicator. The value calculated
at step 310 becomes the degree of membership of the Cth term in the Ith performance
fuzzy set.
[0108] After step 310 is a step 311 where the index variable C is incremented. After step
311, control passes back to test 308. If at test 308 C is greater than CMAX, indicating
that the system performance for the Ith performance indicator has been calculated
for all of the cars, then control passes from test 308 to a step 312, where the index
variable I, indicating the particular performance criteria, is incremented. Control
passes from step 312 back to test 306, where I is compared to IMAX. If at step 306
I is greater than IMAX, all of the performance fuzzy sets have been calculated and
processing is complete.
[0109] Referring to Fig. 14, a customer preferences graph 320 has a plurality of bars 322-328
wherein each bar 322-328 corresponds to a particular elevator performance indicator
and wherein the height of each bar 322-328 indicates the importance of the performance
indicator to the customer. For example, the height of bar 323, which represents average
service time, is greater than the height of bar 322, which represents the average
wait time, thereby indicating that given a choice between optimizing performance using
average wait time or optimizing performance using average service time, the customer
prefers to use average service time.
[0110] The graph 320 can represent a customer preferences fuzzy set wherein each basis element
of the set corresponds to a particular elevator performance indicator and wherein
the height of each bar 322-328, indicating the relative importance to the customer
of each elevator performance indicators, corresponds to the degree of membership of
each term of the fuzzy set. The customer preferences fuzzy set can be constructed
by the elevator manufacturer or can be entered by the customer using a variety of
data input means obvious to those skilled in the art. The customer preferences fuzzy
set is stored in the customer preferences data element 68.
[0111] The performance and customer preferences data elements 66, 68 are provided as inputs
to assignment utility calculator module 70, which determines the utility of assigning
each car to service a hall call and provides to assignment utility data element 72
an assignment utility fuzzy set having basis elements corresponding to each car wherein
the degree of membership of each basis element corresponds to the utility of assigning
the associated car to the particular hall call.
[0112] Referring to Fig. 15, a flow chart 340 illustrates operation of the assignment utility
calculator module 70. The symbol AU indicates the assignment utility fuzzy set, and
the symbol SP indicates a plurality of scaled performance fuzzy sets. The symbol CP
indicates the customer preferences fuzzy set. At a first step 342, the AU and SP fuzzy
sets are initialized to be empty. Following step 342 is a step 344 where an index
variable I, for indexing into the performance and the scaled performance fuzzy sets,
is initialized to 1. Following step 344 is a test 346, where I is compared to IMAX,
a predetermined constant equal to the number of performance fuzzy sets (i.e., the
number of performance indicators).
[0113] If at step 346 I is not greater than IMAX, control passes from step 346 to a step
348 where C, a variable for indexing through all of the cars of the elevator system,
is set to 1. Following step 348 is a test 350 where C is compared to CMAX, a predetermined
constant equal to the number of cars in the elevator system. If at step 350 C is not
greater than CMAX, control passes from step 350 to a step 352.
[0114] At step 352, the degree of membership of the Cth term in the Ith scaled performance
fuzzy set is set equal to the degree of membership of the Cth term of the Ith performance
fuzzy set times the degree of membership of the Ith term of the customer preferences
fuzzy set. If CP(I) is close to one, indicating that the Ith performance indicator
is important to the customer, the degree of membership of the Cth term of the Ith
scaled performance fuzzy set will nearly equal the Cth term of the Ith performance
fuzzy set. If, on the other hand, CP(I) is at or near zero, indicating that the Ith
performance indicator is not important to the customer, then the Cth term of the Ith
scaled performance fuzzy set will equal or be close to zero, irrespective of the value
of the Cth term of the Ith performance fuzzy set.
[0115] After step 352 is a step 354 where the variable C is incremented. After step 354,
control passes back to test 350 where C is compared to CMAX. If at step 350 C is greater
than CMAX, indicating that all of the terms of the Ith scaled performance fuzzy set
have been calculated, control passes from step 350 to a step 356 where I, the variable
used for indexing through the performance indicators, is incremented. After step 356,
control passes back to test 346, where I is compared to IMAX, the number of performance
indicators.
[0116] If at test 346 I is greater than IMAX, control passes from test 346 to a step 358,
where the index variable I is initialized to 1. After step 358 is a test 360, where
I is compared to IMAX, the number of performance indicators. If at step 360 I is not
greater than IMAX, control passes to a step 362, where the degree of membership of
the Cth term of the assignment utility fuzzy set is set equal to the first term of
the Ith scaled performance fuzzy set. After step 362 is a step 364, where the variable
C, for indexing through terms of the scaled performance and assignment utility fuzzy
sets is set to 2.
[0117] After step 364 is a test 366 where C is compared to CMAX, the number of cars in the
system. If C is not greater than CMAX, control passes to a step 368, where the Cth
term of the assignment utility fuzzy set is set equal to the greater of the Cth term
of the Ith scaled performance fuzzy set and the previous value of the Cth term of
the assignment utility fuzzy set. Step 368 ensures that the Cth term of the assignment
utility fuzzy set always equals the maximum value of the Cth terms of all of the scaled
performance fuzzy sets.
[0118] Following step 368 is a step 370 where the variable C is incremented. After step
370, control passes back to test 366. If at step 366 C is greater than CMAX, control
passes from step 366 to a step 372 where I, the index variable for the performance
indicators, is incremented. After step 372, control passes back to test 360 where,
if I is greater than IMAX, processing is complete. The resulting assignment utility
fuzzy set is provided as an output to assignment utility data element 72.
[0119] The processing illustrated herein for performance estimator module 64 and assignment
utility module 70 can be done at run-time or can be done off-line, in which case a
table is constructed having indices indicative of possible inputs to performance estimator
module 64 and assignment utility module 70 and having entries indicative of possible
outputs of performance estimator module 64 and assignment utility module 70. Construction
and use of a similar table for weight interpretation module 52 is shown in Fig. 5
and the discussion associated therewith. One skilled in the art could extrapolate
from the specific example of Fig. 5 to build and use a similar table for performance
estimator module 64 and assignment utility module 70.
[0120] The assignment utility data element 72 is provided as an input to the uncertainty
filter module 74, which determines the final car assignment (a crisp value) by choosing
the term of the assignment utility fuzzy set having the highest degree of membership.
The uncertainty filter module 74 will only provide an assignment to assignment data
element 76 when the uncertainty of the assignment is below a predetermined value stored
in customer preferences data element 68 which is provided as an input to uncertainty
filter module 74. The uncertainty of an assignment is defined as the degree of membership
of the term having the highest degree of membership divided by the sum of the degrees
of membership of all of the terms of the assignment utility fuzzy set. A customer
that prefers a relatively quick assignment of a car to a hall call would specify a
high degree of uncertainty while a customer who does not care about a quick assignment
would specify a low degree of uncertainty.
[0121] Alternatively, uncertainty filter module 74 may provide an assignment to assignment
data element 76 after a constant predetermined amount of time which is stored in customer
preferences data element 68. The value of the assignment will be the car represented
by the basis element of the assignment utility fuzzy set having the highest degree
of membership associated therewith.
[0122] As a third alternative, the uncertainty filter module 74 may adjust the uncertainty
threshold as a function of the elapsed time since the hall call button was pressed.
As the elapsed time increases, the threshold decreases. The threshold vs. time function
can be linear or non-linear, depending on the requirements of the particular elevator
system.
[0123] The processing illustrated herein for uncertainty filter module 74 can be done at
run-time or can be done off-line, in which case a table is constructed having indices
indicating possible inputs to uncertainty filter module 74 and having entries indicating
possible outputs of uncertainty filter module 74. Construction and use of a similar
table for weight interpretation module 52 is shown in Fig. 5 and the discussion associated
therewith. One skilled in the art could extrapolate from the specific example of Fig.
5 to build and use a similar table for uncertainty filter module 74.
[0124] The invention illustrated herein is applicable to any elevator system having any
number of cars, stopping on any number of floors, having any maximum capacity, maximum
velocity, or having any other specific set of physical characteristics. Similarly,
the invention may be practiced irrespective of the physical design of the elevator
system, including drives, counterweights, cabling, door mechanisms, hall call and
car call signaling devices.
[0125] Although the invention has been shown in an elevator system having a single lobby
floor on the lowest floor of the building, the invention may be practiced irrespective
of whether the elevator system has more than one lobby floor and whether or not the
lobby floor is the lowest floor in the building.
[0126] Furthermore, the invention may be practiced irrespective of the processes used to
carry out other elevator dispatching functionality, the specific electronic hardware
used to implement the invention, or the design of the load weighing device. Portions
of the processing illustrated herein may be implemented with electronic hardware,
which would be straightforward in view of the hardware/software equivalence discussed
(in another field) in U.S. Patent No. 4,294,162 entitled "Force Feel Actuator Fault
Detection with Directional Threshold" (Fowler et al.). Instead of reading and writing
data to and from data elements, the hardware would communicate by receiving and sending
electronic signals.
[0127] Although only run-time operation of traffic module 56, count estimator module 60,
performance estimator module 64, assignment utility calculator module 70, and uncertainty
filter module 74 is illustrated herein, modules 56, 60, 64, 70, 74 may be run off-line
to generate lookup tables containing all of the possible inputs and the resulting
outputs. Off-line generation and use of a lookup table is illustrated for weight interpretation
module 52 in Fig. 5 and the text of the application relating thereto.
[0128] Many of the modules which use fuzzy values for input may be adapted, in a manner
obvious to one skilled in the art, to use crisp inputs. Performance estimator module
64 and customer preferences data element 68 may be adapted to use any type of elevator
performance criteria. The invention may be practiced irrespective of the mechanism
used to set or change the customer preferences.
[0129] Although the invention has been shown and described with respect to exemplary embodiments
thereof, it should be understood by those skilled in the art that various changes,
omissions and additions may be made therein and thereto, without departing from the
spirit and the scope of the invention.