This disclosure relates generally to vehicles and, more particularly, to methods and apparatus to perform observer-based landing control of a vehicle.
In recent years, vehicle control systems, like those used in aircraft, automotive, and marine vehicles, have grown progressively more complex with the proliferation of newer and more powerful controllers. Some vehicle control systems include one or more controllers capable of implementing a greater number of complex algorithms for measuring and/or controlling different aspects of a vehicle. Control systems continue to incorporate applications of advanced control theory that previously were not feasible to implement due to software and/or hardware limitations. In addition, the applications of the control theory continue to be modified for adaptation on newer processor architectures.
Some vehicle control systems include implementations of control theory based on whether a state of the vehicle is known. In some examples, the state of the vehicle is known (measured), which enables the vehicle control system to generate a control command based on a known state of the vehicle. However, in some instances, the state of the vehicle is partially known or completely unknown. In this case, only output measurements from the vehicle sensors (such as inertial measurement units (IMUS) and rate gyros) are available to synthesize a control policy. An unknown state of the vehicle presents additional challenges to the vehicle control system such as, for example, generating a control command based on an estimation of the state of the vehicle. The estimation of the state of the vehicle requires additional processing power to perform complex algorithmic calculations based on advanced control theory techniques. Algorithms that rely on estimation of the vehicle state based on a suite of sensors are referred to as “observer-based control.”
An example apparatus disclosed herein includes at least one memory, and at least one processor to execute instructions to at least in response to determining an aircraft is in a flare regime of a flight plan, determine an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command corresponding to the flare regime, determine a gain value based on a measured state of the aircraft parameter, determine an altitude control input based on the estimate state and the gain value, determine an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and control an elevator of the aircraft based on the altitude command output.
An example tangible computer-readable storage medium disclosed herein includes instructions that, when executed, cause at least one processor to at least in response to determining an aircraft is in a flare regime of a flight plan, determine an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command corresponding to the flare regime, determine a gain value based on a measured state of the aircraft parameter, determine an altitude control input based on the estimate state and the gain value, determine an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and control an elevator of the aircraft based on the altitude command output.
An example method disclosed herein includes in response to determining an aircraft is in a flare regime of a flight plan, determining an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command, determining a gain value based on an aircraft parameter, determining an altitude control input based on the estimate state and the gain value, determining an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and controlling an elevator of the aircraft based on the altitude command output.
The figures are not to scale. In general, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts. As used herein, connection references (e.g., attached, coupled, connected, and joined) may include intermediate members between the elements referenced by the connection reference and/or relative movement between those elements unless otherwise indicated. As such, connection references do not necessarily infer that two elements are directly connected and/or in fixed relation to each other. As used herein, stating that any part is in “contact” with another part is defined to mean that there is no intermediate part between the two parts.
Unless specifically stated otherwise, descriptors such as “first,” “second,” “third,” etc., are used herein without imputing or otherwise indicating any meaning of priority, physical order, arrangement in a list, and/or ordering in any way, but are merely used as labels and/or arbitrary names to distinguish elements for ease of understanding the disclosed examples. In some examples, the descriptor “first” may be used to refer to an element in the detailed description, while the same element may be referred to in a claim with a different descriptor such as “second” or “third.” In such instances, it should be understood that such descriptors are used merely for identifying those elements distinctly that might, for example, otherwise share a same name.
Some vehicle manufacturers have invested in vehicle control system designs to improve accuracy and robustness. The vehicle control system designs may include implementations of control theory based on whether a state of a vehicle parameter is known. In some examples, the state of the vehicle parameter is known, which enables the vehicle control system to generate a control command based on a known state of the vehicle parameter. As used herein, the term “vehicle” may refer to an air-based vehicle (e.g., aircraft, an unmanned aerial vehicle (UAV), etc.), a land-based vehicle (e.g., an automobile, a bus, a train, etc.), and/or a water or marine-based vehicle (e.g., a boat, a submarine, etc.). In some examples, the vehicle parameter may be an aircraft parameter, such as an angle of attack, a pitch rate, a first flex mode position, a second flex mode position, a first flex mode velocity, a second flex mode velocity, etc. A state of the aircraft parameter may include a value based on a measurement from a sensor, a matrix of one or more values based on one or more measurements from one or more sensors, etc. For example, a state associated with an aircraft may be measured based on one or more sensors, such as one or more acceleration sensors (e.g., an accelerometer), one or more angle of attack sensors, one or more angular rate sensors (e.g., a gyro sensor), etc., and/or a combination thereof.
In some examples, the vehicle control systems that generate commands based on known states of vehicle parameters may utilize state-space representations to develop mathematical models of a physical system (e.g., an actuator, a vehicle, etc.). The state-space representation may include a set of input, output, and state variables related by first-order ordinary differential equations. For example, a representation of a continuous time-variant system that includes m inputs, p outputs, and n state variables may be described in accordance with Equation (1) and Equation (2) below:
x_dot(t)=A(t)x(t)+B(t)u(t) Equation (1)
y(t)=C(t)x(t)+D(t)u(t) Equation (2)
In the illustrated example of Equation (1) above, the variable x_dot(t) represents the vehicle state derivative vector, the variable A(t) represents a state matrix or a system matrix, where a dimension of A(t) is denoted by dim[A(t)]=n×n, and the variable x(t) represents a state vector, where x(t) ∈ Rn. The term Rn represents a Euclidean n-dimensional space. In the illustrated example of Equation (1) above, the variable B(t) represents an input matrix where a dimension of B(t) is denoted by dim[B(t)]=n×m, and the variable u(t) represents an input vector or a control vector, where u(t) ∈ Rm. In the illustrated example of Equation (2) above, the variable y(t) represents an output vector, where y(t) ∈ Rn, the variable C(t) represents an output matrix, where a dimension of C(t) is denoted by dim[C(t)]=p×n, and the variable x(t) represents the state vector, where x(t) ∈ Rn. In the illustrated example of Equation (2) above, the variable D(t) represents a control-feedthrough matrix (i.e., a feedforward matrix) where a dimension of D(t) is denoted by dim[D(t)]=p×m, and the variable u(t) represents the input vector or the control vector, where u(t) ∈ Rm.
In some examples, controllability is a property of the vehicle control system. The controllability of a system may denote an ability to move a system around the entire configuration space of the system using only specified admissible manipulations. An example variation of controllability is state controllability. State controllability may be a condition that implies a plausibility to move a state of a parameter and/or a state of a system from any initial value to any final value within a finite time window. For example, a continuous time-invariant linear state-space model may be controllable if and only if rank [B AB A2B . . . An−1B]=n, where rank is a number of linearly independent rows in a matrix, the variable n is a number of state variables, the variable A is the state matrix, and the variable B is the input matrix.
In some examples, observability may be another property of the vehicle control system. For example, the observability of a system may be a measure for how well one or more internal states of a system (e.g., an aircraft, a flight control surface of the aircraft, etc.) can be inferred by knowing one or more external outputs of the system. In some such examples, the controllability and the observability of the system are mathematical duals. For example, the controllability of the system may denote that an input can bring any initial state to any final state, whereas the observability may denote that knowing an output of the system provides sufficient information to predict an initial state of the system.
In some examples, the state of the vehicle is unknown. An unknown state of the vehicle may present additional challenges to some such vehicle control systems such as generating the control command based on an estimation of the state of the vehicle. The estimation of the state of the vehicle may require additional hardware resources (e.g., compute (e.g., one or more processors), memory (e.g., one or more memory devices), and/or storage (e.g., one more storage discs or storage devices) hardware resources) to perform complex algorithmic calculations based on advanced control theory techniques. For example, to compensate for the unknown state (e.g., no a priori information regarding the state is known), a controller may implement state observers. In some examples, the controller may also use adaptive control to generate one or more control laws to compensate for unknown parameters.
In some examples, the vehicle control system may utilize a state observer to determine an estimate of an unknown state of the vehicle and/or an unknown state of a parameter of the vehicle. The state observer may calculate the estimate of the unknown state based on a measurement from a suite of sensors. The state observer may obtain measurements related to an input and an output of the vehicle. For example, the state observer may obtain an initial command for an input to an aircraft control system (e.g., a guidance command). In such examples, the state observer may obtain an output measurement from the vehicle sensors (e.g., the accelerometers, the rate gyros, etc.). For example, a representation of an observer model for a continuous-time-variant linear system for the vehicle that includes m inputs, p outputs, and n state variables may be described in accordance with the examples of Equation (3) and Equation (4) below:
{dot over ({circumflex over (x)})}(t)=A(t){circumflex over (x)}(t)+B(t)u(t)+L(y(t)−ŷ(t)) Equation (3)
ŷ(t)=C(t){circumflex over (x)}(t)+D(t)u(t) Equation (4)
In the illustrated example of Equation (3) above, the variable {dot over ({circumflex over (x)})}(t) represents an estimate of the observer state derivative vector, the variable A(t) represents a state matrix or a system matrix, where a dimension of A(t) is denoted by dim[A(t)]=n×n, and the variable {circumflex over (x)}(t) represents an estimate of a state vector, where {circumflex over (x)}(t) ∈ Rn. The term Rn represents a Euclidean n-dimensional space. In the illustrated example of Equation (3) above, the variable B(t) represents an input matrix, where a dimension of B(t) is denoted by dim[B(t)]=n×m, and the variable u(t) represents an input vector or a control vector, where u(t) ∈ Rm. In the illustrated example of Equation (3) above, the variable L represents an observer error feedback gain, the variable y(t) represents the measurement or output vector, where y(t) ∈ Rp, and the variable ŷ(t) represents an estimate of an output vector. The variable L may be represented and parameterized as Lv, where v represents a small positive constant, which in turn represents the observer model design parameter and/or the observer model tuning parameter (e.g., the parameter that may be adjusted to affect a behavior of the system).
In the illustrated example of Equation (4) above, the variable ŷ(t) represents the estimate of the output vector, the variable C(t) represents an output matrix, where a dimension of C(t) is denoted by dim[C(t)]=p×n, and the variable {circumflex over (x)}(t) represents the estimate of the state vector, where {circumflex over (x)}(t) ∈ Rn. In the illustrated example of Equation (4) above, the variable D(t) represents a feedthrough matrix (i.e., a feedforward matrix) where a dimension of D(t) is denoted by dim[D(t)]=p×m, and the variable u(t) represents the control vector or the input vector, where u(t) ∈ Rm. In some examples, the estimate of the state vector from Equation (3) is used to form the control feedback input u(t) applied to a plant (e.g., a mathematical representation of a physical system, longitudinal dynamics of an aircraft, etc.) through a gains matrix K as described in accordance with Equation (5) below:
u(t)=−K{circumflex over (x)}(t) Equation (5)
Inserting Equation (5) above into Equation (3) and Equation (4) above may result in an example observer model described in accordance with Equation (6) and Equation (7) below:
{dot over ({circumflex over (x)})}(t)=(A(t)−B(t)K){circumflex over (x)}(t)+L(y(t)−ŷ(t)) Equation (6)
ŷ(t)=(C(t)−D(t)K){circumflex over (x)}(t) Equation (7)
Due to the separation principle, the variables K and L may be chosen independently without disrupting the overall stability of the observer model. Advantageously, the variables K and L are effectively design variables that may be adjusted to improve performance of the observer model and that of the system.
An example vehicle controller and/or, more generally, an example vehicle control system, is/are disclosed herein for observer-based landing control of a vehicle. In some disclosed examples, the vehicle controller may be used to generate commands to control the vehicle. The example vehicle controller may generate or obtain a first command and modify the first command based on a state of a parameter of a vehicle, and/or, more generally, a state of the vehicle. For example, the vehicle controller may determine an adjustment, a modification, etc., to the first command based on a difference between a first vehicle state (e.g., an initial state) and a second vehicle state (e.g., a desired state, a predicted state, etc.). The example vehicle controller may calculate an estimate of a state for a parameter (e.g., a predicted output) in response to the vehicle executing the adjustment to the first command. The example vehicle controller may determine a second command based on the adjustment to the first command. The example vehicle controller may transmit the second command to a servomechanism (e.g., a heterostat, a mechanism to control a behavior of a system by manner of heterostasis, etc.) to execute the second command. The example vehicle controller may obtain a measurement from a sensor to determine a system output of the vehicle. For example, the vehicle controller associated with an aircraft may obtain an angular velocity measurement from a gyro sensor to estimate a state of an angle of attack parameter for the aircraft based on the aircraft or portion thereof executing a command (e.g., an adjusted command).
In some disclosed examples, the vehicle controller calculates a difference between the system output (e.g., the state of the vehicle parameter based on the measurement from the sensor) and the predicted output (e.g., the estimate of the state of the vehicle parameter). For example, the vehicle controller associated with an aircraft may determine a difference (e.g., an estimation error) between an estimate of a state for a vertical acceleration parameter for the aircraft and a measured state for the vertical acceleration parameter for the aircraft. The example vehicle controller may generate a third command based on the measurement from the sensor. The example vehicle controller may determine an adjustment to the third command based on at least one of the third command, the sensor measurement, or the estimation error. The example vehicle controller may determine a fourth command based on the adjustment to the third command. The example vehicle controller may transmit the fourth command to the servomechanism to effectuate the execution of the fourth command.
In some disclosed examples, the vehicle controller calculates an unknown state of a vehicle parameter and/or an unknown state of the vehicle based on a measurement from a sensor. For example, an aircraft may utilize one or more accelerometers to measure an acceleration of the aircraft and/or one or more angular rate sensors (e.g., gyro sensors) to measure angular velocity. The example vehicle controller may utilize measurements from one(s) of the accelerometers and/or one(s) of the gyro sensors to calculate a state of a parameter such as an angle of attack parameter, a pitch angle parameter, a pitch rate parameter, a sideslip parameter, etc. For example, an aircraft control system including the vehicle controller may estimate a value for the state of the angle of attack parameter for the aircraft based on the measurement(s) from the one(s) of the accelerometers, the one(s) of the gyro sensors, etc., as opposed to determining the value for the state of the angle of attack parameter for the aircraft based on a measurement from an angle of attack sensor. Alternatively, measurement(s) from sensor(s) of the aircraft may be used to determine any other parameter such as an airspeed parameter, an altitude parameter, a thrust parameter, etc.
In some disclosed examples, the vehicle controller identifies a phase of a flight plan, a flight route, etc., in which an aircraft is operating. For example, the flight plan may include one or more phases, regimes, segments, stages, etc., such as a parked flight stage, a taxi flight stage, a takeoff and departure flight stage, a climb flight stage, a cruise flight stage, a descent flight stage, an approach flight stage, a touchdown and roll-out flight stage, etc. In some disclosed examples, the approach flight segment or phase is referred to as a landing flare or round out. For example, the landing flare may be a maneuver that follows the approach (e.g., the final approach) stage and precedes the touchdown and roll-out stage of the landing. For example, during the flare regime, the nose of the aircraft may be raised to slow the descent rate and therefore create a softer touchdown. For example, during the flare regime, the aircraft may be controlled with a simultaneous increase in aircraft pitch attitude and a reduction in engine power (or thrust), the combination of which resulting in a decrease in both rate of descent and airspeed.
In some disclosed examples, the vehicle controller may enable observer-based control of an aircraft in response to determining that the aircraft has entered and/or otherwise transitioned into a flare regime of a flight plan. For example, the vehicle controller may effectuate automatic landing of the aircraft using one or more observer models as described herein. Advantageously, as described herein, the example vehicle controller may invoke and/or otherwise utilize the one or more observer models to enforce desired or intended levels of closed-loop stability, performance, and robustness. For example, the vehicle controller may control a flight control surface of the aircraft, and/or, more generally, the aircraft, by estimating a state of the flight control surface to facilitate control of the aircraft during the flare regime. Advantageously, the example vehicle controller may utilize the one or more observer models to estimate the state based on an attenuation of unknown flexible modes of the aircraft, reject disturbances from gusts, winds, or other weather phenomena, etc.
In some disclosed examples, the vehicle controller may include sub-modules to perform functions related to the control of the vehicle. For example, one or more of the sub-modules may be implemented with hardware, software, and/or firmware. The example sub-modules may be responsible for individual tasks such as obtaining information (e.g., network information, sensor information, etc.), determining a flight regime of a flight plan, generating a guidance command, determining a state of a parameter of the vehicle and/or the state of the vehicle, etc. The example sub-modules may be responsible for determining an estimate of a state of a parameter of the vehicle and/or an estimate of a state of the vehicle based on an execution of a command. In some examples, the sub-modules generate one or more control laws and calculate adjustments to a generated command. In some examples, the sub-modules transmit an adjusted generated command to a servomechanism to execute the adjusted generated command.
In the illustrated example of
In the illustrated example of
The second sensor 140 is included in the second engine 112. In some examples, the second sensor 140 may monitor and/or otherwise collect a measurement associated with the second engine 112. For example, the second sensor 140 may be implemented by an acceleration sensor, an angular rate sensor, a pressure sensor, a speed sensor (e.g., an encoder, a proximity inductive sensor, etc., to measure a rotational speed of a turbine of the second engine 112), a temperature sensor (e.g., a sensor to measure a temperature of an inlet, an outlet, a compressor, etc., of the second engine 112), etc. In some examples, measurement(s) from the second sensor 140 may be used to determine a parameter of the aircraft 100, such as an altitude rate, a pitch rate, a pitch angle, etc., of the aircraft 100.
The third sensor 142 is included in the first horizontal stabilizer 126 to monitor and/or otherwise measure a parameter associated with the first elevator 130. Alternatively, the third sensor 142 may be included in the first elevator 130. The fourth sensor 144 is included in the second horizontal stabilizer 128 to monitor and/or otherwise measure a parameter associated with second elevator 132. Alternatively, the fourth sensor 144 may be included in the second elevator 132. The third sensor 142 and/or the fourth sensor 144 may be implemented with one or more position sensors, one or more skew position sensors, one or more electric power usage sensors (e.g., a voltage sensor, a current sensor, etc.), one or more hydraulic parameter sensors (e.g., a hydraulic flow rate sensor, a hydraulic pressure sensor, etc.), one or more motor speed sensors, etc. For example, the third sensor 142 may be implemented with one or more sensors to monitor and/or otherwise measure parameter(s) associated with a first actuator 148. In some examples, the fourth sensor 144 may be implemented with one or more sensors to monitor and/or otherwise measure parameter(s) associated with a second actuator 150.
In some examples, the first actuator 148 and/or the second actuator 150 is/are implemented with an electromechanical actuator, an electrohydraulic actuator, an electric backup hydraulic actuator, a hydraulic actuator, etc. For example, the first actuator 148 may be operatively coupled to the first elevator 130 to move the first elevator 130 from a stowed position to a deployed position, or any intermediate position between the stowed position and the deployed position. In some examples, the second actuator 150 is operatively coupled to the second elevator 132 to move the second elevator 132 from a stowed position to a deployed position, or any intermediate position between the stowed position and the deployed position.
In some examples, the actuators 148, 150 are motors (e.g., an electric motor, a hydraulic motor, etc.). In some examples, the actuators 148, 150 are operatively coupled to respective motors included in the horizontal stabilizers 126, 128 or the elevators 130, 132. For example, the actuators 148, 150 may be implemented with one or more linear actuators (e.g., hydraulic or electric linear actuators), rotary actuators (e.g., hydraulic or electric rotary actuators), etc. In some examples, the first actuator 148, when invoked and/or otherwise instructed, may control a motor associated with the first elevator 130 to cause the first elevator 130 to change or adjust positions. In some examples, the second actuator 150, when invoked and/or otherwise instructed, may control a motor associated with the second elevator 132 to cause the second elevator 132 to change or adjust positions.
In some examples, the third sensor 142 may be implemented with a position sensor, a position skew sensor, etc., to measure a position of the first actuator 148 to determine a position of the first elevator 130. In some examples, the third sensor 142 may be implemented with a voltage or current sensor to determine a power consumption associated with the first actuator 148. In some examples, the third sensor 142 may be implemented with a hydraulic parameter sensor to measure a hydraulic parameter (e.g., a flow rate, a hydraulic fluid temperature, etc.) of the first actuator 148 in an example where the first actuator 148 is hydraulically powered or actuated. In some examples, the third sensor 142 may be implemented with a speed sensor (e.g., an actuator speed sensor, a motor speed sensor, etc.) to determine a speed at which the first actuator 148 is moving, a speed at which a motor operatively coupled to the first actuator 148 is rotating and/or otherwise moving, etc.
In some examples, the fourth sensor 144 may be implemented with a position sensor, a position skew sensor, etc., to measure a position of the second actuator 150 to determine a position of the second elevator 132. In some examples, the fourth sensor 144 may be implemented with a voltage or current sensor to determine a power consumption associated with the second actuator 150. In some examples, the fourth sensor 144 may be implemented with a hydraulic parameter sensor to measure a hydraulic parameter (e.g., a flow rate, a hydraulic fluid temperature, etc.) of the second actuator 150 in an example where the second actuator 150 is hydraulically powered or actuated. In some examples, the fourth sensor 144 may be implemented with a speed sensor (e.g., an actuator speed sensor, a motor speed sensor, etc.) to determine a speed at which the second actuator 150 is moving, a speed at which a motor operatively coupled to the second actuator 150 is rotating and/or otherwise moving, etc. In some examples, measurement(s) from the third sensor 142 and/or the fourth sensor 144 may be used to determine a parameter of the aircraft 100, such as an altitude rate, a pitch rate, a pitch angle, etc., of the aircraft 100. For example, a position of the first actuator 148, the first elevator 130, etc., may be used to determine the altitude rate, the pitch rate, the pitch angle, etc., of the aircraft 100.
In the illustrated example of
In the illustrated example of
In some examples, the first vehicle controller 102 may determine a second state (e.g., an estimate of a state) of the one or more control surfaces of the aircraft 100 based on the aircraft 100 executing a command (e.g., a landing command, a flare operation command, etc.). For example, the first vehicle controller 102 may determine the second state (e.g., the estimate of the state) of the one(s) of the elevators 130, 132 based on the one(s) of the elevators 130, 132 executing the command. In some examples, the second state may be an estimate of an altitude rate, a pitch rate, a pitch angle, etc., and/or a combination thereof, of the aircraft 100 by utilizing one or more observer-based models. The first vehicle controller 102 may also determine a third state (e.g., an updated estimate of the second state) of the one or more control surfaces of the aircraft 100 based on the difference between the first state and the second state. For example, the first vehicle controller 102 may also determine a third state of the elevators 130, 132, and/or, more generally, the aircraft 100, based on the difference between the first state and the second state of the elevators 130, 132. In some examples, the first vehicle controller 102 may determine and/or generate a control input (e.g., a control input based on a baseline control input and/or an adaptive control input), which may implement a command to control the one or more control surfaces of the aircraft 100, such as the elevators 130, 132. For example, the first vehicle controller 102 may determine and/or generate the command to control the elevators 130, 132 (e.g., a control a position of the elevators 130, 132) based on the difference between the first state and the second state. In response to the generation of the command, the aircraft 100 may execute the command. For example, the elevators 130, 132 may move from a first position to a second position in response to the elevators 130, 132 executing the command.
In the illustrated example of
In the illustrated example of
In the illustrated example of
In some examples, the command input module 310 generates the command based on information obtained from the datastore 380. For example, the command input module 310 may generate the command based on a look-up table that includes commands based on the measurement from the sensor(s) 350. For example, the command input module 310 may determine the measurement from the sensor(s) 350 and query the look-up table in the datastore 380 for the command corresponding to the measurement from the sensor(s) 350.
In some examples, the command input module 310 determines a difference between a command (e.g., a guidance command) and a measurement from the sensor(s) 350. For example, the command input module 310 may determine a first value (e.g., an initial command, an initial state of a parameter, an initial state of the vehicle, etc.). For example, the first value may be a guidance command r. The command input module 310 may determine a second value (e.g., a value obtained from the datastore 380). For example, the second value may be a measurement y or ymeas from the datastore 380. The command input module 310 may determine a difference between the first value and the second value. For example, the command input module 310 may determine a difference between the command and the measurement to determine an error value of −e (e.g., r−y=−e). In some examples, the command input module 310 transmits the error value to the baseline control module 330.
In the illustrated example of
In some examples, the observer module 320 determines a state of a vehicle parameter based on a measurement from the sensor(s) 350. For example, the observer module 320 may determine a state of an angle of attack parameter of the aircraft 100 based on a measurement from an angle of attack sensor (e.g., from one(s) of the sensors 138, 140, 142, 144 of
In some examples, the observer module 320 determines an estimate for a state of a parameter of the vehicle based on the vehicle executing a command. For example, the observer module 320 may determine the state of a vehicle parameter before executing the command and calculate an estimate of the state of the vehicle parameter in response to executing the command. For example, the observer module 320 may determine a first value (e.g., an initial value) of a state of an angle of attack parameter of the aircraft 100. The observer module 320 may calculate a second value (e.g., an estimate value) of the state of the angle of attack parameter of the aircraft 100 based on the aircraft 100 executing the command. The observer module 320 may calculate a first difference between the first value and the second value.
In some examples, the observer module 320 determines an estimate for a state of a parameter of the vehicle based on the vehicle executing a command during the flare regime 220 of
In some examples, the observer module 320 compares the first difference to an error estimation value calculated external to the observer module 320 to improve the observer module 320 state estimating functions. For example, the error estimation value may be calculated by the error module 390. In some examples, the error estimation value may be calculated based on a second difference between (1) the value of the state of the parameter based on the measurement from the sensor(s) 350 and (2) the estimate value of the parameter calculated by the observer module 320. For example, the parameter may be a pitch rate of the aircraft 100, the value of the state of the parameter may be 5 degrees, and the estimate value of the parameter may be 3 degrees.
In some examples, the observer module 320 transmits the estimate value of the state of the parameter to the error module 390. In some examples, the observer module 320 determines whether the first difference and/or the second difference satisfies a threshold. For example, the observer module 320 may determine that the first difference (e.g., 2 degrees) does not satisfy a threshold (e.g., 1 degree, 0.5 degrees, etc.). In some examples, the observer module 320 may determine that the first difference does not satisfy the threshold because the first difference is less than the threshold. In some examples, the observer module 320 may determine that the first difference satisfies the threshold because the first difference is greater than the threshold. In some examples, the observer module 320 may determine that the second difference (e.g., 3 degrees) satisfies the threshold because the second difference is greater than the threshold. In some examples, the observer module 320 may determine that the second difference does not satisfy the threshold because the second difference is less than the threshold.
In some examples, the observer module 320 determines an estimate of a state of a parameter of a vehicle, and/or, more generally, a state of the vehicle based on an obtained command. For example, the observer module 320 may determine an estimate of a state of a sideslip parameter of the aircraft 100 based on a command obtained from the command input module 310. The observer module 320 may determine the estimate of the state based on the command obtained from the command input module 310, the measurement from the sensor(s) 350, the error estimation obtained by the observer module 320, etc. For example, the observer module 320 may determine a first value (e.g., an initial value) for a state of a parameter of the aircraft 100. The observer module 320 may additionally determine a second value (e.g., an estimate value) for the state of the parameter based on the aircraft 100 executing the command obtained from the command input module 310. The observer module 320 may also determine a third value (e.g., an updated estimate of the state of the vehicle parameter) based on the difference between the first value and the second value. In some examples, the observer module 320 determines the third value in response to at least one of the first difference or the second difference as described above satisfying one or more thresholds. In some examples, the observer module 320 transmits the third value (e.g., the updated estimate of the state of the parameter) to the baseline control module 330.
In some examples, the observer module 320 performs a squaring-up modification to an input matrix and/or an output matrix of the one or more observer models utilized and/or otherwise implemented by the observer module 320. In some examples, the observer module 320 adds a pseudo-output matrix to the output matrix of the one or more observer models. In some examples, the observer module 320 adds a pseudo-input matrix to the input matrix of the one or more observer models. For example, the observer module 320 may add the pseudo-input matrix, which may include fictitious inputs (e.g., inputs that do not represent physical inputs to the vehicle), to the input matrix of the one or more observer models to make a number of inputs (e.g., controls) in the input matrix equal a number of outputs (e.g., measurements) in the output matrix. In some examples, the observer module 320 makes the one or more observer models used by the observer module 320 minimum phase (e.g., the vehicle transmission zeros are located in C−) by performing the squaring-up modification(s). During the squaring-up modification(s), the observer module 320 may place one or more zeros (e.g., transmission zeros) in a desired location utilizing a linear quadratic regulator (LQR) and/or a pole-placement algorithm or technique. The observer module 320 may perform the squaring-up modification(s) to satisfy one or more sufficient conditions. A first sufficient condition may be a relationship of p=m, where p represents a number of outputs and m represents a number of inputs. For example, the first sufficient condition may represent square dynamics of the one or more observer models used by the observer module 320. A second sufficient condition may be a relationship of det (CB)≠ 0, where a determinant of an output matrix C and an input matrix B does not equal zero. For example, the second sufficient condition may represent a relative degree of one. A third sufficient condition may be a relationship of det
where s ∈ C−. For example, the third sufficient condition may include a determinant of a matrix including the input matrix B, the output matrix C, and a transfer function sI−A, where the determinant of the matrix equals zero, and where all zeros (e.g., transmission zeros) are in the open left half of the complex plane of the output matrix C (excluding the jw-axis). For example, the third sufficient condition may represent and/or otherwise indicate that the observer module 320 uses the one or more observer models that include one or more transmission zeros that are stable. In some examples, the third sufficient condition may represent that the observer module 320 uses the one or more observer models representing a system that is minimum phase.
In some examples, the observer module 320 performs the squaring-up modification(s) by converting a tall system to a square system. For example, a tall, controllable, observable, and minimum-phase system with full rank Cmeas*B may be squared-up to satisfy the first, second, and third example sufficient conditions as described above, where the variable Cmeas represents the output matrix
An example tall system is described in Equation (8) below:
In the illustrated example of Equation (8) above, variables A and B represent m-Inputs, variables Cmeas and 0p×m represent p-Outputs, and the variable n represents the number of states. The observer module 320 may convert the example tall system described above in Equation (8) into an example square system as described in Equation (9) below:
In the illustrated example of Equation (9) above, the variables A and (B, B2) represent p-Inputs, the variables Cmeas and 0p×p represent p-Outputs, and the variable n represents the number of states. As described in Equation (9) above, the observer module 320 may add one or more fictitious inputs to the input matrix of B to yield a second input matrix (B, B2), where B2 is a pseudo-input matrix. The observer module 320 may replace the input matrix of B with the second input matrix (B, B2) in the first, second, and third example sufficient conditions as described above. The observer module 320 may satisfy the first, second, and third example sufficient conditions due to the following revised relationships
where the revised relationships are determined by at least Equation (9) above. For example, the revised relationships may represent that the pseudo-input matrix B2 generated during the squaring-up modification(s) satisfy the first, second, and third example sufficient conditions as described above. As a result, the observer module 320 may utilize the input matrix
In some examples, the observer module 320 determines one or more symmetric, positive, definite, and parameter-dependent weight matrices for the one or more observer models. For example, the observer module 320 may assign Q0 ∈ Rn×n and R0 ∈ Rm×m to be symmetric and positive definite, where Rn×n denotes the space of all n×n matrices, and where Rm×m denotes the space of all m×m matrices. The observer module 320 may determine one or more constants within Rn×n and/or Rm×m. For example, the observer module 320 may determine a value for constants v and/or η, where v>0 and η>0. The observer module 320 may determine two symmetric, positive, definite, and parameter-dependent weight matrices as described in Equation (10) and Equation (11) below:
The observer module 320 may use at least one of the constants v and/or η, Equation (10) above, or Equation (11) above to evaluate a parameter-dependent Algebraic Riccati Equation (ARE) as described in Equation (12) below:
Pv(A+ηIn×n)T+(A+ηIn×n)Pv−PvCmeasTRv−1CmeasPv+Qv=0 Equation (12)
In the illustrated example of Equation (12) above, the variable Pv represents the unique, symmetric, positive, and definite solution for any positive value of the constants v and η. In the illustrated example of Equation (12) above, the variable A represents the observer matrix included in the one or more observer models utilized by the observer module 320, and the variable In×n represents an identity matrix of size n×n. In some examples, the observer module 320 evaluates the asymptotic behavior of Pv as v→0 while holding η fixed. For example, the observer module 320 may use the asymptotic expansion as described below in Equation (13) to determine one or more asymptotic relations as described in Equation (14), Equation (15), and Equation (16) as described below where the variable O represents Bachmann-Landau asymptotic order notation:
In some examples, the observer module 320 evaluates the asymptotic expansion described above in Equation (13) to determine the asymptotic relations as described above in Equation (14), Equation (15), and Equation (16) as v→0, with a constant, symmetric, positive, and definite matrix P0. In some examples, the observer module 320 evaluates Equation (16) above by applying a relationship of W=(UV)T, where the two unitary matrices, U and V, are defined by the singular value decomposition as described in Equation (17) below:
In the illustrated example of Equation (17) above, the notation represents the diagonal matrix of the corresponding singular values. In some examples, Equation (16) above and Equation (17) above guarantee strict positive definiteness of Pv and Pv−1 uniformly in v. The observer module 320 may utilize one or more of the above-described equations to determine the observer gain Lv as described in Equation (18) below:
Lv=PvCmeasTRv−1 Equation (18)
In the illustrated example of Equation (18) above, the variable Pv represents the unique solution described above in Equation (12), where Pv=PvT>0. The observer module 320 may utilize the relationship described above in Equation (18) to determine the closed-loop observer dynamics of the observer model of a system (e.g., a vehicle, the aircraft 100, etc.) as described in Equation (19) and Equation (20) below:
{dot over ({circumflex over (x)})}=A{circumflex over (x)}+Bubl+Bcmdycmd+Lv(ymeas−ŷmeas) Equation (19)
ŷmeas=Cmeas{circumflex over (x)} Equation (20)
In the illustrated example of Equation (19) above, the variable {dot over ({circumflex over (x)})} represents an estimate of an observer state derivative vector, the variable A represents a state matrix, and the variable {circumflex over (x)} represents an estimate of a state vector. Further, in the illustrated example of Equation (19) above, the variable B represents an input matrix, the variable Bcmd represents an input command matrix, and the variable ycmd represents an output command vector. In the illustrated example of Equation (19) above, the variable Lv represents the observer gain, the variable ymeas represents a measured output vector (e.g., a measurement from a sensor), and the variable ŷmeas represents an estimate of a measured output vector. Additionally, in the illustrated example of Equation (19) above, the variable ubl represents a baseline control input or a baseline control command (e.g., a value generated by the baseline control module 330), where ubl may be described in accordance with Equation (21) below:
ubl=−Klqr{circumflex over (x)} Equation (21)
In the illustrated example of Equation (21) above, the variable Klqr represents a constant Linear Quadratic Regulator (LQR) baseline control gain, where Klqr ∈ Rn×m. In Equation (20) above, the variable Cmeas represents a measured output matrix. Further, in Equation (20) above, the measured output vector ŷmeas tracks the bounded command ycmd described above in Equation (19) with uniformly bounded errors.
The observer module 320 may determine the variable Klqr such that an observer state matrix Aobs described below in Equation (22) becomes Hurwitz (e.g., every eigenvalue of Aobs has a strictly negative real part) and has one or more desired modal characteristics:
Aobs=A−BKlqr−LvCmeas Equation (22)
The observer module 320 may apply Equation (22) above to Equation (20) above to yield Equation (23) as described below:
{dot over ({circumflex over (x)})}=Aobs{circumflex over (x)}+Bcmdycmd+Lvymeas Equation (23)
In some examples, the observer module 320 determines and/or otherwise evaluates the relationship as described above in Equation (23) to recover LQR full state baseline feedback stability margins at the input to the vehicle plant. In some instances, the observer module 320 determines a value of the constant v to be sufficiently small to recover the LQR stability margins at the input to the one or more observer models and/or the vehicle plant.
In the illustrated example of
In some examples, the baseline control module 330 includes integral error control mechanisms such as, for example, an integral controller transfer function representative of a servomechanism. The baseline control module 330 may obtain a guidance command r and/or an error value −e from the command input module 310. The baseline control module 330 may utilize an integral controller transfer function
or a logic circuit to implement the integral controller transfer function
to generate a baseline command utilized to generate the control input u. For example, the baseline control module 330 may apply the integral controller transfer function to the obtained guidance command (or pass through the obtained guidance command through a logic circuit that implements the integral controller transfer function) to generate and/or otherwise output the baseline command. In some examples, the baseline control module 330 determines a difference between the baseline state of a parameter (e.g., the baseline command) and an estimate of a state of the parameter obtained from the observer module 320 (e.g., a state feedback stability value Kx, where x represents the state and/or the estimate of the state) to determine the control input u. The baseline control module 330 may determine the control input u as described in Equation (24) below:
u=−Klqr{circumflex over (x)} Equation (24)
In the illustrated example of Equation (24) above, the variable Kw, represents the constant LQR baseline control gain, where Klqr ∈ Rn×m, and the variable {circumflex over (x)} represents the estimate of the state vector. The baseline control module 330 may further expand the relationship as described above in Equation (24) by replacing the variable {circumflex over (x)} in Equation (25) below:
u=−Klqr(sIn×n−Aobs)−1(Bcmdycmd+Lvymeas) Equation (25)
In the illustrated example of Equation (25) above, the term (sIn×n−Aobs)−1 represents the transfer function of the one or more observer models utilized by the observer module 320. The baseline control module 330 may determine the control input u based on Equation (25) above.
In the illustrated example of
In some examples, the plant corresponds to and/or otherwise represents plant dynamics. For example, the plant may correspond to aircraft longitudinal dynamics of the aircraft 100. In such examples, the aircraft longitudinal dynamics may be implemented with one or more longitudinal flight equations of motion. For example, the aircraft longitudinal dynamics may correspond to a first velocity of the aircraft 100 along a body axis of the aircraft 100, a second velocity of the aircraft 100 perpendicular to the body axis of the aircraft 100, an angle (e.g., a body angle) between the body axis and the horizontal axis of the aircraft 100, an angular velocity of the aircraft 100, etc., and/or a combination thereof.
In some examples, the vehicle module 340 may invoke the plant to determine an elevator angle associated with one(s) of the elevators 130, 132 of
In some examples, the vehicle module 340 includes one or more state-space relationships. The vehicle module 340 may obtain the control input (e.g., the control input u) from the baseline control module 330. The vehicle module 340 may achieve bounded command tracking in the vehicle. For example, the vehicle module 340 may evaluate the one or more state-space relationships using the control input u to determine a regulated output yreg to follow the external bounded time-varying command ycmd. The vehicle module 340 may be represented by and/or otherwise implement the state-space relationships as described below in Equation (26), Equation (27), and Equation (28):
{dot over (x)}=Ax+BΛ(u+ΘOTΦ(x))+Brefycmd Equation (26)
y=Cx Equation (27)
yreg=Cregx Equation (28)
For example, the vehicle module 340 may include one or more logic circuits that implement the state-space relationships as described above in Equation (26), Equation (27), and/or Equation (28). In the illustrated example of Equation (26) above, the state matrix A, the input matrix B, and the reference input matrix Bref, are known matrices, where A ∈ Rn×n, (B,Bref) ∈ Rn×m. In some examples, (A, B) is controllable and rank B=m (i.e., B has full column rank). In some instances, (A, C) is observable and rank C=p (i.e., C has full row rank). In some examples, the number of outputs (e.g., measured outputs) is greater than the number of inputs (e.g., control inputs) (i.e., p>m) where rank (CB)=m. In the illustrated example of Equation (26) above, the system state is x ∈ Rn, and the control input is u ∈ Rm. Further, in the illustrated example of Equation (26) above, the variable Λ is a constant unknown non-singular positive diagonal matrix representing the system uncertainties where Λ ∈ Rm×m. Additionally, in the illustrated example of Equation (26) above, the variable Θ is a constant unknown matrix where Θ ∈ Rn×m, and the variable Φ represents a known regressor vector where Φ ∈ Rn. In some examples, the regressor is globally Lipschitz continuous in x, where there exists a finite positive known constant 0<LΦ<∞, such that the relationship described below in Equation (29) holds true for any x1, x2 ∈ Rn:
∥Φ(x1)−Φ(x2)∥≤LΦ∥x1−x2∥ Equation (29)
In the illustrated examples of Equation (27) above and Equation (28) above, the output matrix C and the regulated output matrix Creg are known matrices, where C ∈ Rp×n and Creg ∈ Rm×n. In the illustrated examples of Equation (27) above and Equation (28) above, the system measurements are grouped into y ∈ Rp, the regulated output is yreg ∈ Rm, and ycmd ∈ Rm denotes the external bounded time-varying command for yreg to track. In the illustrated example of Equation (28) above, the regulated output dynamics (e.g., the regulated outputs yreg) may be non-minimum phase and have a vector relative degree greater than unity.
In the illustrated example of
In the illustrated example of
In the illustrated example of
In some examples, the collection module 370 selects obtained sensor measurements of interest to be used by one or more algorithms, processes, programs, techniques, etc. deployed by the second vehicle controller 300. For example, the collection module 370 may process a value from a sensor measurement by converting (e.g., converting using a conversion calculation, converting to different units of measure, etc.), scaling (e.g., scaling using a scaling factor), and/or translating (e.g., translating using a pre-determined curve, translating using a pre-determined equation) the value from the sensor measurement for use by the observer module 320 and, more generally, the second vehicle controller 300. In some examples, the collection module 370 selects the sensor measurement by querying the datastore 380. In response to the datastore 380 receiving the query sent from the collection module 370, the datastore 380 transmits the sensor measurement to the collection module 370. In some examples, the collection module 370 obtains a query from the observer module 320 and/or the error module 390 for a sensor measurement of interest. In response to the collection module 370 receiving the query, the collection module 370 may transmit the sensor measurement of interest to the observer module 320 and/or the error module 390.
In the illustrated example of
In some examples, the datastore 380 may be implemented by a volatile memory (e.g., a Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAIVIBUS Dynamic Random Access Memory (RDRAM), etc.) and/or a non-volatile memory (e.g., flash memory). The datastore 380 may additionally or alternatively be implemented by one or more double data rate (DDR) memories, such as DDR, DDR2, DDR3, mobile DDR (mDDR), etc. The datastore 380 may additionally or alternatively be implemented by one or more mass storage devices such as hard disk drive(s) (HDD(s)), compact disk (CD) drive(s), digital versatile disk (DVD) drive(s), magnetic media, etc. While in the example the datastore 380 is illustrated as a single datastore, the datastore 380 may be implemented by any number and/or type(s) of datastores.
In the illustrated example of
In the illustrated example of
In the illustrated example of
The variable yreg represents a regulated output of the baseline control module 420 based on the control input u generated by the observer module 410.
In the illustrated example of
In the illustrated example of block 440, the measured output ymeas is based on the output observation error eyI and the measured plant output yp meas. The output observation error eyI may be based on the identity matrix Im×m, where the identity matrix is size m×m. The measured output ymeas may be based on the plant measured matrix Cp meas. The matrix Cmeas may represent a measured output matrix and may be based on the identity matrix Im×m and the plant measured matrix Cp meas. In the illustrated example of block 440, the variable x represents a state vector of the vehicle based on the output observation error eyI and the state vector of the vehicle plant xp (e.g., the state vector of the vehicle). As represented in block 440, the measured output ymeas is based on the measured output matrix Cmeas and the state vector x.
In the illustrated example of block 430, the variables A, B, and Bcmd represent the state matrix of the vehicle, the input matrix of the vehicle, and the gain command matrix of the vehicle, respectively. The variables A, B, and Bcmd are represented by the equations described in block 450. In this example, the state matrix A is based on the variables 0m×m, 0n
In the illustrated example of
In the illustrated example of
In the illustrated example of
In the illustrated example of
In some examples, the altitude control input δe implements a control surface command for a control surface of the aircraft 100. For example, the observer module 510, and/or, more generally, the fourth vehicle controller 500, may generate the altitude control input δe to control one(s) of the elevators 130, 132 of
In the illustrated example of
In some examples, the LQR constant gain 516 is determined based on value(s) of parameter(s) of the aircraft 100. For example, the observer module 510 may map one or more values of parameters to the LQR constant gain 516 in a look-up table. In some examples, the observer module 510 may map at least one of a value of a speed parameter (e.g., an airspeed parameter) of the aircraft 100, a value of an altitude of the aircraft 100, or a value of a configuration (e.g., a length, a width, a weight, etc.) of the aircraft 100 to a look-up table to identify the LQR constant gain 516. In some examples, the look-up table is stored in the datastore 380 of
In some examples, Aobs is defined as a matrix (e.g., a 5×5 matrix or a matrix of any other size). In some such examples, the observer module 510 identifies values of the matrix based on flight conditions of the aircraft 100, such as value(s) of parameters of the aircraft 100. For example, the observer module 510 may map at least one of a value of a speed parameter (e.g., an airspeed parameter) of the aircraft 100, a value of an altitude of the aircraft 100, or a value of a configuration (e.g., a length, a width, a weight, etc.) of the aircraft 100 to one or more look-up tables (e.g., one or more look-up tables stored in the datastore 380 of
In this example, the variable ehI represents an output observation error based on a difference of the variables h and kcmd applied to an integrator transfer function 1/s 622. In this example, the difference is determined by subtraction logic 524. In the illustrated example, the variable êhI represents an estimate of the output observation error ehI and the variables ({circumflex over ({dot over (h)})}, {circumflex over (q)}, {circumflex over (θ)}) represent estimates of parameters of aircraft altitude rate {circumflex over ({dot over (h)})}, pitch rate {circumflex over (q)}, and pitch angle {circumflex over (θ)}, respectively. For example, the observer module 510 may implement a filter of sensed or measured values of the aircraft altitude rate {dot over (h)}, pitch rate q, and pitch angle θ parameters to yield and/or otherwise determine the estimates of the parameters ({circumflex over ({dot over (h)})}, {circumflex over (q)}, {circumflex over (θ)}).
In the illustrated example of
In some examples, the aircraft altitude rate {dot over (h)}, the pitch rate q, and the pitch angle θ may be determined based on measurement(s) from sensor(s), such as one(s) of the sensors 138, 140, 142, 144 of
In some examples, the baseline control module 530 may invoke the plant dynamics to determine aircraft altitude rate {dot over (h)} based on the elevator angle and/or the thrust. In some examples, the baseline control module 530 may invoke the plant dynamics to determine the pitch rate q based on the elevator angle and/or the thrust. In some examples, the baseline control module 530 may invoke the plant dynamics to determine the pitch angle θ based on the elevator angle.
In example operation, the fourth vehicle controller 500 may perform observer-based landing control of the aircraft 100. For example, the observer module 510 may execute the transfer function 514 to determine first states, such as estimates of the output observation error êhI, the aircraft altitude rate {circumflex over ({dot over (h)})}, the pitch rate {circumflex over (q)}, the pitch angle {circumflex over (θ)}, and the altitude ĥ. In example operation, the observer module 510 applies the LQR constant gain 516 to the first states to determine the altitude control input δe.
In example operation, the baseline control module 530 may execute the aircraft plant 532 to determine second states, such as measured, sensed, and/or otherwise known values of the aircraft altitude rate {dot over (h)}, the pitch rate q, the pitch angle θ, and the altitude h. For example, the baseline control module 530 may determine the second states of the aircraft 100 based on the aircraft 100 executing the altitude control input δe. For example, the fourth vehicle controller 500 may determine the second states based on the elevators 130, 132 of
In example operation, the observer module 510 may transpose the measured aircraft altitude rate {dot over (h)}, pitch rate q, pitch angle θ, and altitude h along with the output observation error ehI. The observer module 510 may apply the observer error feedback gain 518 to the transposed one(s) of the measured aircraft altitude rate {dot over (h)}, pitch rate q, pitch angle θ, altitude h, and output observation error ehI. The adder logic 520 may add the output(s) of such an operation and the gain command value 512 to determine the input(s) to the transfer function 514.
In example operation, the fourth vehicle controller 500 may determine third states, such as new or updated estimate of the first states, based on the difference between the altitude command hcmd and the altitude command output h. For example, the subtraction logic 524 may determine the difference between the altitude command hcmd and the altitude command output h, which may be used to determine the output observation error ehI. The observer module 510 may use the output observation error ehI to determine the third states, such as new or updated values of the estimates of the output observation error êhI, the aircraft altitude rate {circumflex over ({dot over (h)})}, the pitch rate {circumflex over (q)}, the pitch angle {circumflex over (θ)}, and the altitude ĥ, using the transfer function 514. Advantageously, the observer module 510 may determine and/or generate an updated altitude control input δe to control one or more flight control surfaces of the aircraft 100 during the flare regime 220, such as one(s) of the elevators 130, 132 based on the difference between the first states and the second states.
While an example manner of implementing the first vehicle controller 102 of
Flowcharts representative of example hardware logic, machine readable instructions, hardware implemented state machines, and/or any combination thereof for implementing the first example vehicle controller 102 of
The machine readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packaged format, etc. Machine readable instructions as described herein may be stored as data or a data structure (e.g., portions of instructions, code, representations of code, etc.) that may be utilized to create, manufacture, and/or produce machine executable instructions. For example, the machine readable instructions may be fragmented and stored on one or more storage devices and/or computing devices (e.g., servers) located at the same or different locations of a network or collection of networks (e.g., one or more networks of a vehicle). The machine readable instructions may require one or more of installation, modification, adaptation, updating, combining, supplementing, configuring, decryption, decompression, unpacking, distribution, reassignment, compilation, etc. in order to make them directly readable, interpretable, and/or executable by a computing device and/or other machine. For example, the machine readable instructions may be stored in multiple parts, which are individually compressed, encrypted, and stored on separate computing devices, wherein the parts when decrypted, decompressed, and combined form a set of executable instructions that implement one or more functions that may together form a program such as that described herein.
In another example, the machine readable instructions may be stored in a state in which they may be read by processor circuitry, but require addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., in order to execute the instructions on a particular computing device or other device. In another example, the machine readable instructions may need to be configured (e.g., settings stored, data input, network addresses recorded, etc.) before the machine readable instructions and/or the corresponding program(s) can be executed in whole or in part. Thus, machine readable media, as used herein, may include machine readable instructions and/or program(s) regardless of the particular format or state of the machine readable instructions and/or program(s) when stored or otherwise at rest or in transit.
The machine readable instructions described herein can be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, the machine readable instructions may be represented using any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift, etc.
As mentioned above, the example processes of
“Including” and “comprising” (and all forms and tenses thereof) are used herein to be open ended terms. Thus, whenever a claim employs any form of “include” or “comprise” (e.g., comprises, includes, comprising, including, having, etc.) as a preamble or within a claim recitation of any kind, it is to be understood that additional elements, terms, etc. may be present without falling outside the scope of the corresponding claim or recitation. As used herein, when the phrase “at least” is used as the transition term in, for example, a preamble of a claim, it is open-ended in the same manner as the term “comprising” and “including” are open ended. The term “and/or” when used, for example, in a form such as A, B, and/or C refers to any combination or subset of A, B, C such as (1) A alone, (2) B alone, (3) C alone, (4) A with B, (5) A with C, (6) B with C, and (7) A with B and with C. As used herein in the context of describing structures, components, items, objects and/or things, the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects and/or things, the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities and/or steps, the phrase “at least one of A and B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B. Similarly, as used herein in the context of describing the performance or execution of processes, instructions, actions, activities and/or steps, the phrase “at least one of A or B” is intended to refer to implementations including any of (1) at least one A, (2) at least one B, and (3) at least one A and at least one B.
As used herein, singular references (e.g., “a”, “an”, “first”, “second”, etc.) do not exclude a plurality. The term “a” or “an” entity, as used herein, refers to one or more of that entity. The terms “a” (or “an”), “one or more”, and “at least one” can be used interchangeably herein. Furthermore, although individually listed, a plurality of means, elements or method actions may be implemented by, e.g., a single unit or processor. Additionally, although individual features may be included in different examples or claims, these may possibly be combined, and the inclusion in different examples or claims does not imply that a combination of features is not feasible and/or advantageous.
At block 604, the vehicle controller 102, 300, 400, 500 determines a current state of a vehicle parameter. For example, the observer module 320 (
At block 606, the vehicle controller 102, 300, 400, 500 determines an estimate of a state of the vehicle parameter. For example, the observer module 320, 410, 510 may determine an estimate of the state of the angle of attack parameter of the aircraft 100 based on one or more observer models of the aircraft 100.
At block 608, the vehicle controller 102, 300, 400, 500 generates a baseline command. For example, the baseline control module 330 (
At block 610, the vehicle controller 102, 300, 400, 500 determines the control input. For example, the baseline control module 330, 420, 530 may determine the control input (e.g., the control input u) based on the guidance command (e.g., the guidance command r) and/or the estimate of the state of the angle of attack parameter for the aircraft.
At block 612, the vehicle controller 102, 300, 400, 500 executes a command. For example, the vehicle module 340 (
At block 614, the vehicle controller 102, 300, 400, 500 measures a state of the vehicle parameter. For example, the collection module 370 (
At block 616, the vehicle controller 102, 300, 400, 500 determines a difference between the measured state and the estimate of the state. For example, the error module 390 may determine the difference between (1) the measured state of the angle of attack parameter based on the measurement from the sensor(s) 350 and (2) the estimate of the state of the angle of attack parameter determined by the observer module 320, 410, 510.
At block 618, the vehicle controller 102, 300, 400, 500 determines whether the difference satisfies a threshold. For example, the observer module 320, 410, 510 may determine whether the difference satisfies an estimation error threshold (e.g., a threshold indicating the difference is greater than 5 degrees, the difference is less than 10 radians/second, etc.). In some examples, the observer module 320, 410, 510 may output an updated estimate of the state of the angle of attack parameter based on the difference to improve control of the aircraft 100 based on the updated estimate.
If, at block 618, the vehicle controller 102, 300, 400, 500 determines that the difference does not satisfy the threshold, control returns to block 602 to generate another guidance command, otherwise the example machine readable instructions 600 of
At block 704, the vehicle controller 102, 300, 400, 500 determines whether the regime is the flare regime. For example, the fourth vehicle controller 500 may not control the aircraft 100 in response to determining that the regime of the flight plan 202 is not the flare regime 220. In such examples, a different aircraft control system (e.g., a non-observer model based aircraft control system) of the aircraft 100 may control the aircraft during other regimes of the flight plan 202.
If, at block 704, the vehicle controller 102, 300, 400, 500 determines that the regime is not the flare regime, control proceeds to block 706 to execute non-observer based aircraft control. For example, the aircraft 100 may be controlled by a non-observer model based aircraft control system. In some examples, the aircraft 100 may be controlled by portion(s) of the second vehicle controller 300 (
If, at block 704, the vehicle controller 102, 300, 400, 500 determines that the regime is the flare regime, control proceeds to block 708 to enable observer-based landing control. For example, the fourth vehicle controller 500 may enable at least one of the observer module 510 or the baseline control module 530 to be enabled to land (e.g., automatically land) the aircraft 100 during the flare regime 220 of the flight plan 202. In some examples, the fourth vehicle controller 500 may enable at least one of the observer module 510 or the baseline control module 530 in response to determining the regime to be the flare regime 220, a pilot input or unmanned pilot input, measurement(s) from one(s) of the sensors 138, 140, 142, 144 of
At block 710, the vehicle controller 102, 300, 400, 500 determines an altitude command. For example, the fourth vehicle controller 500 may determine the altitude command hcmd. In some examples, the fourth vehicle controller 500 determines the altitude command hcmd based on a command, instruction, etc., from the command input module 310 (
At block 712, the vehicle controller 102, 300, 400, 500 determines an estimate state of an aircraft parameter, such as an altitude of the aircraft 100, based on a transfer function of an observer model. For example, the observer module 510 (
At block 714, the vehicle controller 102, 300, 400, 500 determines an altitude control input based on the estimate states. For example, the observer module 510 may determine the altitude control input δe based on the LQR constant gain Klqr 516 and the estimates of the aircraft altitude rate, the pitch rate, the pitch angle, and the altitude.
At block 716, the vehicle controller 102, 300, 400, 500 determines an altitude command output based on the altitude control input and an aircraft plant. For example, the baseline control module 530 may determine the altitude command output h by invoking the longitudinal dynamics represented by the aircraft plant 532 based on the altitude control input δe determined by the observer module 510.
At block 718, the vehicle controller 102, 300, 400, 500 control elevator(s) of the aircraft 100 based on the altitude command output. For example, the baseline control module 530 may output the altitude command output h to facilitate control of one(s) of the elevators 130, 132 (
At block 720, the vehicle controller 102, 300, 400, 500 determines measured state(s) of the aircraft parameter(s) in response to the control of the elevator(s). For example, in response to the elevators 130, 132, and/or, more generally, the aircraft 100, operating based on the altitude command output h, the baseline control module 530 may determine {dot over (h)}, q, θ, and h, which are measured states of the aircraft altitude rate {dot over (h)}, the pitch rate q, the pitch angle θ, and the altitude h, respectively. In some examples, the baseline control module 530 may determine such measured states based on measurement(s) from one(s) of the sensors 138, 140, 142, 144 of
At block 722, the vehicle controller 102, 300, 400, 500 determines whether to continue monitoring the aircraft. For example, the observer module 510, and/or, more generally, the fourth vehicle controller 500, may determine to continue controlling the landing of the aircraft 100 because the aircraft 100 is in the flare regime 220 of the flight plan 202. In some examples, the observer module 510, and/or, more generally, the fourth vehicle controller 500 may determine to not continue controlling the landing of the aircraft 100 because the aircraft 100 landed at the touchdown location 214 (
If, at block 722, the vehicle controller 102, 300, 400, 500 determines to continue monitoring the aircraft, control returns to block 702 to determine the regime of the flight plan of the aircraft 100. If, at block 722, the vehicle controller 102, 300, 400, 500 determines not to continue monitoring the aircraft, the example machine readable instructions 700 of
At block 804, the vehicle controller 102, 300, 400, 500 determines inputs to an observer transfer function based on the altitude command and the measured states. For example, the observer module 510 may determine one or more inputs to the transfer function 514 (
At block 806, the vehicle controller 102, 300, 400, 500 determines an observer matrix based on a flight conditions matrix associated with sensor measurement(s). For example, the observer module 510 may determine Aobs based on a matrix including values for one or more flight conditions associated with measurement(s) from one(s) of the sensors 138, 140, 142, 144 of
At block 808, the vehicle controller 102, 300, 400, 500 executes the observer transfer function based on a difference between an identity matrix and the observer matrix to output a state matrix. For example, the observer module 510 may execute the transfer function 514 based on a difference between the term sIn×n, which is based on the identity matrix In×n, and Aobs, to determine the output state matrix including the terms êhI, {circumflex over ({dot over (h)})}, {circumflex over (q)}, {circumflex over (θ)}, and ĥ, which represent estimates of parameters of the aircraft 100.
At block 810, the vehicle controller 102, 300, 400, 500 determine an altitude control input based on the output state matrix. For example, the observer module 510 may determine the altitude control input δe based on the terms êhI, {circumflex over ({dot over (h)})}, {circumflex over (q)}, {circumflex over (θ)}, and ĥ applied respectively to the LQR constant gain Klqr 516.
At block 812, the vehicle controller 102, 300, 400, 500 determines aircraft longitudinal dynamics in response to the altitude control input. For example, the baseline control module 530 may invoke the aircraft plant 532 to determine aircraft longitudinal dynamics of the aircraft 100, which may include a first velocity of the aircraft 100 along a body axis of the aircraft 100, a second velocity of the aircraft 100 perpendicular to the body axis of the aircraft 100, an angle (e.g., a body angle) between the body axis and the horizontal axis of the aircraft 100, an angular velocity of the aircraft 100, etc., and/or a combination thereof.
At block 814, the vehicle controller 102, 300, 400, 500 determines measured aircraft parameters based on the aircraft longitudinal dynamics. For example, the baseline control module 530 may determine measured values of aircraft parameters including an altitude, a pitch rate, a pitch angle, etc., of the aircraft 100 based on measurement(s) from one(s) of the sensors 138, 140, 142, 144. In some examples, the baseline control module 530 may determine the measured values of the aircraft parameters in response to a change in the aircraft longitudinal dynamics of the aircraft 100 based on the aircraft 100 being controlled based on the altitude control input δe.
At block 816, the vehicle controller 102, 300, 400, 500 determines measured states and an altitude command output based on the measured aircraft parameters. For example, the baseline control module 530 may determine the measured states {dot over (h)}, q, θ, and h of
At block 818, the vehicle controller 102, 300, 400, 500 calculates a difference between the altitude command and the altitude command output. For example, the subtraction logic 524 (
At block 820, the vehicle controller 102, 300, 400, 500 determines whether the difference satisfies a threshold. For example, the subtraction logic 524 may determine that the difference between a first command (e.g., the altitude command hcmd) to control the first elevator 130 to have an elevator angle of 30 degrees and a second command (e.g., the altitude command output h) to control the first elevator 130 to have an elevator angle of 27 degrees is 3 degrees, which may be greater than a threshold of 2 degrees and thereby satisfies the threshold.
If, at block 820, the subtraction logic 524 determines that the difference does not satisfy the threshold, control returns to block 802 to determine another altitude command of the aircraft in the flare regime of the flight plan. If, at block 820, the subtraction logic 524 determines that the difference satisfies the threshold, then, at block 822, the vehicle controller 102, 300, 400, 500 generates an alert. For example, the subtraction logic 524 or a different module or logic of the fourth vehicle controller 500 may generate an alert, an indication, etc., to indicate that the difference satisfies the threshold. In some examples, the subtraction logic 524 may generate the alert by transmitting data to a user interface of the aircraft 100, which may display the alert, the data, etc., to a pilot of the aircraft 100. For example, the pilot may take corrective action or adjust a configuration of the aircraft 100 based on the alert. In response to generating the alert at block 822, the machine readable instructions 800 of
At block 904, the vehicle controller 102, 300, 400, 500 determines first input(s) based on the altitude command and the gain command value. For example, the observer module 510 may determine one or more first inputs to the adder logic 520 (
At block 906, the vehicle controller 102, 300, 400, 500 determines a configuration of the aircraft. For example, the observer module 510 may query the collection module 370 (
At block 908, the vehicle controller 102, 300, 400, 500 determines an Lv constant based on a mapping of at least one of the configuration or one(s) of aircraft parameters to a look-up table. For example, the observer module 510 may determine the observer error feedback gain Lv 518 based on a mapping of at least one of the configuration or one(s) of aircraft parameters (e.g., an airspeed, an altitude, etc.) of the aircraft 100 to a look-up table to identify the observer error feedback gain Lv 518.
At block 910, the vehicle controller 102, 300, 400, 500 integrates a difference between the altitude command and an altitude command output. For example, the integrator transfer function 522 may integrate the difference between the altitude command hcmd and the altitude command output h to determine the output observation error ehI.
At block 912, the vehicle controller 102, 300, 400, 500 determines measured states based on the measured aircraft parameters. For example, the observer module 510 may determine the measured states {dot over (h)}, q, θ, and h of
At block 914, the vehicle controller 102, 300, 400, 500 determines second input(s) based on at least one of the Lv constant, the measured states, or the integrated difference. For example, the observer module 510 may add the output observation error ehI to a matrix that includes the measured states. The observer module 510 may transpose the matrix that includes the output observation error ehI and the measured states to yield the transposed matrix (ehI {dot over (h)} q θ h)T. The observer module 510 may apply the observer error feedback gain Lv 518 to the transposed matrix to yield a scaled or adjusted transposed matrix to represent the second inputs to the adder logic 520
At block 916, the vehicle controller 102, 300, 400, 500 determines the input(s) based on a sum of the first input(s) and the second input(s). For example, the adder logic 520 may determine the input(s) to the transfer function 514 based on a sum of the first inputs and the second inputs. In response to determining the input(s) based on the sum of the first input(s) and the second input(s) at block 916, the machine readable instructions 900 of
The processor platform 1000 of the illustrated example includes a processor 1012. The processor 1012 of the illustrated example is hardware. For example, the processor 1012 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer. The hardware processor may be a semiconductor based (e.g., silicon based) device. In this example, the processor 1012 implements the example command input module 310, the example observer module 320, the example baseline control module 330, the example vehicle module 340, the example sensor(s) 350, the example network 360, the example collection module 370, the example error module 390, the example observer module 410 of
The processor 1012 of the illustrated example includes a local memory 1013 (e.g., a cache). The processor 1012 of the illustrated example is in communication with a main memory including a volatile memory 1014 and a non-volatile memory 1016 via a bus 1018. The volatile memory 1014 may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS® Dynamic Random Access Memory (RDRAM®) and/or any other type of random access memory device. The non-volatile memory 1016 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 1014, 1016 is controlled by a memory controller.
The processor platform 1000 of the illustrated example also includes an interface circuit 1020. The interface circuit 1020 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), a Bluetooth® interface, a near field communication (NFC) interface, and/or a PCI express interface.
In the illustrated example, one or more input devices 1022 are connected to the interface circuit 1020. The input device(s) 1022 permit(s) a user to enter data and/or commands into the processor 1012. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, an isopoint device, and/or a voice recognition system.
One or more output devices 1024 are also connected to the interface circuit 1020 of the illustrated example. The output devices 1024 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touchscreen, etc.), a tactile output device, a printer and/or speaker. The interface circuit 1020 of the illustrated example, thus, typically includes a graphics driver card, a graphics driver chip and/or a graphics driver processor.
The interface circuit 1020 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem, a residential gateway, a wireless access point, and/or a network interface to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 1026. The communication can be via, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a line-of-site wireless system, a cellular telephone system, etc.
The processor platform 1000 of the illustrated example also includes one or more mass storage devices 1028 for storing software and/or data. Examples of such mass storage devices 1028 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, redundant array of independent disks (RAID) systems, and digital versatile disk (DVD) drives. In this example, the one or more mass storage devices 1028 implement the example datastore 380 of
The machine executable instructions 1032 of
A block diagram illustrating an example software distribution platform 1105 to distribute software such as the example computer readable instructions 1032 of
From the foregoing, it will be appreciated that the above disclosed methods, apparatus, and articles of manufacture provide observer-based landing control of a vehicle, such as an aircraft. The above disclosed vehicle control apparatus can determine a command to control the vehicle during a flare regime of a flight plan based on determining and/or estimating one or more states of a vehicle parameter during the flare regime. The above disclosed vehicle controllers can perform state feedback margin recovery while increasing robustness at high frequencies. In addition, the above disclosed vehicle controllers may implement adaptive control to control the vehicle when one or more vehicle parameter states are unknown.
Example methods, apparatus, systems, and articles of manufacture for observer-based landing control of a vehicle are disclosed herein. Further examples and combinations thereof include the following:
Example 1 includes an apparatus comprising at least one memory, and at least one processor to execute instructions to at least in response to determining an aircraft is in a flare regime of a flight plan, determine an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command corresponding to the flare regime, determine a gain value based on a measured state of the aircraft parameter, determine an altitude control input based on the estimate state and the gain value, determine an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and control an elevator of the aircraft based on the altitude command output.
Example 2 includes the apparatus of example 1, wherein the altitude command is based on a trajectory from a first position of the aircraft in the flare regime of the flight plan to a second position on a ground surface as a function of time.
Example 3 includes the apparatus of example 1 or 2, wherein the aircraft parameter includes at least one of an altitude, a configuration, or an airspeed of the aircraft, and the at least one processor is to map the at least one of the altitude, the configuration, or the airspeed to a look-up table to determine the gain value.
Example 4 includes the apparatus of any of examples 1-3, wherein the estimate state is based on one or more measured states including the measured state, the one or more measured states based on at least one of an altitude parameter, an angle of attack parameter, or a sideslip parameter, the at least one of the altitude parameter, the angle of attack parameter, or the sideslip parameter based on a measurement from a sensor, the sensor being an altimeter, an acceleration sensor, a gyro sensor, or an angular rate sensor.
Example 5 includes the apparatus of any of examples 1-4, wherein the at least one processor is to determine an observer matrix based on a flight conditions matrix, the flight conditions matrix including values associated with a plurality of flight conditions, and execute the transfer function based on a difference between an identity matrix and the observer matrix to output a state matrix, the state matrix including the estimate state of the aircraft parameter.
Example 6 includes the apparatus of any of examples 1-5, wherein the at least one processor is to determine a difference between the altitude command and the altitude command output, and in response to the difference satisfying a threshold, adjust the estimate state of the aircraft parameter based on the difference.
Example 7 includes the apparatus of any of examples 1-6, wherein the gain value is a first gain value, and the at least one processor is to determine a second gain value, determine one or more first inputs based on a bounded altitude command and the second gain value, determine a configuration of the aircraft, determine an observer error feedback gain based on a mapping of at least one of the configuration or the aircraft parameter to a look-up table, integrate a difference between the bounded altitude command and the altitude command output, determine one or more second inputs based on at least one of the observer error feedback gain, the aircraft parameter, or the integrated difference, and determine one or more third inputs to the observer model based on a sum of the one or more first inputs and the one or more second inputs.
Example 8 includes a non-transitory computer readable storage medium comprising instructions that, when executed, cause at least one processor to at least in response to determining an aircraft is in a flare regime of a flight plan, determine an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command corresponding to the flare regime, determine a gain value based on a measured state of the aircraft parameter, determine an altitude control input based on the estimate state and the gain value, determine an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and control an elevator of the aircraft based on the altitude command output.
Example 9 includes the non-transitory computer readable storage medium of example 8, wherein the altitude command is based on a trajectory from a first position of the aircraft in the flare regime of the flight plan to a second position on a ground surface as a function of time.
Example 10 includes the non-transitory computer readable storage medium of example 8 or 9, wherein the aircraft parameter includes at least one of an altitude, a configuration, or an airspeed of the aircraft, and the instructions, when executed, cause the at least one processor to map the at least one of the altitude, the configuration, or the airspeed to a look-up table to determine the gain value.
Example 11 includes the non-transitory computer readable storage medium of any of examples 8-10, wherein the estimate state is based on one or more measured states including the measured state, the one or more measured states based on at least one of an altitude parameter, an angle of attack parameter, or a sideslip parameter, the at least one of the altitude parameter, the angle of attack parameter, or the sideslip parameter based on a measurement from a sensor, the sensor being an altimeter, an acceleration sensor, a gyro sensor, or an angular rate sensor.
Example 12 includes the non-transitory computer readable storage medium of any of examples 8-11, wherein the instructions, when executed, cause the at least one processor to determine an observer matrix based on a flight conditions matrix, the flight conditions matrix including values associated with a plurality of flight conditions, and execute the transfer function based on a difference between an identity matrix and the observer matrix to output a state matrix, the state matrix including the estimate state of the aircraft parameter.
Example 13 includes the non-transitory computer readable storage medium of any of examples 8-12, wherein the instructions, when executed, cause the at least one processor to determine a difference between the altitude command and the altitude command output, and in response to the difference satisfying a threshold, adjust the estimate state of the aircraft parameter based on the difference.
Example 14 includes the non-transitory computer readable storage medium of any of examples 8-13, wherein the gain value is a first gain value, and the instructions, when executed, cause the at least one processor to determine a second gain value, determine one or more first inputs based on a bounded altitude command and the second gain value, determine a configuration of the aircraft, determine an observer error feedback gain based on a mapping of at least one of the configuration or the aircraft parameter to a look-up table, integrate a difference between the bounded altitude command and the altitude command output, determine one or more second inputs based on at least one of the observer error feedback gain, the aircraft parameter, or the integrated difference, and determine one or more third inputs to the observer model based on a sum of the one or more first inputs and the one or more second inputs.
Example 15 includes a method comprising in response to determining an aircraft is in a flare regime of a flight plan, determining an estimate state of an aircraft parameter based on an execution of a transfer function of an observer model, the execution of the transfer function based on an altitude command, determining a gain value based on an aircraft parameter, determining an altitude control input based on the estimate state and the gain value, determining an altitude command output based on the altitude control input and longitudinal dynamics of the aircraft, the longitudinal dynamics generated in response to the aircraft executing the altitude command output, and controlling an elevator of the aircraft based on the altitude command output.
Example 16 includes the method of example 15, wherein the aircraft parameter includes at least one of an altitude, a configuration, or an airspeed of the aircraft, and further including mapping the at least one of the altitude, the configuration, or the airspeed to a look-up table to determine the gain value.
Example 17 includes the method of example 15 or 16, wherein the estimate state is based on one or more measured states including the measured state, the one or more measured states based on at least one of an altitude parameter, an angle of attack parameter, or a sideslip parameter, the at least one of the altitude parameter, the angle of attack parameter, or the sideslip parameter based on a measurement from a sensor, the sensor being an altimeter, an acceleration sensor, a gyro sensor, or an angular rate sensor.
Example 18 includes the method of any of examples 15-17, further including determining an observer matrix based on a flight conditions matrix, the flight conditions matrix including values associated with a plurality of flight conditions, and executing the transfer function based on a difference between an identity matrix and the observer matrix to output a state matrix, the state matrix including the estimate state of the aircraft parameter.
Example 19 includes the method of any of examples 15-18, further including determining a difference between the altitude command and the altitude command output, and in response to the difference satisfying a threshold, adjusting the estimate state of the aircraft parameter based on the difference.
Example 20 includes the method of any of examples 15-19, wherein the gain value is a first gain value, and further including determining a second gain value, determining one or more first inputs based on a bounded altitude command and the second gain value, determining a configuration of the aircraft, determining an observer error feedback gain based on a mapping of at least one of the configuration or the aircraft parameter to a look-up table, integrating a difference between the bounded altitude command and the altitude command output, determining one or more second inputs based on at least one of the observer error feedback gain, the aircraft parameter, or the integrated difference, and determining one or more third inputs to the observer model based on a sum of the one or more first inputs and the one or more second inputs.
Although certain example systems, methods, apparatus, and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all systems, methods, apparatus, and articles of manufacture fairly falling within the scope of the claims of this patent.
This patent claims the benefit of U.S. Provisional Patent Application No. 63/135,251, which was filed on Jan. 8, 2021. U.S. Provisional Patent Application No. 63/135,251 is hereby incorporated herein by reference in its entirety. Priority to U.S. Provisional Patent Application No. 63/135,251 is hereby claimed. This patent includes subject matter related to U.S. Pat. Nos. 10,216,198 and 10,852,748, all of which are hereby incorporated by reference in their entireties.
Number | Name | Date | Kind |
---|---|---|---|
4490794 | Griffith | Dec 1984 | A |
5136507 | Shiraishi et al. | Aug 1992 | A |
5652379 | Fukatani | Jul 1997 | A |
8086383 | Takenaka et al. | Dec 2011 | B2 |
8340841 | Chiesa | Dec 2012 | B2 |
8447443 | Ryan et al. | May 2013 | B1 |
8996195 | Yucelen et al. | Mar 2015 | B2 |
9656593 | Wise et al. | May 2017 | B2 |
10216198 | Lavretsky et al. | Feb 2019 | B2 |
10852748 | Lavretsky et al. | Dec 2020 | B2 |
20090171634 | Bensch et al. | Jul 2009 | A1 |
20090192634 | Fujinaka | Jul 2009 | A1 |
20090299494 | Kahn | Dec 2009 | A1 |
20120265367 | Yucelen et al. | Oct 2012 | A1 |
20160231137 | Krogh et al. | Aug 2016 | A1 |
20180275682 | Lavretsky et al. | Sep 2018 | A1 |
20180364707 | Bosworth | Dec 2018 | A1 |
20200148345 | Wittmaak, Jr. | May 2020 | A1 |
20200317326 | Sheffer | Oct 2020 | A1 |
Number | Date | Country |
---|---|---|
102323756 | Jan 2012 | CN |
104049640 | Sep 2014 | CN |
105700520 | Jun 2016 | CN |
105867139 | Aug 2016 | CN |
107807663 | Mar 2018 | CN |
108628163 | Oct 2018 | CN |
WO-2007116134 | Oct 2007 | WO |
Entry |
---|
English translation of CN-107807663-A (Year: 2018). |
English translation of WO-2007116134-A1 (Year: 2007). |
English translation of CN-108628163-A (Year: 2018). |
European Patent Office, “European Search Report,” issued in connection with application No. 18162884.3, on Jul. 20, 2018, 10 pages. |
Qu et al., “Squaring-Up Method in the Presence of Transmission Zeros,” The International Federation of Automatic Control, Cape Town, South Africa, Aug. 24-29, 2014, 6 pages. |
Eugene Lavretsky, “Adaptive Output Feedback Design Using Asymptotic Properties of LQG/LTR Controllers,” IEEE Transactions on Automatic Control, vol. 57, No. 6, Jun. 2012, 5 pages. |
Eugene Lavretsky, “Robust and Adaptive Control Methods for Aerial Vehicles,” The Boeing Company, Handbook of Unmanned Aerial Vehicles, Springer Science+Business Media Dordrecht 2015, 36 pages. |
Gibson, Travis E., et al., “Adaptive Output Feedback based on Closed-Loop Reference Models,” IEEE Transactions on Automatic Control, vol. 60 (10), pp. 2728-2733, Oct. 7, 2014, 8 pages. |
Wiese, Daniel P., et al., “Adaptive Output Feedback Based on Closed-Loop Reference Models for Hypersonic Vehicles,” Journal of Guidance, Control, and Dynamics, vol. 38 (12), 2015, 36 pages. |
Avretsky, Eugene, “Transients in output feedback adaptive systems with observer-like reference models,” Int. J. Adapt. Control Signal Process., pp. 1515-1125, vol. 29, DOI: 10.1002/acs.2557, 2015, 11 pages. |
Gibson, Travis E., et al., “On Adaptive Control with Closed-Loop Reference Models: Transients, Oscillations, and Peaking”, IEEE Access, 10.1109/ACCESS.2013.2284005, vol. 1, pp. 703-717, Sep. 2013, 15 pages. |
Non-Final Office Action issued by the United States Patent and Trademark Office in relation to U.S. Appl. No. 15/465,066, mailed Apr. 30, 2018, 13 pages. |
Notice of Allowance issued by the United States Patent and Trademark Office in relation to U.S. Appl. No. 15/465,066, mailed Oct. 3, 2018, 6 pages. |
European Patent Office, “Examination Report,” mailed Jun. 13, 2019 in connection with European Patent Application No. 18162884.3 (6 pages). |
European Patent Office, “Communication pursuant to Article 94(3) EPC”, issued in connection with European Patent Application No. 18162884.3, May 7, 2020, (6 pages). |
European Patent Office, “Extended European Search Report,” issued in connection with application No. 21204474.7, on Mar. 31, 2022, 10 pages. |
SURESH P S et al: “State Estimation for Landing Maneuver on High Performance Aircraft”, Journal of the Institution of Engineers (India): Series C, Springer India, India, vol. 100, No. 1, Jan. 15, 2018 (Jan. 15, 2018), pp. 187-202. |
United States Patent and Trademark Office, “Non-Final Action” issued in U.S. Appl. No. 16/271,106 on Mar. 27, 2020 (9 pages). |
United States Patent and Trademark Office, “Notice of Allowance” issued in U.S. Appl. No. 16/271,106 on Jul. 29, 2020 (5 pages). |
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 18162884.3, Nov. 24, 2020 (12 pages). |
European Patent Office, “Communication Pursuant to Article 94(3) EPC,” issued in connection with European Patent Application No. 18162884.3, Mar. 3, 2021 (5 pages). |
State Intellectual Property Office of People's Republic of China, “First Office Action,” issued in connection with Chinese Patent Application No. 201810173221.7, dated Jun. 28, 2022 (12 pages, includes English translation). |
Canada Patent Office, “Office Action,” issued in connection with Canadian Patent Application No. 2,991,373, dated Feb. 25, 2021 (4 pages). |
Derek Rowell, “2.14 Analysis and Design of Feedback Control Systems—State-Space Representation of LTI Systems,” Oct. 2002 (18 pages). |
Number | Date | Country | |
---|---|---|---|
20220223049 A1 | Jul 2022 | US |
Number | Date | Country | |
---|---|---|---|
63135251 | Jan 2021 | US |