Using optimized thrust distribution in distributed flight control systems

By generating thrust values ​​for eVTOL multi-rotor helicopters through strict convex optimization problems in distributed flight control systems, the safety problem when the motor is turned off is solved, and safer emergency landing and control are achieved.

CN115066370BActive Publication Date: 2025-09-05KITTY HAWK CORP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202180015036.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-02-19
Filing Date
2021-02-01
Publication Date
2025-09-05
Estimated Expiration
2041-02-01

AI Technical Summary

Technical Problem

Existing eVTOL multi-rotor helicopters cannot glide safely when the motor is turned off, causing safety issues.

Method used

A distributed flight control system is used to generate thrust values ​​for each motor using an optimization problem with a single solution (e.g., a strictly convex optimization problem), ensuring that the vehicle can still be safely controlled even if a motor is turned off.

Benefits of technology

When the motor shuts down, the system can perform an emergency landing more safely and controllably, avoiding a crash and providing a more stable flight experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115066370B_ABST
    Figure CN115066370B_ABST
Patent Text Reader

Abstract

Thrust values ​​for motors in an aircraft are generated, wherein each flight controller of a plurality of flight controllers generates the thrust values ​​for each motor of the plurality of motors using an optimization problem having a single solution. Each flight controller of the plurality of flight controllers transfers one of the generated thrust values ​​to a corresponding motor of the plurality of motors, wherein the other generated thrust values ​​for the flight controller are terminated at the flight controller. The plurality of motors execute the transferred thrust values.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Background

[0001] Personal aircraft, such as electric vertical takeoff and landing (eVTOL) multirotor helicopters, offer a way to circumvent congested highways and city streets. However, safety is a key consideration for such vehicles. In particular, some eVTOL multirotor helicopters lack wings and, therefore, cannot glide in the event of a motor failure or other emergency. New technologies and / or systems that make aircraft, such as eVTOL multirotor helicopters, safer are desirable. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Various embodiments of the invention are disclosed in the following detailed description and accompanying drawings.

[0003] Figure 1 is a flow chart illustrating an embodiment of a process for generating thrust values ​​using an optimization problem with a single solution and causing a motor to execute those thrust values.

[0004] Figure 2 is a diagram illustrating an embodiment of an electric vertical take-off and landing (eVTOL) multirotor helicopter.

[0005] Figure 3A is a top view illustrating an embodiment of an eVTOL multi-rotor helicopter hovering with associated rotor rotation directions and rates as shown.

[0006] Figure 3B is a top view illustrating an embodiment of an eVTOL multirotor helicopter making a right turn with associated rotor rotation directions and rates as shown.

[0007] Figure 3C is a top view illustrating an embodiment of an eVTOL multirotor helicopter being pitched forward with associated rotor rotation directions and rates as shown.

[0008] Figure 4 is a diagram illustrating an example of a flight control system with redundant flight controllers and decision blocks.

[0009] Figure 5 is a diagram illustrating an embodiment of a distributed flight control system. In this example, the number of flight controllers is equal to the number of motors.

[0010] Figure 6 is a top view illustrating an embodiment of an eVTOL multi-rotor helicopter with motors turned off.

[0011] Figure 7 FIG. 1 is a diagram illustrating an example of a staged thrust distribution process. In this example of thrust distribution, thrust is distributed in stages.

[0012] Figure 8is a flow chart illustrating an embodiment of a process including generating a thrust value by using a maximum thrust vector.

[0013] Figure 9 is a flow chart illustrating an embodiment of a process that includes generating thrust values ​​by tracking whether any thrust values ​​are actively constrained.

[0014] Figure 10 is a flow chart illustrating an embodiment of a process including generating thrust values ​​by using axis weighting parameters.

[0015] Figure 11 is a flow chart illustrating an embodiment of a process for generating thrust values ​​where the optimization problem has multiple parts or terms associated with different objectives. DETAILED DESCRIPTION

[0016] The present invention may be implemented in a variety of ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer-readable storage medium; and / or a processor, such as a processor configured to execute instructions stored on and / or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of steps of the disclosed processes may be changed within the scope of the present invention. Unless otherwise specified, a component such as a processor or memory described as being configured to perform a task may be implemented as a general-purpose component that is temporarily configured to perform a task at a given time, or as a specific component manufactured to perform the task. As used herein, the term "processor" refers to one or more devices, circuits, and / or processing cores that are configured to process data, such as computer program instructions.

[0017] A detailed description of one or more embodiments of the present invention is provided below, together with accompanying drawings that illustrate the principles of the present invention. The present invention is described in conjunction with such embodiments, but the present invention is not limited to any embodiment. The scope of the present invention is limited only by the claims, and the present invention encompasses many alternatives, modifications, and equivalents. In order to provide a thorough understanding of the present invention, many specific details are set forth in the following description. These details are provided for illustrative purposes, and the present invention can be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material known in the technical field related to the present invention has not been described in detail to avoid unnecessarily obscuring the present invention.

[0018] Various embodiments of a distributed flight control system are described herein that use an optimization problem with a single solution to perform thrust allocation (i.e., generate thrust values ​​for the motors in a vehicle). In some examples described herein, the vehicle is an electric vertical takeoff and landing (eVTOL) multirotor helicopter, in which each rotor (motor) is independently controllable, and thrust values ​​are generated using the techniques described herein. As will be described in more detail below, the benefits of the systems and / or techniques described herein may be particularly clear and / or useful in the event of a motor stall. For example, the systems and / or techniques described herein can allocate thrust in a manner that permits a safer and / or more controlled emergency landing in the event of one or more motor stalls. The following figure depicts one such embodiment of a distributed flight control system that uses convex optimization to perform thrust allocation.

[0019] Figure 1 is a flow chart illustrating an embodiment of a process for generating thrust values ​​using an optimization problem with a single solution and causing a motor to execute those thrust values. As described above, in some embodiments, the process is performed by and / or in an eVTOL aircraft.

[0020] At 100, thrust values ​​are generated for a plurality of motors in an aircraft using multiple flight controllers, wherein each of the plurality of flight controllers generates thrust values ​​for each of the plurality of motors using an optimization problem with a single solution. For example, assume there are N motors and N flight controllers in the aircraft. Each flight controller generates thrust values ​​using a strictly convex or strictly concave optimization problem (e.g., finding the minimum of a strictly convex optimization function, described in more detail below). Because the optimization problem (e.g., performed by the flight controller) is strictly convex or strictly concave, a single unique solution exists. This allows all flight computers to perform thrust allocation in parallel while still arriving at the same solution, thereby enabling a distributed flight control system architecture. In various embodiments, the flight controllers may be implemented in hardware (e.g., an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA)) or software (e.g., firmware running on an embedded microprocessor).

[0021] At 102, for each of a plurality of flight controllers, one of the generated thrust values ​​is transmitted to a corresponding motor from a plurality of motors, with the remaining generated thrust values ​​for that flight controller terminating at that flight controller. For example, assume a first flight controller generates 10 thrust values ​​for motors indexed or numbered 1-10, respectively. A first generated thrust value (associated with and / or intended for the first motor) is transmitted to the first motor. The remaining generated thrust values ​​from the first flight controller are not connected to any motor and terminate at the first flight controller. At a second flight controller, a second generated thrust value is transmitted to a second motor, but the remaining generated thrust values ​​are not connected to any motor, and so on.

[0022] At 104, the delivered thrust values ​​are executed using the plurality of motors. In other words, the motors execute the thrust values ​​they receive (e.g., a first motor executes a first thrust value from a first flight controller, a second motor executes a second thrust value from a second flight controller, etc.). As will be described in greater detail below, this process may better enable execution of an emergency landing (e.g., a safer and / or more controlled descent) in the event of a motor stall.

[0023] To better understand Figure 1 It may be helpful to describe an example vehicle that performs the above process. The following figure describes the use of Figure 1 FIG10 is a process for controlling an exemplary eVTOL aircraft with its motors.

[0024] Figure 2 is a diagram illustrating an embodiment of an electric vertical take-off and landing (eVTOL) multirotor helicopter. In this example, the eVTOL aircraft (200) is a multirotor helicopter having 10 rotors (e.g., rotor 202). Each of the 10 rotors is independently powered and / or controlled by its own motor and its own battery, not shown here. This independent controllability permits the eVTOL aircraft to perform various maneuvers. The rotors are at fixed positions and angles. As such, to maneuver or otherwise cause the aircraft to fly, the motors are independently controlled to produce desired forces and torques. Some example maneuvers are described below.

[0025] Figure 3A is a top view of an embodiment of an eVTOL multi-rotor helicopter illustrating hovering with associated rotor rotation directions and rates as shown. In this example, ( Figure 2The vehicle (shown in FIG) is hovering, with the outer eight rotors (300a-307a) rotating approximately equally, providing no overall torque. Note, for example, that the magnitude of the curved arrows associated with rotors 300a-307a are approximately the same length. The direction of the arrow indicates the direction of rotation of a given rotor. The rotation rate of a given motor (rotor) (e.g., represented by the length of the curved arrow) is determined by the thrust value generated for that motor (e.g., in FIG). Figure 1 ) control is generated at step 100 in .

[0026] Figure 3B is a top view of an embodiment of an eVTOL multi-rotor helicopter illustrating a right turn with associated rotor rotation directions and rates shown. In this example, the vehicle is turning right, and therefore the rotors rotating in a clockwise direction (e.g., rotors 302b, 304b, 306b, and 307b) are rotating at a faster rate than the rotors rotating in a counterclockwise direction (e.g., rotors 300b, 301b, 303b, and 305b). This maintains the overall vertical force (e.g., thereby maintaining a stable altitude) while increasing the overall yaw moment (e.g., causing the vehicle to turn).

[0027] Figure 3C 1 is a top view of an embodiment of an eVTOL multirotor helicopter being pitched forward with the associated rotor rotation directions and rates shown. To provide the necessary pitching moment, the rear rotors (e.g., rotors 302c-305c) located behind the center of mass rotate faster than the front rotors (e.g., rotors 300c, 301c, 306c, and 307c).

[0028] The control thrust values ​​used to control the motors can be generated by a variety of (control) systems. The following figure depicts an example of an older system with redundant flight controllers and decision blocks.

[0029] Figure 4 is a diagram illustrating an example of a flight control system with redundant flight controllers and decision blocks. In this example of how other systems perform thrust distribution, three flight computers (400a-400c) are used to provide redundancy. The flight computers input (desired) forces and moments (e.g. F z 、 M x 、 M y and M z Each flight computer performs thrust distribution (i.e., generates thrust values) to produce the input and / or desired forces and torques. For example, flight controller A (400a) generates thrust values ​​1A-10A for motors 1 through 10, respectively. Similarly, flight controller B (400b) generates thrust values ​​1B-10B for motors 1 through 10, respectively, and so on.

[0030] All generated thrust values ​​are passed from the flight computers (400a-400c) to a decision block (402). The decision block uses all generated thrust values ​​to decide what thrust value to pass to the motor. For example, a voting scheme can be used, where the decision block can compare the thrust values ​​for a given motor from each flight computer (e.g., for motor 1, thrust values ​​1A-1C would be compared). If two or more thrust values ​​are the same for a given motor, then that thrust value is output as a first consensus thrust value (e.g., consensus thrust 1) and passed to that motor (e.g., motor 1 (404a)). For example, in the event that thrust 1A from flight controller A (400a) and thrust 1B from flight controller B (400b) are the same for the first motor (404a), but thrust 1C from flight controller C (400c) is different, then the decision block 402 (at least in this voting scheme example) passes the majority vote thrust value of thrust 1A / 1B.

[0031] Similarly, decision block 402 generates a second consistent thrust value (e.g., consistent thrust 2) for the second motor 404b based on the input thrust values ​​for the second motor 404b (e.g., thrusts 2A, 2B, and 2C from flight controller A 400a, flight controller B 400b, and flight controller C 400c, respectively). This is done for each motor in the system.

[0032] One disadvantage associated with the control system shown here is that the decision block (402) can be complex. For example, for redundancy, the decision block may also have to be replicated, which requires more communication channels and / or another layer of voting on the decision. More generally, decision blocks tend to be complex. The following figure shows an improved and / or simpler (control) system that was later found to be faster and / or better at achieving the desired forces and torques.

[0033] Figure 5 is a diagram illustrating an embodiment of a distributed flight control system. In this example, the number of flight controllers is equal to the number of motors. As such, in this example, there are 10 flight controllers (500a-500d) because there are 10 motors. In contrast, Figure 4 The number of flight controllers in the example is chosen based on other design goals: an odd number greater than or equal to 2 (e.g., for redundancy) or 3 flight controllers (e.g., because a voting system is used in this example).

[0034] In this example, each of the 10 flight controllers inputs the same desired forces and torques and generates thrust values ​​for each motor. Rather than using decision blocks, only the generated thrust values ​​are selected to be connected to the motors and / or used to control the motors. For example, a first thrust value from the first flight controller (500a), associated with and / or intended for the first motor (502a), is passed to the first motor (502a). The other generated thrust values ​​from the first flight controller (500a) are unconnected and / or unused. The other generated thrust values ​​for the first motor (502a) generated by the second flight controller (500b) through the tenth flight controller (500d) are not connected to and / or used to control the first motor (502a). Returning briefly to Figure 1 , this is an example of how some generated thrust values ​​end up at the flight controllers (e.g., thrust values ​​2-10 coming out of flight controller 1 (500a) are not connected to any motors). In other words, each flight computer believes it is flying the entire vehicle and therefore solves the full thrust distribution problem (i.e., generates thrust values ​​for all motors in the vehicle, in this example, 10). However, only the thrust value for a single motor (e.g., the motor corresponding to that flight controller) is actually sent to that motor.

[0035] Similarly, a second thrust value from the second flight controller (500b) (associated with and / or intended for the second motor (502b)) is passed and / or connected to the second motor (502b). The other nine generated thrust values ​​from the second flight controller (500b) are not connected (e.g., the first and third to tenth thrust values). This pattern repeats for the remaining flight controllers and remaining motors.

[0036] The requirement or constraint on the system shown here is that it depends on all flight controllers reaching the same solution and / or thrust values. In reality, the thrust values ​​do not need to be exact. As long as the generated thrust values ​​are all within a small tolerance of each other (e.g., motor thrust resolution, within 1N of force, etc.) (e.g., this is due to slightly different state estimates due to sensor and / or process noise), the system will work. Another way to say this is that the flight computers perform the same thrust allocation process, allowing them to produce (close to) the same thrust values. This property allows the flight computers to operate independently.

[0037] In general, it has been found that Figure 4The thrust distribution (i.e., the generation of thrust values ​​for given input and / or desired forces and torques) performed by the distributed control system shown here yields better results than the control system shown in For example, it uses fewer and / or simpler (electronic) components (e.g., there are no decision blocks that tend to be complex).

[0038] Note that the techniques and / or systems described herein are applicable to both autonomous and manned flight. In other words, the input forces and torques may come from the pilot via manual control, or from an autonomous flight controller. As already described herein, the benefits of this system are particularly evident during a motor stall condition. In some manned applications, if a motor stall is detected, the vehicle switches from a manned flight mode (e.g., where a pilot controls the aircraft) to an autonomous flight mode. The autonomous flight controller can then transmit the input forces and torques associated with the emergency flight plan to the flight controller to land the vehicle as quickly and safely as possible.

[0039] As described above, the techniques and / or systems described herein are particularly beneficial and / or useful in the event that one or more motors stall. The following figure illustrates an example motor stall condition so that some benefits and / or improvements associated with the techniques and / or systems described herein can be described.

[0040] Figure 6 is a top view illustrating an embodiment of an eVTOL multirotor helicopter with motors turned off. In this example, the exemplary eVTOL multirotor helicopter does not have wings to perform wing-borne flight (e.g., see Figure 2 ), and as such must rely entirely on the rotors to remain airborne. The eVTOL multi-rotor helicopter illustrated herein is also an ultralight vehicle with strict weight restrictions that may preclude the addition of such wings. For these reasons, an improved (control) system that is capable of better landing the eVTOL aircraft in the event of a motor stall condition (e.g., in a more controlled manner, with less impact, etc.) without the need for additional and / or heavier parts would be more desirable for this ultralight application and / or example vehicle. Naturally, the technology described herein has applications in, and can be implemented in, other vehicles.

[0041] In this example, when one motor (600) is turned off, the vehicle pitches forward. For example, the system Figure 3C The state shown in enters the state shown here. Even if you use Figure 5 Even with some thrust distribution techniques, the thrust distribution may not be optimal, as shown in the distributed control system shown in [1]. The figure below shows an example of how thrust distribution was previously performed, where if some motors stalled, the multirotor helicopter could crash.

[0042] Figure 7 is a diagram illustrating an example of a staged thrust distribution process. In this example of thrust distribution, thrust is distributed in stages. Input and / or desired forces and moments ( F z 、 M x 、 M y and M z ) are used as input to the process. For example, in Figure 6 In the , the forces and moments associated with forward pitching are inputs into the thrust distribution process.

[0043] At 700, the thrust is distributed to achieve vertical force ( F z )、Rolling moment( M x ) and pitching moment ( M y ). For example, in Figure 6 In the example, there are 10 motors generating thrust values, and these 10 thrust values ​​are assigned values ​​greater than or equal to zero in order to achieve the input vertical force ( F zdes )、Rolling moment( M xdes ) and pitching moment ( M ydes Note that in this step, yaw control (e.g., the desired yaw moment) is not considered. M zdes express).

[0044] At 702, if necessary, the thrust values ​​are uniformly reduced based on the maximum achievable thrust. Another factor not considered during the (initial) thrust allocation at step 700 is the maximum thrust achievable by the motors. Saturation occurs when one or more motors are at their maximum achievable thrust. If this occurs, the thrust values ​​generated at step 700, in this example, are uniformly reduced so that they do not exceed the maximum achievable thrust. This is sometimes referred to as clipping.

[0045] At 704, any remaining thrust is allocated to achieve the yaw moment ( M z For example, the thrust value output at step 702 may not necessarily produce the input and / or desired yaw moment ( M zdes ), and if there is any excess thrust (e.g., within the limits of maximum thrust achievable), that excess thrust is allocated to one or more motors to achieve (or at least get closer to) the input and / or desired yaw moment ( M zdes ).

[0046] Figure 7 The phased process is fast and efficient, but has some drawbacks. The most serious problem is that the loss of some motors (e.g., even one motor) may cause the exemplary eVTOL multirotor helicopter to crash. In the event of a motor flameout (e.g., see Figure 6 ), Figure 7 The thrust distribution process described in will simply scale up the input and / or required vertical forces ( F zdes ).exist Figure 6 In the example, the (original) request F zdes This is increased proportionally to 10 / 9 because there are a total of 10 motors, of which 9 out of 10 are operating. Figure 7 The new expected vertical force for the process will then be F zdes This approach is suboptimal because the solver continues to distribute thrust (e.g., at step 700) as if all 10 motors were available. Since the inactive motors are used to distribute thrust, the inactive motors contribute to the vertical force ( F z )、Rolling moment( M x ) and pitching moment ( M y ) (e.g., at step 700) will be lost or lacking, and the resulting thrust value may not achieve the desired control. In some cases (e.g., if some motors stall), this can cause the eVTOL multirotor helicopter to crash.

[0047] Even if the vehicle does not crash, the flying experience may be uncomfortable and / or suboptimal, especially if saturation occurs. In this example, to correct for saturation, clipping is required (e.g., Figure 7 ), which is a crude correction technique. Due to clipping, the altitude may not match (i.e., the clipped thrust value may produce a vertical force that does not match the desired vertical force, and the vehicle may therefore rise or descend undesirably). Clipping in step 702 may also cause similar mismatches in the rolling and / or pitching moments. The clipped thrust value may produce a rolling and / or pitching moment that does not match the desired rolling and / or pitching moment, and the vehicle may therefore roll and / or pitch undesirably. This typically causes oscillations, which increase the risk to passengers and make the flight more difficult. In other words, the generated thrust value may not produce the desired forces and moments, and / or the flight experience may be uncomfortable and / or dangerous for the occupants.

[0048] In contrast, using an optimization problem with a single solution (e.g., a strictly convex optimization problem) to distribute thrust (e.g., in Figure 1 Step 100) provides a safer flight experience even if one or more motors stall. The following equation is an example convex optimization problem for distributing thrust (e.g., in Figure 1 100 in step 100).

[0049]

[0050] Equation 1: Example strictly convex optimization problem used in thrust allocation .

[0051] In this example, Equation 1 is a convex optimization problem (in this case, strictly convex and quadratic) where is the motor thrust vector, is the vector of desired forces and moments, is the load cosine matrix that maps the motor thrust into the realized force and torque, is a diagonal weight matrix, Is from The submatrix of the unitary matrix of the singular value decomposition of is projected into the null space of forces and moments, and is a small positive value (e.g., reducing the magnitude of the second term relative to the first (i.e., ensuring that the function is strictly convex) (i.e., achieving the desired forces and moments)). Note that while this example optimization problem finds the minimum of a (strictly) convex function, in some embodiments, the optimization problem finds the maximum of a (strictly) concave function.

[0052] In the context of input and output, (the vector of motor thrust) is the output and the output of the solution to the convex optimization problem, and (the vector of desired forces and torques) and motor stalls (if any) are inputs. Any motor stalls are reflected in the maximum thrust vector array For example, if the i-th motor is turned off, then The i-th component in is set to zero, which in turn forces The i-th component in is also zero, corresponding to no thrust at the i-th motor.

[0053] One of the most important properties of the example convex optimization problem shown in Equation 1 is that the example eVTOL multirotor helicopter is no longer susceptible to certain motor stalls. Using the example convex optimization problem running on a distributed flight control system (e.g., see Figure 5), the eVTOL multirotor helicopter can remain airborne even if any one motor is turned off. In some cases, depending on the motor pair, the eVTOL multirotor helicopter can even remain airborne if both motors are turned off. Note that other optimization problems similarly improve the vehicle's airworthiness in the event of one or more motors being turned off.

[0054] Note that the example optimization problems described herein (e.g., Equation 1, Equation 2, etc.) are agnostic with respect to the number of motors and / or their placement or configuration on the aircraft. For example, if during the development of a next-generation eVTOL multirotor helicopter, a decision is made to change the number, size, and / or placement or arrangement of motors from their current configuration, the same optimization problem and / or thrust allocation process can be reused. This is helpful because the flight control system will be known, predictable, and thoroughly tested, compared to a new system that would have to be developed if the system were not scalable and / or adaptable.

[0055] For convenience and ease of explanation, Equation 1 has several properties and / or characteristics associated with it (e.g., strictly convex, quadratic, etc.). This convex optimization problem is merely exemplary, and other convex optimization problems may have some other combination or properties and / or characteristics (e.g., strictly convex but not quadratic). It may be helpful to illustrate the benefits associated with the various inputs, parameters, etc. included in Equation 1 through a simple derivation. The following equation illustrates an example of a simpler convex optimization problem.

[0056]

[0057] Equation 2: Example least squares convex optimization problem .

[0058] In the example of Equation 2, the least squares objective is used to minimize the desired forces and moments (i.e., ) and the realized forces and moments (i.e., ), which is subject to the motor thrust being non-negative (i.e., the constraint ) and at most (i.e., constraints ) constraints.

[0059] If any motor stalls, The constraint that the corresponding elements in are set to zero means that the thrust values ​​generated using the exemplary convex optimization problems described herein (e.g., Equation 1, Equation 2, etc.) are always feasible. That is, the flight controller will always produce a feasible set of motor thrusts (e.g., non-negative and never exceeding ), even in the event of a motor stall. Furthermore, the example optimization problem described in this article is always feasible anyway, so there are no corner cases to be handled separately (described in more detail below). Conceptually, this avoids saturation problems in the first place, while Figure 6 The phased process allows for the generation of infeasible sets of motor thrust values ​​(ie, saturation), and the problem then needs to be addressed after the fact (eg, by clipping, which is a poor and / or crude solution).

[0060] Turn off any motor and merge into the maximum thrust vector ( Another benefit of this is that it enables motor stall information to be incorporated in a better and / or clearer manner. For example, some other techniques might attempt to incorporate motor stall information into the design variables, or might reformulate the problem in other ways (e.g., switching to a different optimization problem if a motor stall occurs), both of which could make thrust allocation more complex and / or slower to produce an acceptable set of thrust values. The vector needs to exist to reflect the thrust limitations of the motor, and so the existing elements in the optimization function serve multiple purposes.

[0061] The following diagram describes this example more formally.

[0062] Figure 8 is a flow chart illustrating an embodiment of a process including generating a thrust value by using a maximum thrust vector. Figure 8 and Figure 1 Related, and for convenience, the same or similar reference numerals are used to indicate the same or related steps.

[0063] At 800, thrust values ​​are generated for a plurality of motors in an aircraft using a plurality of flight controllers, wherein each of the plurality of flight controllers generates thrust values ​​for each of the plurality of motors using an optimization problem having a single solution, and generating the thrust values ​​includes using a maximum thrust vector (e.g., ) constrains the thrust values ​​to be feasible, wherein any motor stall is reflected in the maximum thrust vector. In some embodiments of step 800, constraining the thrust values ​​to be feasible further includes constraining the thrust values ​​to be greater than or equal to zero (e.g., except In addition, ).

[0064] As described above, constraining the thrust values ​​to be feasible forces the optimizer to reason directly about saturation, thereby producing better and faster results. Furthermore, using the maximum thrust vector to reflect motor stall allows for a simpler design (e.g., no additional parameters, inputs, etc. are required). In some embodiments, if motor stall is detected or otherwise flagged, then The corresponding value in (e.g., corresponding to a detected motor stall) is immediately reset to zero. For example, a motor stall can occur for a variety of reasons. In some cases, there is a loss of communication with the motor, which means it is unknown how long ago the motor stalled. Furthermore, even if a non-zero value (e.g., corresponding to a detected motor stall) gradually decays or is otherwise reset to zero, the motor rotation frequency is relatively fast, so the decay will also occur relatively quickly, and any benefit is therefore minimal.

[0065] At 102 , for each flight controller of a plurality of flight controllers, one of the generated thrust values ​​is transmitted to a corresponding motor of a plurality of motors, wherein other generated thrust values ​​for the flight controller terminate at the flight controller.

[0066] At 104 , delivering thrust values ​​is performed using a plurality of electric motors.

[0067] Returning briefly to Equation 2, in some embodiments, an active set technique, method, or process is used to solve a convex optimization problem (e.g., Equation 1, Equation 2, etc.). The active set technique starts from a feasible point (e.g., requiring and therefore the feasible motor thrust initial vector) and the constraint set (e.g., at any thrust value between In the case of defined saturation values, such as when a given motor is operating, the given thrust value is at A non-zero saturation value in , when a given motor is turned off, The zero saturation value in , or when the thrust value is zero and is non-zero). Another way to say this is when the thrust value is constrained by an upper or lower limit. To solve the problem more efficiently, by keeping track of which constraints are active (i.e., actively constraining a given thrust value), the thrust value is iteratively updated in a finite number of steps to obtain the optimal solution. For example, if it is known that motor 3 was saturated in the previous step (e.g., the motor thrust value for motor 3 is in the vector ), it will likely saturate in the next iteration. The next iteration solves the problem without changing the thrust (e.g., the constrained thrust), but then verifies that the resulting solution continues to be optimal for the exemplary saturated third motor. This reduces the number of thrust values ​​that need to be considered, evaluated, and / or adjusted in the next iteration, thereby reducing the number of considerations for the process and resulting in a much faster average solution time.

[0068] The following diagram describes this example more formally.

[0069] Figure 9is a flow chart illustrating an embodiment of a process that includes generating thrust values ​​by tracking whether any thrust values ​​are actively constrained. Figure 9 and Figure 1 Related, and for convenience, the same or similar reference numerals are used to indicate the same or related steps.

[0070] At 900, thrust values ​​are generated for a plurality of motors in an aircraft using a plurality of flight controllers, wherein each of the plurality of flight controllers generates thrust values ​​for each of the plurality of motors using an optimization problem having a single solution, and generating the thrust values ​​includes using an active set technique including by tracking whether any thrust value is actively constrained, wherein any motor stall is reflected in a maximum thrust vector.

[0071] As mentioned above, this simplifies the thrust allocation process because the thrust values ​​of the active constraints (e.g. or at zero within their corresponding maximum element) are first assumed to be actively constrained in the next iteration, and so the thrust value will (again) be the maximum, simplifying the processing.

[0072] In some embodiments, warm start is used in combination with active set technology ( Figure 9 (not shown). For example, assume that a first set of thrust values ​​is generated or otherwise delivered to a motor for the i-th set of desired forces and torques at a first time point t (alternatively, index i in discrete-time applications). In the case of a warm start, the first set of desired forces and torques is used as the initial and feasible set of thrust values, and the Active Set process begins with this initial and feasible set of thrust values ​​when generating a second set of thrust values ​​for a second set of desired forces and torques associated with a second (next) time point or index. This can help the Active Set process more quickly find a set of thrust values ​​to output, thereby reducing processing time.

[0073] As described above, in some embodiments, step 900 further includes ( Figure 9 ) with the following limitation: when generating thrust values ​​for a second subsequent set of desired forces and moments, the first set of thrust values ​​generated for the first set of desired forces and moments is used as the initial set of thrust values.

[0074] At 102 , for each flight controller of a plurality of flight controllers, one of the generated thrust values ​​is transmitted to a corresponding motor of a plurality of motors, wherein other generated thrust values ​​for the flight controller terminate at the flight controller.

[0075] At 104 , delivering thrust values ​​is performed using a plurality of electric motors.

[0076] Returning briefly to Equation 2, a disadvantage of Equation 2 is that controls along different axes cannot be prioritized and / or weighted. For example, in Figure 2 In the case of an open cockpit eVTOL multirotor helicopter as shown in , it is very important that the vehicle does not flip upside down, as any occupant could be seriously injured or killed. As such, roll control (e.g., with the desired roll moment) M xdes associated with) and pitch control (e.g., with the desired pitch moment M ydes associated with yaw moment) may be more effective than yaw control (e.g., M zdes associated with) and height control (e.g., with vertical forces F zdes ) is more important. In other words, not flipping over may be more important, even at the expense of the vehicle descending (e.g., slowly) and spinning like a pancake to prevent it from flipping over. Equation 2 does not allow for this situation and does not have this capability. The following example equation introduces such weighting and / or prioritization into the optimization function of Equation 2.

[0077]

[0078] Equation 3: Example least squares optimization problem with weighting .

[0079] In Equation 3, is a diagonal weighting matrix (more generally referred to as axis weighting parameters). Using such axis weighting parameters, control about one or more more important axes (e.g., roll and pitch in the above example) can be prioritized over one or more less important axes (e.g., yaw). As described above, control about the roll and pitch axes is important to preventing the exemplary open cockpit eVTOL multirotor helicopter from flipping over, even at the expense of some yaw control. In other words, when performing an emergency landing, it may be acceptable for the vehicle to rotate about the yaw (vertical) axis (e.g., slowly) if it prevents the eVTOL multirotor helicopter from flipping over. Furthermore, the axis weighting parameters (e.g., ) is parameterizable (e.g., as opposed to a strictly binary on / off is adjustable) and is continuous (e.g., this is beneficial because there is no Discontinuities in the equation ( ) create a risk that the system may not find a solution for the thrust value and / or that the search for a solution may be delayed due to the discontinuity.) In one example, , which most heavily weights or prioritizes satisfying the desired roll and pitch moments (e.g., both 1000 values), then the desired vertical force (e.g., a value of 100 in the upper left corner), and finally, with lowest priority, the desired yaw moment (e.g., a value of 10 in the lower right corner). In various embodiments, the weights are selected or otherwise chosen to be more or less aggressive, customized to suit a particular application (e.g., more conservative for manned flight versus unmanned / autonomous flight), and / or dynamically changed (e.g., during flight).

[0080] The following diagram describes this example more formally.

[0081] Figure 10 is a flow chart illustrating an embodiment of a process including generating thrust values ​​by using axis weighting parameters. Figure 10 and Figure 1 Related, and for convenience, the same or similar reference numerals are used to indicate the same or related steps.

[0082] At 1000, thrust values ​​are generated for a plurality of motors in an aircraft using a plurality of flight controllers, wherein each of the plurality of flight controllers generates the thrust values ​​for each of the plurality of motors using an optimization problem having a single solution, and the optimization problem includes axis weighting parameters set to values ​​associated with prioritizing roll and pitch control over yaw (and, in some embodiments, altitude) control.

[0083] At 102 , for each flight controller of a plurality of flight controllers, one of the generated thrust values ​​is transmitted to a corresponding motor of a plurality of motors, wherein other generated thrust values ​​for the flight controller terminate at the flight controller.

[0084] At 104 , delivering thrust values ​​is performed using a plurality of electric motors.

[0085] Returning briefly to Equation 3, Equation 3 leaves open the possibility of multiple solutions. This is undesirable for the distributed control system described herein because it requires all flight controllers (e.g., see Figure 5 ) generates the same set of thrust values ​​for the motors. The equation below shows an example of an optimization function with a regularization term to ensure that there is only one solution (or, in other words, that the function is strictly convex).

[0086]

[0087] Equation 4: Example least squares optimization problem with weighted and regularized terms .

[0088] The second item (i.e. ) ensures that only a single solution exists, and compared to the more important goal of satisfying the desired forces and moments (i.e., the first term), It is relatively unimportant that the value of remains satisfying the second term (i.e., ensuring a single solution). Unfortunately, the newly added second term (i.e., ) does not have the same objective as the first term, and therefore the function trades off between two different objectives.

[0089] Returning briefly to Equation 1, the second term (i.e., ) still enforces the single solution constraint, but also removes the effect of the term on the minimization and / or optimization operation (e.g., because , thrust vector is projected onto the null space of forces and moments so that this term does not affect any thrust value produces the minimum (or more generally, the optimal) value. Note that It is not absolutely necessary, but it may be desirable, to add is kept in Equation 1 (e.g., so that the contribution from the second term is more clearly kept small, so as to better convey the concept to the reader or person implementing the feature, for inspection and / or in principle). This is in contrast to Equation 4, where the use of It is much more important to keep the weight of the second term relatively small.

[0090] The following diagram describes this example more formally.

[0091] Figure 11 is a flow chart illustrating an embodiment of a process for generating thrust values ​​where the optimization problem has multiple parts or terms associated with different objectives. Figure 11 and Figure 1 Related, and for convenience, the same or similar reference numerals are used to indicate the same or related steps.

[0092] At 1100, thrust values ​​are generated for a plurality of motors in an aircraft using a plurality of flight controllers, wherein each of the plurality of flight controllers generates the thrust values ​​for each of the plurality of motors using an optimization problem having a single solution, a portion of the optimization problem being associated with ensuring the existence of a single solution to the optimization problem, and the portion of the convex optimization problem associated with ensuring the existence of the single solution includes a matrix associated with projecting the thrust values ​​into a null space associated with one or more desired forces and / or torques, such that generating the thrust values ​​is independent of the portion of the convex optimization problem associated with ensuring the existence of the single solution. For example, see the second term in Equation 1.

[0093] For example, in Equation 1, is an example of a portion of an optimization problem associated with ensuring that the optimization problem has a single solution. As mentioned above, The thrust value ( ) is projected onto the null space so that the term or part exist is a constant, and the optimization problem is independent of that term or part of the problem.

[0094] At 102 , for each flight controller of a plurality of flight controllers, one of the generated thrust values ​​is transmitted to a corresponding motor of a plurality of motors, wherein other generated thrust values ​​for the flight controller terminate at the flight controller.

[0095] At 104 , delivering thrust values ​​is performed using a plurality of electric motors.

[0096] Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways to implement the invention. The disclosed embodiments are illustrative and not restrictive.

Claims

1. An aircraft, comprising: Multiple flight controllers, configured as: generating thrust values ​​for a plurality of motors in an aircraft, wherein each flight controller of the plurality of flight controllers generates the thrust values ​​for each motor of the plurality of motors using a strictly convex or strictly concave optimization problem having a single unique solution; and for each of the plurality of flight controllers, transmitting one of the generated thrust values ​​to a corresponding motor of the plurality of motors, wherein the other thrust values ​​generated for the flight controller terminate at the flight controller; and The plurality of motors are configured to perform a delivered thrust value.

2. The aircraft according to claim 1, wherein: Generating the thrust values ​​includes constraining the thrust values ​​to be feasible using a maximum thrust vector, where any motor stalls are reflected in the maximum thrust vector.

3. The aircraft according to claim 1, wherein: Generating the thrust value includes constraining the thrust value to be feasible using a maximum thrust vector, wherein any motor stall is reflected in the maximum thrust vector; and Constraining the thrust value to be feasible further includes constraining the thrust value to be greater than or equal to zero.

4. The aircraft according to claim 1, wherein: Generating the thrust values ​​includes using an active set technique that includes actively constraining any thrust value by tracking whether it is subject to a corresponding maximum thrust value in a maximum thrust vector, where any motor stall is reflected in the maximum thrust vector.

5. The aircraft according to claim 1, wherein: Generating the thrust values ​​includes using an active set technique, which includes actively constraining any thrust value by tracking whether it is subject to a corresponding maximum thrust value in a maximum thrust vector, where: Any motor stall is reflected in the maximum thrust vector; and The first set of thrust values ​​generated for the first set of desired forces and moments is used as the initial set of thrust values ​​when generating thrust values ​​for a second subsequent set of desired forces and moments.

6. The aircraft of claim 1, wherein: A portion of the optimization problem is associated with ensuring that a single unique solution exists to a strictly convex or strictly concave optimization problem; and The portion of the optimization problem associated with ensuring that a single unique solution exists to the strictly convex or strictly concave optimization problem includes a matrix associated with projecting thrust values ​​into a null space associated with one or more desired forces and / or moments, such that a first portion of the strictly convex or strictly concave optimization problem associated with the one or more desired forces and / or moments is independent of a second portion of the strictly convex or strictly concave optimization problem associated with ensuring strict convexity or strict concavity.

7. A method comprising: generating thrust values ​​for a plurality of motors in an aircraft, wherein each flight controller of a plurality of flight controllers generates the thrust values ​​for each of the plurality of motors using a strictly convex or strictly concave optimization problem having a single unique solution; for each flight controller of the plurality of flight controllers, delivering one of the generated thrust values ​​to a corresponding motor of the plurality of motors, wherein other thrust values ​​generated for the flight controller terminate at the flight controller; and The delivered thrust value is performed using the plurality of motors.

8. The method according to claim 7, wherein: Generating the thrust values ​​includes constraining the thrust values ​​to be feasible using a maximum thrust vector, where any motor stalls are reflected in the maximum thrust vector.

9. The method according to claim 7, wherein: Generating the thrust value includes constraining the thrust value to be feasible using a maximum thrust vector, wherein any motor stall is reflected in the maximum thrust vector; and Constraining the thrust value to be feasible further includes constraining the thrust value to be greater than or equal to zero.

10. The method according to claim 7, wherein: Generating the thrust values ​​includes using an active set technique that includes actively constraining any thrust value by tracking whether it is subject to a corresponding maximum thrust value in a maximum thrust vector, where any motor stall is reflected in the maximum thrust vector.

11. The method according to claim 7, wherein: Generating the thrust values ​​includes using an active set technique, which includes actively constraining any thrust value by tracking whether it is subject to a corresponding maximum thrust value in a maximum thrust vector, where: Any motor stall is reflected in the maximum thrust vector; and The first set of thrust values ​​generated for the first set of desired forces and moments is used as the initial set of thrust values ​​when generating thrust values ​​for a second subsequent set of desired forces and moments.

12. The method according to claim 7, wherein: A portion of the optimization problem is associated with ensuring that a single unique solution exists to a strictly convex or strictly concave optimization problem; and The portion of the optimization problem associated with ensuring that a single unique solution exists to the strictly convex or strictly concave optimization problem includes a matrix associated with projecting thrust values ​​into a null space associated with one or more desired forces and / or moments, such that a first portion of the strictly convex or strictly concave optimization problem associated with the one or more desired forces and / or moments is independent of a second portion of the strictly convex or strictly concave optimization problem associated with ensuring strict convexity or strict concavity.

13. A computer program product embodied in a non-transitory computer-readable storage medium and comprising computer instructions for: generating thrust values ​​for a plurality of motors in an aircraft, wherein each flight controller of a plurality of flight controllers generates the thrust values ​​for each motor of the plurality of motors using a strictly convex or strictly concave optimization problem having a single unique solution; for each of the plurality of flight controllers, transmitting one of the generated thrust values ​​to a corresponding motor of the plurality of motors, wherein the other thrust values ​​generated for the flight controller terminate at the flight controller; and The delivered thrust value is performed using the plurality of motors.

14. The computer program product of claim 13, wherein: The computer instructions for generating the thrust value include computer instructions for constraining the thrust value to be feasible using a maximum thrust vector, wherein any motor stall is reflected in the maximum thrust vector.

15. The computer program product of claim 13, wherein: the computer instructions for generating the thrust value include computer instructions for constraining the thrust value to be feasible using a maximum thrust vector, wherein any motor stall is reflected in the maximum thrust vector; and The computer instructions for constraining the thrust value to be feasible further include computer instructions for constraining the thrust value to be greater than or equal to zero.

16. The computer program product of claim 13, wherein: The computer instructions for generating thrust values ​​include computer instructions for using an active set technique including actively constraining any thrust value by tracking whether any thrust value is subject to a corresponding maximum thrust value in a maximum thrust vector, wherein any motor stall is reflected in the maximum thrust vector.

17. The computer program product of claim 13, wherein: The computer instructions for generating thrust values ​​include computer instructions for using an active set technique comprising actively constraining any thrust value by tracking whether it is subject to a corresponding maximum thrust value in a maximum thrust vector, wherein: Any motor stall is reflected in the maximum thrust vector; and The first set of thrust values ​​generated for the first set of desired forces and moments is used as the initial set of thrust values ​​when generating thrust values ​​for a second subsequent set of desired forces and moments.

18. The computer program product of claim 13, wherein: A portion of the optimization problem is associated with ensuring that a single unique solution exists to a strictly convex or strictly concave optimization problem; and The portion of the optimization problem associated with ensuring that a single unique solution exists to the strictly convex or strictly concave optimization problem includes a matrix associated with projecting thrust values ​​into a null space associated with one or more desired forces and / or moments, such that a first portion of the strictly convex or strictly concave optimization problem associated with the one or more desired forces and / or moments is independent of a second portion of the strictly convex or strictly concave optimization problem associated with ensuring strict convexity or strict concavity.

Citation Information

Patent Citations

  • Distributed flight control system

    CN110062735A

  • Online optimization-based flight control system

    US20190202546A1