Method of controlling an actuator system and aircraft using said method

11720124 · 2023-08-08

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of controlling an actuator system including a plurality of k actuators. Each of the actuators-receives a control input u.sub.i, wherein index i denotes a particular actuator, which control input u.sub.i is determined depending on a weight matrix W including a weighting factor w.sub.i for each actuator and depending on at least a physical maximum control limit u.sub.i.sup.max for each of the actuators. The weighting factors w.sub.i and/or physical maximum control limit u.sub.i.sup.max are actively changed during operation if a first comparison of the control input u.sub.i or a function f(u.sub.i) thereof with a set first threshold value yields that the control input u.sub.i or function f(u.sub.i) thereof exceeds the set first threshold value. The first comparison is repeated during operation, and a new control input u.sub.i is determined from the adjusted weighting factor w.sub.i and/or the adjusted physical maximum control limit u.sub.i.sup.max and applied to the actuators.

Claims

1. A method of controlling an actuator system comprising a plurality of k actuators, wherein said actuators are configured as individual propulsion units of a multiactuator aerial vehicle, the method comprising: sending, by a controller, a control input u.sub.i to each of said actuators during operation, and each of the actuators receiving the control input u.sub.i, wherein index i denotes a particular one of the actuators, determining the control input u.sub.i depending on a weight matrix W comprising a weighting factor w.sub.i for each said actuator and depending on at least a physical maximum control limit u.sub.i.sup.max for each of the actuators, actively changing both said weighting factor w.sub.i and said physical maximum control limit u.sub.i.sup.max during operation of the actuator system when a first comparison, for at least some of the actuators, of said control input u.sub.i or a function ƒ(u.sub.i) thereof with a set first threshold value)) (ƒ.sub.i(u.sub.i.sup.avail) yields that said control input u.sub.i or said function ƒ(u.sub.i) thereof exceeds said set first threshold value (ƒ.sub.i (u.sub.i.sup.avail)), augmenting a first counter (t.sub.i.sup.avail) whenever said first comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said first set threshold value (ƒ.sub.i (u.sub.i.sup.avail)), and adjusting at least the weight matrix W based on a value of a weighting function (wf1) that is dependent on the current value of said first counter (t.sub.i.sup.avail); repeating said first comparison over time during operation of the actuator system; and determining a new control input u.sub.i from both an adjusted weighting factor w.sub.i and an adjusted physical maximum control limit u.sub.i.sup.max and applying the new control input u.sub.i to the actuators.

2. The method of claim 1, wherein said control input u.sub.i is determined based on a pseudo control input u.sub.p, wherein u.sub.p=Du, D being an allocation matrix dependent on at least u.sub.imax, wherein determining u includes solving an equation u=D.sup.−1u.sub.p, D.sup.−1 being an inverse allocation matrix and defined as D.sup.−1(W,u.sub.max), W being said weight matrix, wherein the inverse allocation matrix D.sup.−1 is adjusted according to adjusted values of W and u.sub.i.sup.max; and wherein the new control input u.sub.i is determined from the adjusted inverse allocation matrix D.sup.−1 and applied to the actuators.

3. The method of claim 1, wherein said first threshold value (ƒ.sub.i(u.sub.i.sup.avail)) comprises an available control limit (u.sub.i.sup.avail) for each said actuator, said available control limit (u.sub.i.sup.avail) being a control input at which a given one of the actuators functions continuously without overload.

4. The method of claim 1, further comprising augmenting a second counter (t.sub.i.sup.max) whenever the first comparison and any successive comparisons yield that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said corresponding set threshold value (ƒ.sub.i(u.sub.i.sup.max)), and adjusting at least the weight matrix W based on a current value of said second counter (t.sub.i.sup.max).

5. The method of claim 4, wherein the adjusting of at least the weight matrix W based on the current value of said second counter (t.sub.i.sup.max) is based on a value of a second weighting function (wf2) that is dependent on said current value of said second counter (t.sub.i.sup.max).

6. The method of claim 4, wherein the weight matrix W is adjusted based on the current value of at least one of the first counter or the second counter, only when at least one of the first counter or said second counter does not exceed its respective set threshold value (ƒ.sub.i(u.sub.i.sup.avail), ƒ.sub.i(u.sub.i.sup.max)).

7. The method of claim 4, wherein u.sub.i.sup.max is adjusted to a lower value, said lower value being an available control input (u.sub.i.sup.avail) at which a given actuator can function continuously without overload, when said first counter (t.sub.i.sup.avail) exceeds a set first counter threshold (t.sub.i.sup.avail).

8. The method of claim 1, further comprising: augmenting a first counter (t.sub.i.sup.avail) whenever said first comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said first set threshold value (ƒ.sub.i(u.sub.i.sup.avail)), and adjusting at least the weight matrix W based on a current value of said first counter (t.sub.i.sup.avail), and actively changing W and u.sub.i.sup.max during operation of the actuator system based on a second comparison, for at least some of the actuators, of the control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof with at least a second set threshold value (ƒ.sub.i(u.sub.i.sup.max)) for said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof, when said second comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said second set threshold value (ƒ.sub.i(u.sub.i.sup.max)), and when a second counter (t.sub.max), which second counter (t.sub.max) is augmented whenever said second comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said second set threshold value (ƒ.sub.i(u.sub.i.sup.max)) exceeds a set second counter threshold (t.sub.i.sup.max), whereupon u.sub.i.sup.max is adjusted to a lower value available control input (u.sub.i.sup.avail), said lower value available control input (u.sub.i.sup.avail) being the control input (u.sub.i.sup.avail) at which a particular one of the actuators functions continuously without overload, said second comparison being repeated over time during operation of the actuator system, wherein said second set threshold value (ƒ.sub.i (u.sub.i.sup.max)) comprises the maximum control limit (u.sub.i.sup.max) for each said actuator, said maximum control limit (u.sub.i.sup.max) being the control limit (u.sub.i.sup.max) at which a particular one of said actuators functions only during a limited amount of time without overload.

9. The method of claim 8, wherein, when either said first counter (t.sub.i.sup.avail) exceeds a set first counter threshold (t.sub.i.sup.avail) or said second counter (t.sub.i.sup.max) exceeds said set second counter threshold (t.sub.i.sup.max), a third counter (t.sub.i.sup.cd) is decreased and the weighting w.sub.i is set to a default value, with w.sub.i being equal to unity and u.sub.i.sup.max is set to u.sub.i.sup.avail, and when said third counter (t.sub.i.sup.cd) has reached a third set counter threshold, said first, second, and third counters (t.sub.i.sup.avail, t.sub.i.sup.max, t.sub.i.sup.cd) are reset to a respective initial value thereof and also u.sub.i.sup.max is set to its initial value u.sub.i.sup.max,init.

10. The method of claim 9, wherein, based on a third comparison, for at least some of the actuators, of the control input u.sub.i or a function ƒ.sub.i(u.sub.i) thereof with said first set threshold value (ƒ.sub.i(u.sub.i.sup.avail)) and of said third counter (t.sub.i.sup.cd) with said third set counter threshold, when said third comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof does not exceed said first set threshold value (ƒ.sub.i(u.sub.i.sup.avail)) and that said third counter (t.sub.i.sup.cd) has its initial value (t.sub.i.sup.cd,init), then at least w.sub.i is set to the default value, with w.sub.i being equal to unity, said third comparison being repeated over time during operation of the actuator system.

11. The method of claim 10, wherein, when said third comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof does not exceed said first set threshold value (ƒ.sub.i(u.sub.i.sup.avail)) and that said third counter (t.sub.i.sup.cd) has its initial value (t.sub.i.sup.cd,init), at least one of said first counter (t.sub.i.sup.avail) is decreased or said second counter (t.sub.i.sup.max) is decreased.

12. The method of claim 11, wherein, when a subsequent comparison yields that said first counter (t.sub.i.sup.avail) is below a first lower bound or that said second counter (t.sub.i.sup.max) is below a second lower bound, said first counter (t.sub.i.sup.avail) or said second counter (t.sub.i.sup.max), respectively, is reset to its initial value thereof.

13. The method of claim 12, wherein, when both said first counter (t.sub.i.sup.avail) and said second counter (t.sub.i.sup.max) have their respective initial values, then at least w.sub.i is set to the default value, with w.sub.i being equal to unity.

14. An aircraft comprising: an actuator system including a plurality of k actuators, said actuators being configured as individual propulsion units of the aircraft, each of said actuators, during operation, is adapted to receive, from at least one flight control unit, a control input u.sub.i, wherein index i denotes a particular one of said actuators, wherein said control input u.sub.i is determined by at least one computer algorithm performed on said at least one flight control unit, the at least one flight control unit by performing said algorithm, is configured to: determine the control input u.sub.i depending on a weight matrix W comprising a weighting factor w.sub.i for each said actuator and depending on at least a physical maximum control limit u.sub.i.sup.max for each of the actuators, actively change both said weighting factor w.sub.i and said physical maximum control limit u.sub.i.sup.max during operation of the actuator system when a first comparison, for at least some of the actuators, of said control input u.sub.i or a function ƒ(u.sub.i) thereof with a set first threshold value)) (ƒ.sub.i(u.sub.i.sup.avail) yields that said control input u.sub.i or said function ƒ(u.sub.i) thereof exceeds said set first threshold value (ƒ.sub.i(u.sub.i.sup.avail)), augmenting a first counter (t.sub.i.sup.avail) whenever said first comparison yields that said control input u.sub.i or said function ƒ.sub.i(u.sub.i) thereof exceeds said first set threshold value (ƒ.sub.i(u.sub.i.sup.avail)), and adjusting at least the weight matrix W based on a value of a weighting function (wf1) that is dependent on the current value of said first counter (t.sub.i.sup.avail): repeat said first comparison over time during operation of the actuator system; and determine a new control input u.sub.i from both an adjusted weighting factor w.sub.i and an adjusted physical maximum control limit u.sub.i.sup.max and applying the new control input u.sub.i to the actuators.

15. The aircraft of claim 14, further comprising sensors configured to provide sensor data representative of a physical and operational state of the aircraft, and the least one flight control unit is configured to determine a pseudo control input u.sub.pj from said sensor data.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) Further features and advantages of the invention will now be described with reference to the appended drawings, which illustrate specific embodiments of the invention.

(2) FIG. 1 shows a schematic drawing of an aircraft according to the invention;

(3) FIG. 2 schematically illustrates control limits u.sub.i.sup.min, u.sub.i.sup.max and u.sub.i.sup.avail for each actuator;

(4) FIG. 3 shows a possible logic for a computer algorithm performed by the flight control unit of the aircraft in FIG. 1; and

(5) FIG. 4 shows a simple weighting function in the form of a 1-sigmoid function.

DETAILED DESCRIPTION

(6) FIG. 1 shows an exemplary MAV-eVTOL aircraft denoted by reference numeral 1. Aircraft 1 has a flight control unit 2 which is in operational connection with a plurality of actuators 3 in the form of aircraft propulsion units, each having an electric motor 3a and a propeller 3b. Only one actuator is explicitly marked in FIG. 1 for reason of clarity. According to the example of FIG. 1, in a vicinity of (each) actuator 3 there is located at least one sensor 4 for measuring an operational state of the actuator 3. This may comprise—without limitation—measuring a temperature, an electrical power consumption, a rotational velocity (RPM) etc. of the actuator, in order to determine its present operational state and health status (e.g., overheated). There are many more flight relevant sensors onboard the aircraft 1, which determine flight control and safety-relevant data (attitude, air speed, ground speed, collision-avoidance data etc.) which are known to the skilled person and not shown here. These sensors 4 provide aircraft status data SD which can be used by flight control unit or controller 2. In this way, flight control unit 2—by means of suitable algorithms—using known state feedback control laws (which for MAV-VTOL comprise, e.g., attitude, altitude, position/velocity control, path/trajectory tracking etc.) compute a desired control input u.sub.p based on the system dynamics described in Equation 1. This, however, needs to be distributed to the physical actuators 3 using actual control inputs u. Hence, a sort of inverse matrix computation is needed in order to compute u.sub.p from u. This has been explained in detail before.

(7) Flight control unit 2 comprises an algorithm 2a (i.e., comprises computing means that perform said algorithm 2a) which receives said desired control input u.sub.p and which performs the method according to the present invention (or an embodiment thereof) in order to weight and reshape the actuator allocation. The output of the corresponding calculations is provided to actuator control means 2b, which provide the actual control input u.sub.i to the individual actuators 3. Data from sensors 4 can be used to enhance performance of the algorithm, e.g., by providing control feedback—however, this is not required.

(8) FIG. 2 schematically illustrates control limits u.sub.i.sup.min, u.sub.i.sup.max and u.sub.i.sup.avail for each actuator. Each of these limits can be different for each actuator (e.g. are not necessarily the same for all actuators). While u.sub.i.sup.min denotes a minimum control input for a given actuator which could correspond to the minimum RPM, thrust, torque, power, etc. that said actuator can provide, u.sub.i.sup.max could correspond to the maximum RPM, thrust, torque, power, etc. that said actuator can physically provide at peak power and only for a specific amount of time. u.sub.i.sup.avail could correspond to the maximum RPM, thrust, torque, power, etc. that actuator can provide continuously, e.g. without overheating/overloading problems. Before, u.sub.i.sup.avail had been referred to as a first threshold value in the form of a rather soft limit (available control limit). For typical actuators 3, e.g. electric motors for MAVs, cf. FIG. 1, this limit corresponds to the characteristics or functional mode described before according to which the actuator can provide continuous power for a substantially unlimited time, in particular during one full mission (i.e. between take-off and landing, which is the maximum flight time).

(9) In FIG. 2, u.sub.i.sup.avail is different for each of the actuators; u.sub.i.sup.min, u.sub.i.sup.max are the same for each of the actuators, which need not be necessarily so. While the area just above u.sub.i.sup.avail is hatched, there is another area just below u.sub.i.sup.max which is shown in a darker shade. The lower border of this darker area corresponds to u.sub.i.sup.max−∈.sub.i, wherein ∈.sub.i is a safety margin, as explained before.

(10) FIG. 3 shows a possible logic for a computer algorithm performed by the flight control unit of the aircraft in FIG. 1, which algorithm uses the definitions given before and partly illustrated in FIG. 2. Said algorithm is referred to a weighting and reshaping algorithm for the allocation of the actuator commands, and it is performed by flight control unit 2 (FIG. 1) to provide the aircraft's actuators with control input u.sub.i.

(11) The algorithm of FIG. 3 is somewhat self-explanatory so that a short description thereof will be sufficient here. It comprises three procedures INITIALIZE (lines 1-3), REWEIGHTRESHAPEALLOCATION (lines 4-29) and WEIGHTEDALLOCATION (lines 30-31). The procedure INITIALIZE initializes the cool-down timer (or counter) for each actuator (propulsion unit): t.sub.i.sup.cd←t.sub.i.sup.cd,init and the maximum actuator limits: u.sub.i.sup.max←u.sub.i.sup.max,init. A possible value for this timer could be 10 s. This timer indicates for how long an actuator will be operated with reduced control limit after having been operated for more than a certain amount of time above u.sub.i.sup.avail.

(12) The procedure REWEIGHTRESHAPEALLOCATION comprises, in line 7, a comparison, for each one of the actuators, of ƒ.sub.i(u.sub.i) with both ƒ.sub.i(u.sub.i.sup.min) and ƒ.sub.i(u.sub.i.sup.avail), the latter being a first threshold. If said first threshold is not exceeded, and the cool-down timer t.sub.i.sup.cd still has its initial value, then w.sub.i is set to 1 (unity weight), which is the nominal or default condition: the corresponding actuator is weighted normally. The counters t.sub.i.sup.avail and t.sub.i.sup.max, as defined before, are decreased, and are set to zero in case they should become negative. In line 15, there is another comparison of ƒ.sub.i(u.sub.i) with ƒ.sub.i(u.sub.i.sup.avail). In case ƒ.sub.i(u.sub.i)>ƒ.sub.i(u.sub.i.sup.avail), a corresponding further timer is increased, which accounts for the time a given actuator is operated above its available control limit. Then, in line 17, there is another comparison of ƒ.sub.i(u.sub.i) with ƒ.sub.i(u.sub.i.sup.max)−∈.sub.i, which corresponds to operation at maximum control limit minus a heuristically set safety margin. In case ƒ.sub.i(u.sub.i)>ƒ.sub.i(u.sub.i.sup.max)−∈.sub.i, a corresponding further timer is increased, which accounts for the time a given actuator is operated at or close to its maximum limit. If, in line 19, both counters t.sub.i.sup.avail and t.sub.i.sup.max are still zero, we have nominal conditions, and w.sub.i is set to 1 (unity weight). Otherwise it is checked, beginning in line 22, whether or not at least one of counters t.sub.i.sup.avail and t.sub.i.sup.max has reached its maximum or upper threshold value, which indicates that a given actuator has been operated above the available limit ƒ.sub.i(u.sub.i.sup.avail) for too long. If said check is positive, the highest possible control limit for that actuator is reduced, u.sub.i.sup.max←u.sub.i.sup.avail, which is also referred to as reshaping. In line 25, the corresponding cool-down timer or counter is started (decreased) in order to be able to end the reshaping after a pre-set amount of time. Lines 26 through 30 codify an end of cooldown, if the timer has reached zero. If, however, counter t.sub.i.sup.max is not zero, i.e. there has been operation at or close to the physical control limit, but neither t.sub.i.sup.avail and t.sub.i.sup.max has reached its maximum or threshold value (line 31), then w.sub.i is set to a value derived from a weighting function (wf1, e.g. a sigmoid or sigmoid-like function) with argument t.sub.i.sup.max, which yields a value for w.sub.i between 0 and 1. And if t.sub.i.sup.max is zero but the counter t.sub.i.sup.avail is not zero, i.e., there has been operation above the available control limit, but neither t.sub.i.sup.avail and t.sub.i.sup.max has reached its maximum or threshold value (line 31), then w.sub.i is set to a value derived from another weighting function (wf2, e.g. a sigmoid or a sigmoid-like function) with argument t.sub.i.sup.avail, which yields a value for w.sub.i between 0 and 1. The two weighting functions wf1 and wf2 may have the same logic.

(13) FIG. 4 illustrates this in exemplary fashion, wherein w.sub.i(t.sub.i.sup.avail)=1 sigmoid(t.sub.i.sup.avail)=1−1/(1+exp(−t.sub.i.sup.avail)): w.sub.i takes on values between 0 and 1 for arguments t.sub.i.sup.avail, ranging from 0 to t.sub.i.sup.avail. While w.sub.i remains close to 1 for small values of t.sub.i.sup.avail, it then falls off rather steeply around t.sub.i.sup.avail=0.5 t.sub.i.sup.avail and tends toward zero for even larger values of t.sub.i.sup.avail. However, the invention is by no means limited to any particular weighting function.

(14) Referring back to FIG. 3, procedure WEIGHTEDALLOCATION then allocates the actuators by providing inverted matrix D.sup.−1, which comprises the w.sub.i (actuator weights) and u.sub.i.sup.max (current maximum actuator control limits). This is done repeatedly during aircraft operation.