主要内容

无人机飞行故障恢复

这个例子展示了如何使用控制系统调谐器根据标称飞行条件和故障条件,调整多直升机的固定结构PID控制器。在这里,您使用增益计划方法从单转子故障恢复和着陆无人机。

无人机包裹递送模型

中讨论的模型的基础上,本示例使用了一个模型无人机包裹递送(无人机工具箱)的例子。高保真六自由度植物模型是基于Simulink无人机参考应用程序

打开Simulink®项目。

运行(“scdUAVInflightFailureRecoveryStart.m”

在本例中,通过在电站中注入乘法增益矢量来模拟单个转子故障。为了验证增益调度控制器的仿真结果,以执行器命令为特征,设计了一种故障检测算法,并采用基于标称仿真和故障诱导仿真的阈值进行故障检测。

控制器由位置(X, Y)和姿态(俯仰,滚转)回路、偏航控制回路和高度(Z)控制回路组成。转子故障注入增益块用于定义设备模型的故障条件。控制系统调谐器用于调优内部的姿态控制器和高度控制器。增益调整为名义飞行条件和故障条件。故障恢复控制策略采用基于故障检测指标调度的变PID控制器和查找表块实现。下图显示了用于调优的模型和控制器子系统。

open_system (“MultirotorModel/内环和工厂模型/高保真模型_rotorfault /控制器/控制器”

控制器调优

本节描述如何使用指定可调优元素和创建调优目标控制系统调谐器.若要启动预配置的会话,请使用项目的快捷方式

proj-shortcuts.png

控制器和设备被提取在一个单独的模型中,MultirotorModelControlDesign.slx,设置为调谐控制器增益使用控制系统调谐器.将积分增益的初始条件设为0.01,以抑制超调,同时保持稳态误差为零。转子增益倍增器参数被设置为在所有转子运行时指示名义模式。

打开模型。

open_system (“MultirotorModelControlDesign.slx”

启动控制系统调谐器应用程序,在Simulink模型窗口,在应用程序画廊,点击控制系统调谐器。

指定在0.005秒的采样时间线性化模型。单击线性化选项中,选择与采样时间离散,并进入0.005

linearize-sample-time.png

多模型参数变化

要指定参数变化,请在控制系统选项卡上,单击选择不同的参数参数的变化列表。上选择模型变量参数的变化选项卡上,单击管理参数。选择rotor4ThrustGain参数,单击好吧把它添加到参数的变化表格

cst-select-parameter.png

输入0对于第二行值。参数变化定义名义飞行(rotor4ThrustGain= 1)和单转子故障(rotor4ThrustGain= 0)条件。

define-failure-var.png

选择可调块

控件上选择要调优的块调优选项卡上,单击选择模块.然后,在Select Tuned Blocks对话框中,单击添加块。这将打开调优块的编辑器,您可以在其中指定哪些块是可调的。

select-tunable-blocks.png

选择姿态控制器和高度控制器子系统中的控制器增益为可调。

指定调优目标

属性上指定调优目标调优选项卡上,单击新目标.步距跟踪目标用于指定控制俯仰和滚转角度的响应和所需特性。参考俯仰和横摇信号与测量信号之间的关系UAVState信号分别标记为调优目标的输入和输出。打开位置控制器回路以隔离地调谐姿态控制回路。进入时间常数参数为0.1秒,并将调优目标应用于标称模型参数变化).

tuning-goal.png

类似地,使用Step Tracking Goal和Loop Shape Goal对话框来创建调优姿态和高度控制器增益所需的全套调优目标。

姿态回路的控制目标为:

  • 步进跟踪调谐目标,以控制俯仰和滚动与期望的一阶响应,时间常数为0.1秒

  • 环路形状的目标是抑制高频俯仰和滚转环路的反馈增益,指定为带宽为10hz的积分器

高度回路的控制目标为:

  • 步进跟踪调优目标,期望一阶响应,时间常数为1秒

  • 环路形状目标抑制高频反馈增益,指定为带宽为10hz的积分器

调整控制器参数为标称模型

按照上一节的步骤设置控制系统调谐器会话调整控制器增益为名义飞行模式。或者使用快捷方式调整控制器为标称飞行在项目启动时控制系统调谐器使用预配置的会话文件。

调优目标图表明,在控制器增益未调优的情况下,姿态控制环路不稳定,高度控制环路没有得到期望的响应。使用管理的目标选项,用于选择和编辑调优目标。

tuning-nominal-before.png

点击调优调整可调块的值以实现调优目标。姿态和高度控制回路都与偏航控制回路固定一起调谐。

tuning-nominal-after.png

控件中选择一个块,可查看调优控制器增益的值调整块的值数据预览面积控制系统调谐器.有关更多信息,请参见在控制系统调谐器中检查调谐控制器参数

调谐控制器增益为:

  • 外比例环控制螺距 K p 9 6 6 7

  • 内PI控制桨距角速度- K p 0 0 0 4 2 9 6 K 0 0 1

  • 外环比例控制辊 K p 9 5 7 2

  • 滚转角速度的内PI控制 K p 0 0 0 3. 4 9 4 K 0 0 1

  • 高度PID控制 K p 2 8 5 6 K 0 0 1 K d 3. 2 4 2

故障模型参数调优

定义的参数变化,rotor4ThrustGain= 0,生成单转子故障模型。将调优目标更改为应用于故障模型而不是标称模型。偏航控制环被设置为所有调谐目标打开,因为与推力损失到一个转子的对角线转子对是不平衡的,偏航是不受控制的。所需的时间常数步进跟踪-高度调整目标修改为2秒,这降低了多直升机的着陆速度。

双击打开并修改下的每个目标调优目标数据浏览器或者使用快捷方式调整控制器转子故障在项目启动时控制系统调谐器使用预配置的会话文件。

stepgoal-fault.png

点击调优根据故障模型重新调整参数。从下面的图中可以看出,由于转子故障,俯仰和横摇的阶跃响应存在小的超调和振荡。

tuning-fault.png

单转子故障机组的调谐控制器增益为:

  • 外比例环控制螺距 K p 1 1 0 2

  • 内PI控制桨距角速度- K p 0 0 0 6 4 1 5 K 0 0 1

  • 外环比例控制辊 K p 1 1 4 2

  • 滚转角速度的内PI控制 K p 0 0 0 5 2 0 9 K 0 0 1

  • 高度PID控制 K p 1 6 6 7 K 0 0 1 K d 4 0 9 8

基于注入故障和增益调度PID控制器的仿真

仿真模型实现了故障检测子系统,从执行器命令中提取特征,并设置阈值来检测转子4的故障。故障检测指标作为姿态环和高度环增益调度控制器的调度变量。此外,俯仰、滚转和高度参考输入被重新配置,以命令多直升机以安全速度降落。

load_system (“MultirotorModel”);open_system (“MultirotorModel/内环和工厂模型/高保真model_rotorfault”);

增益调度控制器使用可变PID控制器块和查找表块来指定增益,如俯仰角速度控制器所示。在标称操作(0)和故障(1)的断点处定义的块的表数据中更新上一节中计算的增益。

类似地,更新其余控制器的增益。

您也可以使用以下命令设置块参数。如果修改任何调优目标,请将提供的值替换为调优的控制器增益值。

设置螺距控制器参数如下。

set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...“控制器/控制器/态度控制器/ Gain_PitchAngle”],“TableData”“[9.669,11.02]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...'控制器/控制器/姿态控制器/PI俯仰/Kp'],“TableData”“[0.004296,0.006416]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...控制器/控制器/姿态控制器/PI Pitch/Ki],“TableData”“[0.01,0.01]”);

滚动控制器参数设置如下。

set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...“控制器/控制器/态度控制器/ Gain_RollAngle”],“TableData”“[9.572,11.42]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...控制器/控制器/姿态控制器/PI Roll/Kp],“TableData”“[0.003493,0.005209]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...控制器/控制器/姿态控制器/PI Roll/Ki],“TableData”“[0.01,0.01]”);

设置高度控制器参数如下。

set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...控制器/控制器/重力前馈/平衡推力/Kp],“TableData”“[3.004,1.667]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...控制器/控制器/重力前馈/平衡推力/Ki],“TableData”“[0.01,0.01]”);set_param (['MultirotorModel/内环和工厂模型/高保真model_rotorfault /'...'控制器/控制器/重力前馈/平衡推力/Kd'],“TableData”“[3.308,4.098]”);

使用采用故障注入模拟模型基于制导逻辑子系统的位置命令模拟多直升机起飞和飞行模型的项目快捷方式。通过将转子推力降低到30%,在30秒时引入转子故障。结果的高度位置(上行)和态度(中行)模拟数据检查器显示无人机降落到其期望高度的5%以内,并具有平滑的俯仰和滚转,以使其能够跟踪X和Y位置。底部一行显示了四个转子的执行器命令。

当旋翼在30秒失效时,无人机开始俯仰和滚动。检测到故障后,重新配置控制器。俯仰和滚被控制在0弧度和无人机降落,同时保持低速度。正如预期的那样,偏航是不受控制的,无人机确实绕垂直轴旋转。UAV达到的最大偏航率通过仿真验证,如果必要,姿态和高度控制器用修改的调谐目标返回。

无人机在一个逼真的环境中可视化,并显示无人机在现实世界中飞行。模拟开始时,按“F”设置相机模式为免费的AutoVrtlEnv窗口和使用鼠标滚轮增加相机距离无人机。使用这些控制,你可以看到降落顺序后转子故障。

下图显示了故障发生30秒后的瞬态。

关闭项目。

关闭(撮合下);

另请参阅

相关的话题

Baidu
map