Elevator dispatching

Abstract: Elevator control software uses a signal from a passenger weight sensor and observed weight fuzzy logic sets to provide a fuzzy logic set indicative of the number of passengers in a car. The traffic mode of an elevator system is set according to the number and frequency of passengers departing and arriving at a building lobby. The utility of assigning each car of an elevator system to service a hall call is determined by estimating the performance of each car using a plurality of performance criteria. The number of hall passengers waiting at a stop for service by a car is determined by first calculating instantaneous passenger rates whenever a hall call button is pressed or whenever passengers board a car. An uncertainty filter is provided with input data indicating a fuzzy logic set having basis elements corresponding to cars of an elevator system having degrees of membership associated therewith corresponding to the utility of assigning the associated car to service a hall call.

Description: TECHNICAL FIELD This invention relates to elevator control software. BACKGROUND ART 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. 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. 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 Objects of the invention include a method of determining the number of car passengers, according to claim 1, and an apparatus according to claim 6 carrying out the method according to claim 1, wherein the method comprises the steps of: asserting a weight signal indicative of passenger weight; providing a plurality of observed weight fuzzy sets, each set corresponding to a particular number of passengers, wherein for each of said observed weight fuzzy sets, the degree of membership of each term corresponds to the frequency of occurrence of a particular value for the magnitude of said weight signal; and forming a passenger count fuzzy set, indicative of the number of car passengers, wherein for each term the degree of membership equals the degree of membership of a term of a particular one of said observed weight fuzzy sets having a basis element corresponding to the magnitude of said weight signal and wherein the basis element for each term of said passenger count fuzzy set is indicative of a number of passengers represented by the particular one of said observed weight fuzzy sets. 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. 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. 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. 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. 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. 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. 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 Fig. 1 is a perspective, partially broken away, view of an elevator system. Fig. 2 is a data flow diagram that illustrates operation of elevator control software. Fig. 3 is a graph illustrating empirically observed elevator weight loading data. Fig. 4 is a flow chart illustrating operation of a weight interpretation software module. Fig. 5 is a flow chart 120 illustrating off-line construction of a weight interpretation table. Fig. 6 is a data flow diagram illustrating operation of a traffic module. Fig. 7 is a flow chart illustrating operation of an up calculations module. Fig. 8 is a graph illustrating a SHORT-PERIOD fuzzy logic set. Fig. 9 is a graph illustrating a SEVERAL-CARS fuzzy logic set. Fig. 10 is a graph illustrating a HEAVILY-LOADED fuzzy logic set. Fig. 11 is a data flow diagram illustrating operation of a count estimator module. Fig. 12 is a bar chart illustrating an average wait time performance fuzzy set. Fig. 13 is a flow chart illustrating operation of a performance estimator module. Fig. 14 is a bar chart illustrating a customer preferences fuzzy set. Fig. 15 is a flow chart illustrating operation of an assignment utility calculator module. BEST MODE FOR CARRYING OUT THE INVENTION 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. 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. 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. 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. 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. 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 ARRIVAL Indicates arrivals of cars at various floors HALLCALLS Indicates hall calls made from various floors 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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, ELEVAT0R-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. As an example, the rule corresponding to i equals three would be: 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. 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. 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. The UP-PEAK-TERMINATION rules used by up calculations module 152 have the form: 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. 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: 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. 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. 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. 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〉. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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: degree of membership = RTe -RT where e is the natural logarithm and R is the basis element of the associated term of the fuzzy set. 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. 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. 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. 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: (0.2 x UM x INSTRATE) + (1.0 - (0.2 x UM)) x {old up rate fuzzy set} 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. 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: (0.2 x DM x INSTRATE) + (1.0 - (0.2 x DM)) x {down rate fuzzy set} 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. 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: (0.2 x OP x INSTRATE) + (1.0 - (0.2 x OP)) x {off rate fuzzy set} 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. 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 UM/(UM+DM+OP), the degrees of membership of the down rate fuzzy set are scaled by DM/(UM+DM+OP), and the degrees of membership of the off rate fuzzy set are scaled by OP/(UM+DM+OP). 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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). 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

Claims: A method of determining the number of car passengers, comprising the steps of: asserting a weight signal indicative of passenger weight; providing a plurality of observed weight fuzzy sets, each set corresponding to a particular number of passengers, wherein for each of said observed weight fuzzy sets, the degree of membership of each term corresponds to the frequency of occurrence of a particular value for the magnitude of said weight signal; and forming a passenger count fuzzy set, indicative of the number of car passengers, wherein for each term the degree of membership equals the degree of membership of a term of a particular one of said observed weight fuzzy sets having a basis element corresponding to the magnitude of said weight signal and wherein the basis element for each term of said passenger count fuzzy set is indicative of a number of passengers represented by the particular one of said observed weight fuzzy sets. A method of determining the number of car passengers, according to claim 1, further comprising the step of: defuzzifying said passenger count fuzzy set to produce a single crisp value for the passenger count. A method of determining the number of car passengers, according to claim 2, wherein said defuzzification is performed by setting the single crisp value of the passenger count equal to the basis element of the term of the passenger count fuzzy set having the highest degree of membership. A method of determining the number of car passengers, according to claims 1 to 3, further comprising the step of: normalizing said passenger count fuzzy set by dividing the degree of membership of each term by the sum of the degrees of membership of all of the terms. A method of determining the number of car passengers, according to claim 4, further comprising the step of: defuzzifying said passenger count fuzzy set to produce a single crisp value for the passenger count. Apparatus, for determining the number of car passengers, comprising: means for asserting a weight signal indicative of passenger weight; means for providing an observed weight signal indicative of a plurality of observed weight fuzzy sets, each set corresponding to a particular number of passengers, wherein for each of said sets, the degree of membership of each term corresponds to the frequency of occurrence of a particular value for the magnitude of said weight signal; and means, responsive to said weight signal and said observed weight signal, for asserting a fuzzy passenger signal indicative of a passenger count fuzzy set wherein for each term the degree of membership equals the degree of membership of a term of a particular one of said observed weight fuzzy sets having a basis element corresponding to the magnitude of said weight signal and wherein the basis element for each term of said passenger count fuzzy set is indicative of a number of passengers represented by the particular one of said observed weight fuzzy set. Apparatus, for determining the number of car passengers, according to claim 6, further comprising: means, responsive to said fuzzy passenger signal, for defuzzifying said passenger count fuzzy set to provide a passenger count signal indicative of a single crisp value for the number of passengers. Apparatus, for determining the number of car passengers, according to claim 7, wherein said defuzzification is performed by selecting the term of the passenger count fuzzy set having the highest degree of membership. Apparatus, for determining the number of car passengers, according to claims 6 to 8, further comprising: means, responsive to said fuzzy passenger signal, for providing a normalized passenger count signal by dividing the degree of membership of each term of said passenger count fuzzy set by the sum of the degrees of membership of all of the terms to produce a normalized passenger count fuzzy set. Apparatus for determining the number of car passengers, according to claim 6 to 9, further comprising: means, responsive to said normalized passenger count signal, for defuzzifying said normalized passenger count fuzzy set to provide a passenger count signal indicative of a single crisp value for the number of passengers in the car. Apparatus, for determining the number of car passengers, according to claim 10, wherein said means for defuzzifying is comprised of: means for multiplying the degree of membership of each term of the passenger count fuzzy set by the basis element of each term; and means for summing the results achieved by said multiplication step. Use of a method according to claims 1 to 5 to construct a table having indices indicative of passenger weight and having entries indicative of passenger count, wherein a variable is used in place of the magnitude of the weight signal.

Inventors: SIRAG DAVID J JR, WEISSER PAUL T JR, SIRAG, DAVID J., JR., WEISSER, PAUL T., JR.
Applicants: OTIS ELEVATOR CO, OTIS ELEVATOR COMPANY
Application year: 1992
Main classification: B66B1
IPC codes: B66B3, B66B1