飞行器翼尖加速度和控制面的MPC控制
1、内容简介
略
372-可以交流、咨询、答疑
2、内容说明
clc
close all
clear
% Open file
path = pwd;
pathFull = strcat(path,'\系统状态空间');
addpath(pathFull);
fid = fopen('180.DAT');
disp(['Read file ' '180.DAT'])
% Read and display the header
head=fgetl(fid); disp(head)
V=str2num(head(36:46)); ro=str2num(head(56:66));
% Read dimensions
tmp=fgetl(fid); tmp=sscanf(tmp,'%i');
if length(tmp)==1
n=tmp(1); m=0; l=0;
elseif length(tmp)==3
n=tmp(1); m=tmp(2); l=tmp(3);
else
disp(['FATAL ERROR: File ' filename ' corupt.']); return
end
% Read state-space matrices
ABCD = zeros(n+l,n+m);
ABCD = fscanf(fid,'%g',[n+l,n+m]);
A=ABCD(1:n,1:n);
B=ABCD(1:n,n+1:n+m);
C=ABCD(n+1:n+l,1:n);
D=ABCD(n+1:n+l,n+1:n+m);
% Read gain matrix
if head(74:80)=='VEHICLE'
fgetl(fid);line = fgetl(fid);
G = fscanf(fid,'%g',[m,l]);
else
G = [];
end
% Read gust state-space matrices
%
fgetl(fid);line = fgetl(fid);
if ~isstr(line)
Bw=[]; CG=[]; return
else
nG2= fscanf(fid,'%g',1);
Bw = fscanf(fid,'%g',[n,nG2]);
end
fgetl(fid);line = fgetl(fid);
if ~isstr(line), CG=[]; return,
else CG = fscanf(fid,'%g',[l,nG2]);
end
% %% 建立MPC模型
% sys = ss(A,B,C,D);
% Ts=0.05; % 采样时间
% p=15; % 预测时域长度
% m=2; % 控制时域长度
% MPC1=mpc(sys,Ts,p,m); % 定义M1和M2分离的MPC模型
% % 设置限制,F的大小不能为0,F斜率绝对值最大1000
% MPC1.MV=struct('Min',-1,'Max',1,'RateMin',-1e2,'RateMax',1e2);
% MPC1.OV=struct('Min',-1000,'Max',1000);
% MPC1.OV.MaxECR=1;
%% 建立MPC模型
close all
clc
% sys = ss(A,B,C,D);
% Ts=0.05; % 采样时间
% p=15; % 预测时域长度
% m=5; % 控制时域长度
% MPC1=mpc(sys,Ts,p,m); % 定义M1和M2分离的MPC模型
% % 设置限制,F的大小不能为0,F斜率绝对值最大1000
% MPC1.MV=struct('Min',-1,'Max',1,'RateMin',-1e1,'RateMax',1e1);
% MPC1.OV=struct('Min',-1000,'Max',1000);
% MPC1.OV.MaxECR=1;
sys = ss(A,B,C,D);
Ts=0.05; % 采样时间
p=15; % 预测时域长度
m=5; % 控制时域长度
MPC1=mpc(sys,Ts,p,m); % 定义M1和M2分离的MPC模型
% 设置限制,F的大小不能为0,F斜率绝对值最大1000
MPC1.MV=struct('Min',-1,'Max',1,'RateMin',-1e1,'RateMax',1e1);
MPC1.OV=struct('Min',-10,'Max',10);
MPC1.OV.MaxECR=1;
in = 10;
sim('model_mpc1.slx')
figure
plot(tout,yout(:,1))
xlabel 时间/s
ylabel 翼尖加速度传感器
figure
plot(tout,yout(:,2),tout,yout(:,3))
xlabel 时间/s
ylabel 控制面的偏角
3、仿真分析
4、参考论文
略
飞行器翼尖加速度和控制面的MPC控制相关推荐
- m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量.出口的细胞浓度或生物浓度.基质浓度以及产品浓 ...
- 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第8章-固定翼飞行器的编队跟踪与姿态调节一体化控制
第7章 回到目录 第9章 第8章-固定翼飞行器的编队跟踪与姿态调节一体化控制 8.1 引言 8.2 模型介绍及问题描述 8.2.1 固定翼飞行器模型介绍 8.2.2 气动参数的近似化 8.2.3 编队 ...
- 机翼翼尖_我所理解的流体力学 | 闲话翼尖涡
这是<我所理解的流体力学>第2版封面上的图,显示的是飞机的翼尖涡产生的效果. 01 导读 本文主要讨论一下飞机的翼尖涡相关的流动现象.该篇流体力学科普文章,虽然是科普,但也涉及较为深入的流 ...
- MPC控制学习笔记——输入权重对系统控制的影响
起因:在学习MPC控制过程中,根据一个例题,验证了所学算法 例题:使用MPC控制一个简单的一阶系统 系统1: x(k+1)=0.8x(k)+0.1u(k)y(k)=x(k)x(k + 1) = 0.8 ...
- 学习随笔#15 MPC控制MATLAB代码详解
MPC控制的详细数学推导可以参照文章:一个MPC详细建模的例子.MATLAB/SIMULINK中自带有MPC相关的工具,但本文给出MPC控制的MATLAB程序. function [M, C, Q ...
- 关于前面介绍过的MPCC控制改为使用Yalmip解算器解以及MPC控制的一点想法
最近看了许多关于MPC控制相关的资料,许多好的方法感兴趣的可以到我的哔哩哔哩视频看看:Imitation Learning from MPC for Quadrupedal Multi-Gait Co ...
- 百度Apollo5.0控制模块代码学习(八)MPC控制
1 序言 对MPC控制算法,参照论文<Model Predictive Control of a Mobile Robot Using Linearization>进行整理.其中很多内容还 ...
- 使用Vue里面的ref 控制DOM元素的样式marginleft,marginLeft的只是变化了,但是视图没有变化,求解答
使用Vue里面的ref 控制DOM元素的样式marginleft,marginLeft的只是变化了,但是视图没有变化,求解答 <template><div><div cl ...
- Field-Oriented Control (FOC) 矢量控制 磁场定向控制
永磁同步电机(PMSM, Permanent Magnet Synchronous Motor)由于它噪声小.高效节能的显著优势,广泛被用于新能源汽车.机器人伺服和家电等领域. 上图是一个 PMSM ...
最新文章
- STM32-I2C总线驱动程序分析
- 《C# WinForM 实践开发教程》案例×××(2)
- Cflow使用具体解释
- 【资料】wpcap.dll/Packet.dll库中相应函数
- Docker 容器技术 — Swarm 集群
- 理解Tomcat架构、启动流程及其性能优化
- Cocos2d-x 寻路算法解析(一): 距离优先
- python将字符串写入csv_用Python将字符串值写入CSV文件
- Cognos访问权限之让拒绝更友善
- 不继承Controller,就不能用fetch()函数
- 力扣刷题(347. 前 K 个高频元素)快速排序
- “Vidalia tor privoxy”配置自动启动
- C语言的程序是由什么组成
- 桌面视频录制软件有哪些?怎么简单又快地录制视频?
- 印度小伙花不到10美元自制智能眼镜
- 常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不是星形拓扑结构,但现在却改为使用星形拓扑结构?
- 【ES】ES搜索结果中各个字段介绍,hits,took,timeout
- 【资料分享】智能车比赛 - 硬件调教
- Java web 服务器 搭建_搭建一个java web服务端
- Integer128==128?false
热门文章
- 贝叶斯--旧金山犯罪分类预测和电影评价好坏 demo
- 基于冲突搜索的多机器人路径规划(Matlab代码实现)
- 论文翻译:Two-Stream 3D Convolutional Neural Network for Human Skeleton-Based Action Recognition
- python开源报表系统详细操作流程_手把手教你实现自动化报表系统
- 设置ASP.NET MVC站点默认页
- 素数——C语言简易方法
- 不小心把手机里的照片删了怎么恢复
- CountDownLatch 导致主线程一直等待的问题
- python调用pygame_python使用pygame模块实现坦克大战游戏
- Python如何在main中调用函数内的函数