Main Content

一阶系统的间接模型参考自适应控制

此示例说明如何设计间接模型参考自适应控制 (MRAC) 系统以用于参考跟踪。被控对象是一个未知一阶系统。间接 MRAC 控制器估计被控对象参数,并实现基于逆的控制器来跟踪参考模型。

一阶未知被控对象模型

受控被控对象是以下一阶动态系统。

x˙=ax(t)+bu(t)

其中:

  • x 是系统状态。

  • ab 是未知的系统参数。

给定此未知非线性系统,目标是设计一个控制器以便能够跟踪以下参考模型。

x˙m=amxm(t)+bmr(t)

其中:

  • xm 是参考模型状态。

  • r(t) 是用户提供的参考信号。

  • ambm 是参考模型参数。

参考跟踪控制器

间接 MRAC 控制器使用一个估计器模型来计算 aˆbˆ,它们分别是未知系统参数 ab 的估计值。

xˆ˙=aˆx(t)+bˆu(t)

为了计算控制动作 u(t),控制器使用前馈增益 kr 和反馈增益 kx

u(t)=-kxx(t)+krr(t)

控制器增益派生自参考模型参数(ambm)和估计的观测器参数(aˆbˆ)。

kr=bmbˆkx=1bˆ(am-aˆ)

配置控制器

对于此示例,真实的参考模型如下。

x˙=x(t)+3u(t)

指定参考模型参数,假设模型输出对应于状态 x

a = 1; 
b = 3;
c = 1;
d = 0;

此真实模型对于间接 MRAC 控制器是未知的。在这种情况下,控制器使用估计器模型来估计未知的被控对象动态特性。在运行期间,控制器可以自适应此模型的参数以改进它对未知系统参数的估计。

指定初始估计器参数。

ahat = 0;
bhat = 1;

控制器的目标是跟踪参考模型的性能。指定参考模型的参数。

am = -4;
bm = 4;

指定被控对象的初始条件。

x_0 = 0;

指定用于更新估计器模型参数的学习率。

gamma_a = 2;  % ahat learning rate
gamma_b = 2;  % bhat learning rate

仿真控制器

打开 Simulink 模型。

mdl = 'mracFirstOrder';
open_system(mdl)

在此模型中

  • Actual Plant Model 模块实现一阶未知系统的标称模型。

  • Reference Command 模块生成参考信号。

  • Model Reference Adaptive Control 模块输出控制动作 u,它是使用估计器模型派生的。

虽然 MRAC 控制器也可以估计受控系统中的未知扰动,但对于此示例,不存在这样的扰动。此时,控制器的目标仅仅是估计未知被控对象模型的参数。有关使用直接 MRAC 控制器估计未知扰动的示例,请参阅Model Reference Adaptive Control of Aircraft Undergoing Wing Rock

仿真模型。

sim(mdl);

查看实际被控对象输出和参考信号。该控制器能够使实际被控对象状态紧密跟踪参考信号。

open_system(mdl+"/state")

Model reference Adaptive Controller 模块配置为分别使用 AhatBhat 输出端口输出估计器模型的参数 aˆbˆ

open_system(mdl+"/params")

随着时间的推移,控制器会自适应估计器参数的值。在参考信号中具有足够的激励持久性的情况下,aˆbˆ 分别收敛于其真实值 1 和 3。

另请参阅

模块

相关主题