m基于拉道radau伪谱算法的非线性航迹规划matlab仿真

简介: m基于拉道radau伪谱算法的非线性航迹规划matlab仿真

1.算法概述

    伪谱法,又称为正交配置法,主要利用Lagrange 插值多项式近似离散最优控制问题中的状态变量和控制变量,将连续型最优控制问题转化成离散形式的非线性规划(NLP) 问题,然后利用相应的NLP 算法求解。根据配置点的不同,伪谱法主要分为Legendre伪谱法、Gauss伪谱法 和Radau伪谱法 3 种。

   在本课题中,飞行器的运动方程取为:

1.png

2.部分程序

 
 
    %约束(3个)
    YY1(k) = 0.5*p*a4(k)^2 - qmax;%动压
    YY2(k) = sqrt(L^2 + D^2)/G - nmax;%过载
    YY3(k) = 3.0078*sqrt(p)*a4(k)^3.08 - Qmax;%驻点热流
end
 
%根据映射结果计算L值
for i = 1:K
   for kk=1:Ns
       if kk~=i
          LL(i)=(t-Tao(kk))/(Tao(i)-Tao(kk));
       end
   end
end
for i = 1:K
    Ls(i)=int(LL(i),t,-1,1);
end
Ls = double(Ls);
 
 
%目标方程(1个)
for i = 1:K
    Tmp7(i) = C/sqrt(R)*p^0.5*a4(k)^3.08/(Ls(i)^2);
end    
J = -(tf-t0)/(K*(K+1))*sum(Tmp7);
 
 
 
%%
%六状态
r_line     = zeros(1,K);
Theta_line = zeros(1,K);
Fai_line   = zeros(1,K);
V_line     = zeros(1,K);
Gamma_line = zeros(1,K);
Si_line    = zeros(1,K);
k_         = 0;
CNT        = 0;
for k = 1:K
    CNT = CNT + 1;
    k
    if  k == 1
        Dkl(k,:) = func_D(t0,tf,ts,K,Ns,k);
        %离散状态变量定义为ak
        a1(k)    = r0;
        a2(k)    = Theta0;
        a3(k)    = Fai0;
        a4(k)    = V0;
        a5(k)    = Gamma0;
        a6(k)    = Si0;
        %离散控制变量定义为bk
        b1(k)    = delta0;
        b2(k)    = alpha0;   
        x        = [a1(k) a2(k) a3(k) a4(k) a5(k) a6(k) b1(k) b2(k)];
        
        %将每个网络的最优解方程到过程变量数据中
        %六状态
        r_line(k)                = x(1);
        Theta_line(k)            = x(2);
        Fai_line(k)              = x(3);
        V_line(k)                = x(4);
        Gamma_line(k)            = x(5);
        Si_line(k)               = x(6);          
        
    else    
        %注意,采用radau离散化之后的非线性方程组,没法直接使用fmincon进行求解,这里,我们自己编写了一个优化函数进行计算最优值
        %对控制状态进行循环(fmincon的原理,也是基于如下过程进行的)
 
        nn    = 0;
        mm    = 0;
        alphass = [ 10:Steps:20]/180*pi;
        deltass = [-90:3*Steps:90]/180*pi;
        for alphas = alphass
            mm = 0;
            nn = nn+1;
            for deltas = deltass
                mm=mm+1;
                
                for NN  = 1:N
                    k_= k-1;
                    Dkl(k_,:) = func_D(t0,tf,ts,K,Ns,k_);
                    g = u/a1(k_)^2;
                    p = P*exp(-0.00015*(a1(k_)-Rs));
                    %部分由状态变量决定的参数
                    D = 0.5*p*a4(k_)^2*Sref*(bb0 + bb1*alphas + bb2*alphas^2);
                    L = 0.5*p*a4(k_)^2*Sref*(aa0 + aa1*alphas + aa2*alphas^2);
                    G = m;
                    
                    %状态方程(6个)
                    %公式1
                    a1(k_+1) =  a1(k_)+dtf0*((tf-t0)/2 * a4(k_)*sin(a5(k_)) + a4(k_)*g*sin(1e3*a5(k_)));
                    %公式2
                    a2(k_+1) =  a2(k_)+dtf1*((tf-t0)/2 * a4(k_)*cos(a5(k_))*cos(a6(k_)) / (a1(k_)*cos(a3(k_))));
                    %公式3
                    a3(k_+1) =  a3(k_)+dtf2*((tf-t0)/2 * a4(k_)*cos(a5(k_))*sin(a6(k_)) / (a1(k_)));
                    %公式4
                    a4(k_+1) =  a4(k_)+dtf3*((tf-t0)/2 * (D/m + g*sin(a5(k_))));
                    %公式5
                    a5(k_+1) =  a5(k_)+dtf4*((tf-t0)/2 * (L/m * cos(deltas) -g*cos(a5(k_)) + a4(k_)^2/a1(k_)*cos(a5(k_))))/a4(k_);
                    %公式6
                    a6(k_+1) =  a6(k_)+dtf5*((tf-t0)/2 * (L/m * sin(deltas)/cos(a5(k_)) - a4(k_)^2/a1(k_)*cos(a5(k_))*cos(a6(k_))*tan(a3(k_))))/a4(k_);    
                end
                
                D = 0.5*p*a4(k_+1)^2*Sref*(bb0 + bb1*alphas + bb2*alphas^2);
                L = 0.5*p*a4(k_+1)^2*Sref*(aa0 + aa1*alphas + aa2*alphas^2);
                
                if (0.5*p*a4(k_+1)^2 <= qmax) & (sqrt(L^2 + D^2)/G <= nmax) & (3.0078*sqrt(p)*a4(k_+1)^3.08 <= Qmax) &...
                   (0.5*p*a4(k_+1)^2 > 0) & (sqrt(L^2 + D^2)/G  > 0) & (3.0078*sqrt(p)*a4(k_+1)^3.08  > 0)&...
                    a4(k_+1) >= 1.508 & a4(k_+1) <= V0 & a1(k_+1) <= Rs+80 & a1(k_+1) >= Rs+20;
 
..............................................
02-007m

3.算法部分仿真结果图

2.png

3.png

4.png

相关文章
|
2天前
|
算法 数据安全/隐私保护 计算机视觉
基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
本项目展示了256×256图像通过双线性插值放大至512×512的效果,无水印展示。使用Matlab 2022a和Vivado 2019.2开发,提供完整代码及详细中文注释、操作视频。核心程序实现图像缩放,并在Matlab中验证效果。双线性插值算法通过FPGA高效实现图像缩放,确保质量。
|
2天前
|
算法
基于排队理论的客户结账等待时间MATLAB模拟仿真
本程序基于排队理论,使用MATLAB2022A模拟客户结账等待时间,分析平均队长、等待时长、不能结账概率、损失顾客数等关键指标。核心算法采用泊松分布和指数分布模型,研究顾客到达和服务过程对系统性能的影响,适用于银行、超市等多个领域。通过仿真,优化服务效率,减少顾客等待时间。
|
2天前
|
算法
基于电导增量MPPT控制算法的光伏发电系统simulink建模与仿真
本课题基于电导增量MPPT控制算法,使用MATLAB2022a的Simulink进行光伏发电系统的建模与仿真,输出系统电流、电压及功率。电导增量调制(IC)算法通过检测电压和电流变化率,实时调整光伏阵列工作点,确保其在不同光照和温度条件下始终处于最大功率输出状态。仿真结果展示了该算法的有效性,并结合PWM技术调节逆变流器占空比,提高系统效率和稳定性。
|
1天前
|
算法
基于SOA海鸥优化算法的三维曲面最高点搜索matlab仿真
本程序基于海鸥优化算法(SOA)进行三维曲面最高点搜索的MATLAB仿真,输出收敛曲线和搜索结果。使用MATLAB2022A版本运行,核心代码实现种群初始化、适应度计算、交叉变异等操作。SOA模拟海鸥觅食行为,通过搜索飞行、跟随飞行和掠食飞行三种策略高效探索解空间,找到全局最优解。
|
1天前
|
算法 数据可视化 数据安全/隐私保护
一级倒立摆平衡控制系统MATLAB仿真,可显示倒立摆平衡动画,对比极点配置,线性二次型,PID,PI及PD五种算法
本课题基于MATLAB对一级倒立摆控制系统进行升级仿真,增加了PI、PD控制器,并对比了极点配置、线性二次型、PID、PI及PD五种算法的控制效果。通过GUI界面显示倒立摆动画和控制输出曲线,展示了不同控制器在偏转角和小车位移变化上的性能差异。理论部分介绍了倒立摆系统的力学模型,包括小车和杆的动力学方程。核心程序实现了不同控制算法的选择与仿真结果的可视化。
28 15
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
18小时前
|
算法
基于小波变换和峰值搜索的光谱检测matlab仿真,带GUI界面
本程序基于小波变换和峰值搜索技术,实现光谱检测的MATLAB仿真,带有GUI界面。它能够对CO2、SO2、CO和CH4四种成分的比例进行分析和提取。程序在MATLAB 2022A版本下运行,通过小波分解、特征提取和峰值检测等步骤,有效识别光谱中的关键特征点。核心代码展示了光谱数据的处理流程,包括绘制原始光谱、导数光谱及标注峰值位置,并保存结果。该方法结合了小波变换的时频分析能力和峰值检测的敏锐性,适用于复杂信号的非平稳特性分析。
|
18小时前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
1月前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
1月前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
147 68