自适应控制学习——MIT自适应律

MIT自适应律
参考书籍 系统辨识与自适应控制 MATLAB仿真(第三版)
仿真环境 Matlab 2016a
参照书上P59的例题搭建 只放代码和结果
单纯的MIT自适应律代码如下:

%MIT自适应律
%一些量的初始化
clear
clc

r = 0.1;%自适应增益
gain = 0.1;%方波增益
K_c_0 = 0;%可调增益
L = 1000;%迭代次数
h = 0.1;%步长
u = gain*[ones(1,L/4),-ones(1,L/4),ones(1,L/4),ones(1,L/4)];%输入是一个幅值为r的方波
u_0 = 0;x_0 = [0;0];%参考模型的输入和初值
y_p = zeros(L,1);x_p = zeros(2,1);y_p_0 = 0;x_p_0 = zeros(2,1);%被控模型的输入输出序列和初始值
y_m = zeros(L,1);x_m = zeros(2,1);y_m_0 = 0;x_m_0 = zeros(2,1);%参考模型的输入输出序列和初始值
uu = [];uu_0 = 0;%被控模型的输入 其实等于kc*u;
e = zeros(L,1);e_0 = 0;%误差序列和初值
K_c = zeros(L,1);%可变增益序列  放在一个数组中观察变化情况
%参考模型 
num_m = [1];den_m=[1 1 1];
%T2S
[Am,Bm,Cm,Dm] = tf2ss(num_m,den_m);
%稳定被控对象
num_p = [1];den_p = [1 1 1];
%T2S
[Ap,Bp,Cp,Dp] = tf2ss(num_p,den_m);

for i = 1:L
    %参考输出
    x_m = x_m_0 + h*(Am*x_m_0 + Bm*u_0);
    y_m(i) = Cm*x_m + D
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值