线性离散时间系统的H∞跟踪控制:基于无模型Q学习的设计(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

线性离散时间系统的H∞跟踪控制是控制工程中的一个重要课题,通过设计控制器使系统在追踪给定轨迹的同时满足H∞性能指标。基于无模型Q学习的设计研究则是一种基于强化学习的控制方法,通过学习系统的动态特性和环境反馈来实现控制目标。

在这样的研究中,通常会通过Q学习算法来学习系统的最优控制策略,使系统能够在不确定性环境下实现稳定的控制。通过对系统状态和行为的不断学习和优化,最终实现系统的H∞跟踪控制。

这种方法的优势在于可以应对系统复杂性高、模型不完全或难以建模等情况,但也需要考虑到强化学习算法在实际应用中可能会受到训练数据质量、训练时间等因素的影响,需要综合考虑算法性能和实际应用效果。

线性离散时间系统的H∞跟踪控制是一种重要的控制策略,旨在确保系统能够在面对外部扰动和不确定性时实现稳定的轨迹跟踪。基于无模型Q学习的设计为这一控制问题提供了一种新颖而高效的解决方案。通过结合强化学习的思想和H∞控制理论,该方法能够在不依赖系统模型的情况下,实现对系统的精准跟踪控制。这种设计不仅提高了系统的鲁棒性和性能,同时也为控制理论与机器学习的融合提供了一个引人注目的范例。这种创新性的方法为解决复杂的控制问题开辟了新的途径,并在实际工程应用中展现出巨大的潜力。

一、概述

线性离散时间系统的H∞跟踪控制是控制工程中的一个重要课题。H∞控制是一种消除系统扰动的有效方式,但由于需要求解非线性哈密顿-雅克比-伊萨克斯方程,H∞控制器往往很难得到,即便对于线性系统。通过设计控制器使系统在追踪给定轨迹的同时满足H∞性能指标,可以确保系统在面对外部扰动和不确定性时实现稳定的轨迹跟踪。

基于无模型Q学习的设计研究则是一种基于强化学习的控制方法,通过学习系统的动态特性和环境反馈来实现控制目标。Q学习是一种无模型的强化学习算法,旨在找到在给定当前状态下采取的最佳行动。它通过观察学习,而不需要环境模型,并且能够处理具有随机转换和奖励的问题。

二、研究背景

在H∞跟踪控制的研究中,通常会通过Q学习算法来学习系统的最优控制策略,使系统能够在不确定性环境下实现稳定的控制。通过对系统状态和行为的不断学习和优化,最终实现系统的H∞跟踪控制。

然而,Q学习在实际应用中可能会受到训练数据质量、训练时间等因素的影响。因此,需要综合考虑算法性能和实际应用效果。此外,对于线性离散时间系统的H∞控制器设计问题,还需要求解涉及的博弈代数黎卡提方程。

三、研究方法

为求解涉及的博弈代数黎卡提方程,本研究在离线策略算法基础上提出一种新型无模型极小极大Q-学习算法。该算法采用离轨策略强化学习技术,利用行为策略产生的系统状态数据,可实现对最优控制器和最佳干扰策略的在线学习。

不同于当前Q-学习算法,本研究提出一种基于梯度的策略提高方法。证明在一定持续激励条件下,对于初始可行的控制策略并结合合适学习率,提出的极小极大Q-学习算法可收敛到鞍点策略。此外,算法收敛所需的持续激励条件可通过选择包含一定噪声激励的合适行为策略实现,且不会引起任何激励噪声偏差。

四、研究结果

将提出的极小极大Q-学习算法应用于线性离散时间系统的H∞跟踪控制设计中,仿真结果表明,该算法能够实现对系统的精准跟踪控制,并具有良好的抗干扰性能。

通过结合强化学习的思想和H∞控制理论,该方法能够在不依赖系统模型的情况下,实现对系统的精准跟踪控制。这种设计不仅提高了系统的鲁棒性和性能,同时也为控制理论与机器学习的融合提供了一个引人注目的范例。

五、结论

本研究提出了一种基于无模型极小极大Q-学习的线性离散时间系统H∞跟踪控制设计方法。该方法通过离轨策略强化学习技术,实现了对最优控制器和最佳干扰策略的在线学习,并证明了算法的收敛性。仿真结果表明,该方法能够实现对系统的精准跟踪控制,并具有良好的抗干扰性能。

这种创新性的方法为解决复杂的控制问题开辟了新的途径,并在实际工程应用中展现出巨大的潜力。未来,将进一步研究该算法在更多实际系统中的应用,并探索与其他控制方法的结合,以提高系统的整体性能和鲁棒性。

📚2 运行结果

部分代码:

%The number of independent elements of H is 21.
    if mod(n, 22) == 0
        err_K = abs(K - K_P_dare);
        err_L = abs(L - L_P_dare);
        
        if n <= Count_train
            mm = mm + 1;
            % PEV using the LS
            Z_temp = zbar * zbar';
            T_temp = zbar * d_target;
            rank(Z_temp);
            vecH = inv(Z_temp) * T_temp;
            H = [vecH(1),   vecH(2)/2,   vecH(3)/2,   vecH(4)/2,  vecH(5)/2,   vecH(6)/2;
                 vecH(2)/2, vecH(7),     vecH(8)/2,   vecH(9)/2,  vecH(10)/2,  vecH(11)/2;
                 vecH(3)/2, vecH(8)/2,   vecH(12),    vecH(13)/2, vecH(14)/2,  vecH(15)/2;
                 vecH(4)/2, vecH(9)/2,   vecH(13)/2,  vecH(16),   vecH(17)/2,  vecH(18)/2;
                 vecH(5)/2, vecH(10)/2,  vecH(14)/2,  vecH(17)/2, vecH(19),    vecH(20)/2;
                 vecH(6)/2, vecH(11)/2,  vecH(15)/2,  vecH(18)/2, vecH(20)/2,  vecH(21)];
            %PIM
            Hxx = H(1:4, 1:4);
            Hxu = H(1:4, 5);
            Hxw = H(1:4, 6);
            Hux = H(5, 1:4);
            Huu = H(5, 5);
            Huw = H(5, 6);
            Hwx = H(6, 1:4);
            Hwu = H(6, 5);
            Hww = H(6, 6);
            L = inv(Huu - Huw*inv(Hww)*Hwu) * (Huw*inv(Hww)*Hwx - Hux);
            K = inv(Hww - Hwu*inv(Huu)*Huw) * (Hwu*inv(Huu)*Hux - Hwx);
            
            %Error calculation
            err_L_norm(mm) = norm(err_L);
            err_K_norm(mm) = norm(err_K);
 
        end 
    end
end

%The learned results
L_mf = L
K_mf = K

err_L_norm_c2 = err_L_norm;
err_K_norm_c2 = err_K_norm;

figure(1)
subplot(2,1,1), hold on, box on;
plot(1:mm, err_L_norm,'m','linewidth',3);
plot(1:mm, err_L_norm,'bo','linewidth',3);
set(gca,'FontSize',30, 'FontName','Times New Roman');
ylabel('||L-L^*||');
subplot(2,1,2), hold on, box on;
plot(1:mm, err_K_norm,'m','linewidth',3);
plot(1:mm, err_K_norm,'bo','linewidth',3);
ylabel('||K-K^*||');
set(gca,'FontSize',30, 'FontName','Times New Roman');
hold off

y_c2 = y;
r_c2 = r;

figure(2),hold on, box on
t=1:Count_N;
plot(t, y, 'm', 'linewidth', 2)
plot(t, r(1:Count_N), 'b', 'linewidth', 3)
set(gca,'FontSize',30, 'FontName','Times New Roman');
legend('Output', 'Reference', 'location','southeast');
hold off

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]肖会芹,何勇,吴敏,等.基于T-S 模糊模型的采样数据网络控制系统H∞ 输出跟踪控制[J].自动化学报, 2015, 41(3):8.DOI:10.16383/j.aas.2015.c140444.

[2]张一晗,肖振飞,李金娜.数据驱动的线性离散系统自学习H_(∞)跟踪控制[J].控制工程, 2023, 30(10):1927-1934.

🌈4 Matlab代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值