Main Content

调整机体自动驾驶仪收益

This example shows how to apply Simulink® Design Optimization™ to optimize the autopilot gains of an airframe to control its fin deflection. The model uses blocks from Aerospace Blockset™.

The autopilot controller consists of an inner pitch loop and outer vertical acceleration loop. Both controllers are integral only controllers. The gains of both the controllers are tuned to satisfy a 2 second rise-time step response characteristic.

Open thenlairframe_demomodel using the command below and run the simulation. The simulation produces an unoptimized vertical acceleration of the airframe and the initial data for optimization.

open_system('nlairframe_demo')

Double-click theaz ResponseScope block to view the unoptimized vertical acceleration az of the airframe.

Double-click theq ResponseScope block to view the unoptimized rotation rate q of the airframe.

Double-click theModelblock to view the details of the subsystem. It includes an Atmosphere model and Aerodynamics and Equations of Motion model.

Double-click theDesired az Responseblock to view constraints on the vertical acceleration of the airframe. These constraints are used to simultaneously tune the gains of the two integral controllers. The first segment of the upper bound constraint represents an overshoot. Note that this is a soft constraint and can be violated.

You can launch theResponse Optimizerusing theAppsmenu in the Simulink toolstrip, or thesdotoolcommand in MATLAB®. You can launch a pre-configured optimization task inResponse Optimizerby first opening the model and by double-clicking on the orange block at the bottom of the model. From theResponse Optimizer, press thePlot Model Responsebutton to simulate the model and show how well the initial design satisfies the design requirements.

We start the optimization by pressing theOptimizebutton from theResponse Optimizer. The plots are updated to indicate that the design requirements are now satisfied.

The darker curve shows the final optimized response of the airframe.

% Close the model.bdclose('nlairframe_demo')
Baidu
map