m基于神经网络的飞机垂直尾翼振动主动控制系统matlab仿真,包括系统辨识和在线控制

news/2024/11/29 21:45:09/

目录

1.算法仿真效果

2.MATLAB核心程序

3.算法涉及理论知识概要

4.完整MATLAB


1.算法仿真效果

matlab2022a仿真结果如下:

 

2.MATLAB核心程序

..........................................................................%定义期望输出
r = Out;parameter;% while Iter < Max_iter
u_delay1 = 0;
u_delay2 = 0;
u_delay3 = 0;
u_delay4 = 0;
y_delay1 = 0;
y_delay2 = 0;
y_delay3 = 0;   
y_delay4 = 0;
Err_tmp  = 0;
for k=1:All_LengthData_Delays = [y_delay1;y_delay2;y_delay3;u_delay2;u_delay3;u_delay4];%学习[Y_hidden(k),Hidden1G,Hidden2G,Y_hiddenG(k),Hidden1F,Hidden2F,Y_hiddenF(k)] = func_Hiddern(Data_Delays,u_delay1,Num_Hidden,G_wight_In,G_wight_Inb,G_wight_Out,G_wight_Outb,F_wight_In,F_wight_Inb,F_wight_Out,F_wight_Outb);%根据r计算u           u(k) = func_r_u_g0f0(r(k),Y_hiddenG(k),Y_hiddenF(k));%根据辨识结果,计算输出yLyL(k) = func_Hiddern2(u_delay1,Num_Hidden,G_wight_In0,G_wight_Inb0,G_wight_Out0,G_wight_Outb0,F_wight_In0,F_wight_Inb0,F_wight_Out0,F_wight_Outb0);Err_tmp(k) = yL(k) - r(k);%F和G网络 %G神经网络计算[dg_weight_in,dg_bweight_in,dg_weight_out,dg_bweight_out] = func_G_net(Err_tmp(k),Out(k),In(k),Y_hidden(k),G_wight_Out,Hidden2G,Data_Delays,Y_hiddenG(k),Hidden1G,Num_Hidden,Num_In); %F神经网络计算[df_weight_in,df_bweight_in,df_weight_out,df_bweight_out] = func_F_net(Err_tmp(k),Out(k),In(k),Y_hidden(k),F_wight_Out,Hidden2F,Data_Delays,Y_hiddenG(k),Hidden1F,Num_Hidden,Num_In);%G网络权值更新[G_wight_In,G_wight_Out,G_wight_Inb,G_wight_Outb]=func_G_W_updata(Learn_Rate,alpha,...G_wight_In1,G_wight_Out1,G_wight_Inb1,F_wight_Outb1,...dg_weight_in,dg_weight_out,dg_bweight_in,dg_bweight_out,...G_wight_Outb1,...G_wight_In2,G_wight_Out2,G_wight_Inb2,G_wight_Outb2);%F网络权值更新[F_wight_In,F_wight_Out,F_wight_Inb,F_wight_Outb]=func_F_W_updata(Learn_Rate,alpha,...G_wight_In1,F_wight_Out1,F_wight_Inb1,F_wight_Outb1,...df_weight_in,df_weight_out,df_bweight_in,df_bweight_out,...G_wight_In2,F_wight_Out2,F_wight_Inb2,F_wight_Outb2);%延迟u_delay4 = u_delay3;u_delay3 = u_delay2;u_delay2 = u_delay1;u_delay1 = In(k); y_delay4 = y_delay3;y_delay3 = y_delay2;y_delay2 = y_delay1;y_delay1 = r(k); G_wight_In2   = G_wight_In1;G_wight_In1   = F_wight_In;F_wight_Out2  = F_wight_Out1;F_wight_Out1  = F_wight_Out;F_wight_Inb2  = F_wight_Inb1;F_wight_Inb1  = F_wight_Inb;F_wight_Outb2 = F_wight_Outb1;F_wight_Outb1 = F_wight_Outb;G_wight_In2   = G_wight_In1;G_wight_In1   = G_wight_In;G_wight_Out2  = G_wight_Out1;G_wight_Out1  = G_wight_Out;G_wight_Inb2  = G_wight_Inb1;G_wight_Inb1  = G_wight_Inb;G_wight_Outb2 = G_wight_Outb1;G_wight_Outb1 = G_wight_Outb;
endfigure; 
subplot(121);
plot(r(end-1300:end),'b'); 
xlabel('Times(s)');
ylabel('Out'); 
hold on;
plot(yL(end-1300:end),'r--'); 
xlabel('Times(s)');
ylabel('Out'); 
legend('原始输出','控制后输出');
.............................................................................
08_016_m

3.算法涉及理论知识概要

         飞机垂直尾翼的持续涡流载荷会导致垂直尾翼的疲劳损伤,影响飞行器的飞行性能和飞行 安全,因此对尾翼进行振动主动控制是非常有必要的。以某型飞行器50%的垂尾模型为研 究对象,针对垂尾结构控制系统的不确定性和非线性等复杂特性,开展了基于人工神经网络的 垂尾结构控制系统的非线性振动模型辨识和振动主动控制研究和实验。 

       近年来,神经网络的研究得到了越来越多的关注和重视,神经网络以其独特的结构和信息 处理方法,已在系统辨识、信号处理、自动控制与人工智能等领域得到了实际应用。本章介绍 了人工神经网络的构成原理、BP网络和BP算法、神经网络系统辨识理论以及神经网络控制理 论,为神经网络在飞机垂尾模型智能结构振动主动控制系统中的应用奠定基础。 人工神经网络(Artificial Neural Network,简写为ANN),亦称为神经网络(Neural Network, 简写为NN),是由大量简单的处理单元(称为神经元或节点)互相连接而形成的复杂网络系统, 它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。  每个神经元代表一种特定的输出函数,称为传递函数。各神经元之间相互连接形成一个网 络拓扑,不同的神经网络模型对拓扑结构与互联模式都有一定的要求和限制。在每对神经元之 间的连接上还作用一个加权系数,这个加权系数起着生物神经系统中神经元突触强度的作用, 通常称之为连接权值。在神经网络中,连接权值可以根据经验或学习而改变,修改权值的规则 称为学习算法或学习规则。一个神经网络模型描述了一个网络如何将它的输入矢量转化为输出 矢量的过程。通常,神经网络模型的神经元特性、拓扑结构和学习算法是决定神经网络功能特 性的三大要素。 

一:离线辨识       

        这个部分,主要是通过给定模型的输入和输出,然后通过网络进行训练,得到神经网络的辨识参数。对于网络辨识部分,其基本构架如下所示:

         上述的辨识结构,通过控制对象的输入和输出的延迟分别进入F网络和G网络,然后通过网络输出和实际输出的误差对网络F和网络G进行在线学习。

二:在线控制    

        这个部分主要理论为论文第四章。理论论文已经有介绍了,这里就不做叙述。其基本结构如下所示:

       根据以上所述,设计的控制方法主要具有三大特点:  1) 计算量相对较小,适合快速实时控制系统。  2) 辨识器中的神经网络NARMA-L2模型,用离线训练方式得到, 训练方式上可以选择任意的学习批处理算法,本文采用的是Levenberg-Marquardt算法。 3) 控制系统中具有唯一的在线训练部分,即神经网络控制器的一个前馈通道,控制器对神经 网络系统模型进行重新调整。 

4.完整MATLAB

V


http://www.ppmy.cn/news/895352.html

相关文章

ArduPilot — V-Tail Planes

文章目录 1 配置和设置 2 伺服功能与反向 3 确认RC遥控器输入 4 ATail Planes 5 舵机微调 6 舵机行程 7 混控增益 8 最终设置 传统升降舵和方向舵的一个常见替代品是V型尾翼&#xff0c;或者ATail&#xff08;倒置的V型尾翼&#xff09;。 V型尾翼飞机的功能与标准飞机相同&am…

第09章 网格划分自我附加练习-3 :汽车尾翼网格划分以及分析:

汽车尾翼网格划分以及分析 &#xff08;一些操作在往期博客ansys workbench 版面中有具体介绍&#xff09; sw中网格划分如图所示&#xff1a; 为了显示出 边界层 &#xff0c;专门对尾翼周围切分出薄薄的一层&#xff1a; 网格划分&#xff1a; face meshing 是为了使网格排…

手抛飞机大改装(4种机型,7种改法)干货!!

首先致敬手抛飞机的设计师&#xff0c;飞机设计的太棒了&#xff0c;站在巨人的肩膀果然很爽 作者电子专业毕业&#xff0c;对空气动力学一无所知&#xff0c;自从迷上航模就开始在手抛飞机做文章&#xff0c;前后共改过16架手抛飞机&#xff0c;超小型的&#xff0c;小型的&a…

三角翼航模尾翼混控原理探索

最近几天突然想自己diy一个航模——三角翼航模。在研究三角翼的姿态控制的时候&#xff0c;涉及到了混控的知识&#xff0c;我在网上找了好久也找不到相关的原理介绍&#xff0c;或者具体的算法。要么就是让你看遥控器的说明书进行相关设置&#xff0c;要么就是随意敷衍几句&am…

【Java AWT 图形界面编程】在 Canvas 画布中绘制箭头图形 ( 数据准备 | 几个关键的计算公式 | 绘制箭头直线和尾翼 )

文章目录 一、在 Canvas 画布中绘制箭头图形 - 要点分析1、数据准备2、绘制直线3、绘制箭头尾翼 二、代码示例 一、在 Canvas 画布中绘制箭头图形 - 要点分析 1、数据准备 绘制箭头时 , 先设置一条直线的起始点和终止点 , 箭头绘制在该线段上 ; /*** 起始点 X, Y 坐标* 终止点 …

固定翼无人机结构分类

一、固定翼无人机常见的气动布局 常规布局 常规布局就是水平尾翼在主翼之后&#xff0c;有一个或者两个垂危的气动布局方式。这种布局技术最成熟&#xff0c;理论研究已经非常完善&#xff0c;生产技术也成熟而稳定&#xff0c;同其他气动布局相比各项性能比较均衡。只是由于…

【C++11】包装器 和 bind函数 的定义与 使用

包装器 在C11标准中&#xff0c;没有提供内置的包装器功能&#xff0c;但我们可以使用一些技术手段来实现包装器的效果。下面介绍两种常用的方法&#xff1a; 函数对象包装器 函数对象包装器&#xff08;Function Object Wrapper&#xff09;&#xff1a; C11引入了 std::fu…

[MySql]表的增删查改

目录 前言: 1.插入数据 2.查询数据 2.1全列查询 2.2指定查询 2.3别名 2.4去重 2.5排序 2.6条件查询 2.7聚合查询 2.7.1group by语句 2.7.2havin语句 2.8联合查询 2.8.1内连接 2.8.2外连接 2.8.3自连接 2.8.4子查询 3.修改 4.删除 前言: 本次大多数使用…