美文网首页
带前馈和反馈的高阶无模型迭代学习控制

带前馈和反馈的高阶无模型迭代学习控制

作者: fx2h | 来源:发表于2020-10-08 18:11 被阅读0次

参考文献:《基于无模型自适应控制的反馈-前馈迭代学习控制系统收敛性研究》

其中控制律的设计分为两部分:前馈部分和反馈部分。系统采用伪偏导进行估计,其中算法针对的系统为:
y_{n}(k+1)=f(u_{n}(k),y_{n})(k),\xi(k),k)
整个控制律的设计如下:
u_{n}(k)=u^{f}_{n}(k)+u^{b}_{k}(k)
u^{f}_{n}(k)=u^{f}_{n-1}(k)+\beta e_{n-1}(k+1)
u^{b}_{n}(k)=u^{b}_{n}(k-1)+\frac{\rho *\phi_{n}(k)}{\lambda+|\hat{\phi_{n}}(k)|^{2}}*[y_{d}(k+1)-y_{n}(k)]
\hat{\phi_{n}}(k)=\hat{\phi_{n}}(k-1)+\frac{\eta \Delta u^{b}_{k-1} }{\mu +|\Delta u^{b}_{k-1}|^2}*[\Delta y_{n}(k)-\hat\phi_{n}(k-1)\Delta u^{b}_{n}(k-1)]
\hat\phi_{n}(k)=\hat \phi(1), 若\hat\phi_{n}(k)\leq\epsilon 或|\Delta u^{b}_{n}(k-1)\leq\epsilon|
仿真系统函数为:
y(k+1)=\left\{\begin{array}{lr}\frac{y(k) u(k)}{1+y(k)^{2}}+[u(k)+a(k) \sin (y(k))]^{3}, & k<250 \\\frac{y(k) u(k)^{3}}{1+y(k)^{2}}+u(k)^{3} & 250 \leqslant k \leqslant 500\end{array}\right.
期望曲线为:
y_{d}(k+1)=\left\{\begin{array}{l}0.5 \times(-1) .^{\wedge} \text { round }(k / 100), \quad k<250 \\0.5 \times \sin (k \pi / 100)+0.3 \times \cos (k \pi / 50), 250 \leqslant k \leqslant 500\end{array}\right.
根据控制律编写matlab代码如下(可以复制,但是还是建议自己照着控制律敲一下,可以加深对控制律的理解和代码编写能力):

% 期望轨迹
for k = 1:1:500
    if k < 250
        yd(k+1) = 0.5*(-1).^(round(k/100));
    else 
        yd(k+1) = 0.5*sin((k*pi)/100) + 0.3*cos((k*pi)/50);
    end
end

% 参数设置
epsilon = 0.01;
eta = 1;
rho = 0.2;
lamda = 1;
mu = 2;

% 控制过程
i_n = 60;  %迭代次数
y(1:i_n,1:500) = 0;
for i = 1:1:i_n
    for k = 1:1:500
        if k == 1
            phi(i,k) = 0.4;
        elseif k == 2
            phi(i,k) = phi(i,k-1) + (eta*(ub(i,k-1) - 0)/(mu + norm(ub(i,k-1) - 0)^2))*(y(i,k) - 0 - phi(i,k-1)*(ub(i,k-1) - 0));
        else 
            phi(i,k) = phi(i,k-1) + (eta*(ub(i,k-1) - ub(i,k-2))/(mu + norm(ub(i,k-1) - ub(i,k-2))^2))*(y(i,k) - y(i,k-1) - phi(i,k-1)*(ub(i,k-1) - ub(i,k-2)));
        end
        if i == 1
            uf(i,k) = 0;
        else 
            uf(i,k) = uf(i-1,k) + 0.4*e(i-1,k+1);
        end
        if k == 1
            ub(i,k) = 0;
        else 
            ub(i,k) = ub(i,k-1) + (rho*phi(i,k)/(lamda + norm(phi(i,k))^2))*(yd(k+1) - y(i,k));
        end
        if k>2 && (phi(i,k) <= epsilon || (abs(ub(i,k-1) - ub(i,k-2)) <= epsilon))
            phi(i,k) = phi(i,1);
        end
        u(i,k) = uf(i,k) + ub(i,k);
        %系统函数
        if k <250 
            y(i,k+1) = y(i,k)*u(i,k)/(1 + norm(y(i,k))^2) + (u(i,k) + 0.1*round(k/500)*sin(y(i,k)))^3;
        else
            y(i,k+1) = y(i,k)*u(i,k)^3/(1 + norm(y(i,k))^2) + u(i,k)^3;
        end
        e(i,k+1) = yd(k+1) - y(i,k+1);
    end
end
%误差
for i =1:1:i_n
e_min(i) = max(abs(e(i,:)));
end

figure(1) 
plot(yd,'r'); hold on;
plot(y(i_n,:),'b'); title('µü´ú10´Î');
figure(2)
plot(e_min);title('error of time k');

仿真结果:迭代10次结果:

10次迭代.jpg
50次迭代:
50次迭代.jpg
100次迭代:
100迭代.jpg
100次迭代的误差收敛结果:
100_min.jpg
100_max.jpg
github链接地址

相关文章

  • 带前馈和反馈的高阶无模型迭代学习控制

    参考文献:《基于无模型自适应控制的反馈-前馈迭代学习控制系统收敛性研究》 其中控制律的设计分为两部分:前馈部分和反...

  • 高阶无模型自适应迭代学习控制学习记录

    参考文献:"High-Order Model-Free Adaptive Iterative Learning C...

  • 控制的维度

    控制有两个维度:时间维度,是选择前馈控制,还是选择反馈控制;控制细节,是选择宏观,还是选择微观。 在组织的高层,前...

  • RESULTS 6

    计算模型揭示在黑暗和不同光条件下控制种子萌发的前馈回路机制 光敏色素B在暗处的无活性形态,在红光下迅速活化,...

  • 《习惯力》拆书打卡-第三天

    I: 前馈是改掉坏习惯行动执行前重要的环节。前几章节主要讲述如何发现坏习惯,通过邀请式反馈和自发式反馈实现。前馈为...

  • 2019-04-01

    前向神经网络(由于从输入到输出的过程中不存在与模型自身的反馈连接,此类模型称为前馈) 几种激活函数的优缺点?---...

  • 一文概览神经网络模型

    一、神经网络类别 一般的,神经网络模型基本结构按信息输入是否反馈,可以分为两种:前馈神经网络和反馈神经网络。 1....

  • 宁向东《清华管理学课》笔记(九十三)

    077讲:前馈管理 | 让下属听懂你的话! 今天要和你分享的核心观念,叫做“前馈管理”。前馈管理,是相对于反馈管理...

  • 五.前馈运算和反馈运算

    前馈运算 无论训练模型时计算误差还是模型训练完毕后获得样本预测,卷积神经网络的前馈运算都较直观。同样以图像分类任务...

  • 神经网络NN与前向传播算法简介

    前馈神经网络模型&前向传播算法 一个简单的前馈神经网络模型如下: 其中,称Layer L1 是输入层,不计入NN的...

网友评论

      本文标题:带前馈和反馈的高阶无模型迭代学习控制

      本文链接:https://www.haomeiwen.com/subject/wzehpktx.html