一阶系统的间接模型参考自适应控制
此示例说明如何设计间接模型参考自适应控制 (MRAC) 系统以用于参考跟踪。被控对象是一个未知一阶系统。间接 MRAC 控制器估计被控对象参数,并实现基于逆的控制器来跟踪参考模型。
一阶未知被控对象模型
受控被控对象是以下一阶动态系统。
其中:
是系统状态。
和 是未知的系统参数。
给定此未知非线性系统,目标是设计一个控制器以便能够跟踪以下参考模型。
其中:
是参考模型状态。
是用户提供的参考信号。
和 是参考模型参数。
参考跟踪控制器
间接 MRAC 控制器使用一个估计器模型来计算 和 ,它们分别是未知系统参数 和 的估计值。
为了计算控制动作 ,控制器使用前馈增益 和反馈增益 。
控制器增益派生自参考模型参数( 和 )和估计的观测器参数( 和 )。
配置控制器
对于此示例,真实的参考模型如下。
指定参考模型参数,假设模型输出对应于状态 。
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 模块配置为分别使用 Ahat
和 Bhat
输出端口输出估计器模型的参数 和 。
open_system(mdl+"/params")
随着时间的推移,控制器会自适应估计器参数的值。在参考信号中具有足够的激励持久性的情况下, 和 分别收敛于其真实值 1 和 3。