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控制相关推荐

  1. m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量.出口的细胞浓度或生物浓度.基质浓度以及产品浓 ...

  2. 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第8章-固定翼飞行器的编队跟踪与姿态调节一体化控制

    第7章 回到目录 第9章 第8章-固定翼飞行器的编队跟踪与姿态调节一体化控制 8.1 引言 8.2 模型介绍及问题描述 8.2.1 固定翼飞行器模型介绍 8.2.2 气动参数的近似化 8.2.3 编队 ...

  3. 机翼翼尖_我所理解的流体力学 | 闲话翼尖涡

    这是<我所理解的流体力学>第2版封面上的图,显示的是飞机的翼尖涡产生的效果. 01 导读 本文主要讨论一下飞机的翼尖涡相关的流动现象.该篇流体力学科普文章,虽然是科普,但也涉及较为深入的流 ...

  4. MPC控制学习笔记——输入权重对系统控制的影响

    起因:在学习MPC控制过程中,根据一个例题,验证了所学算法 例题:使用MPC控制一个简单的一阶系统 系统1: x(k+1)=0.8x(k)+0.1u(k)y(k)=x(k)x(k + 1) = 0.8 ...

  5. 学习随笔#15 MPC控制MATLAB代码详解

      MPC控制的详细数学推导可以参照文章:一个MPC详细建模的例子.MATLAB/SIMULINK中自带有MPC相关的工具,但本文给出MPC控制的MATLAB程序. function [M, C, Q ...

  6. 关于前面介绍过的MPCC控制改为使用Yalmip解算器解以及MPC控制的一点想法

    最近看了许多关于MPC控制相关的资料,许多好的方法感兴趣的可以到我的哔哩哔哩视频看看:Imitation Learning from MPC for Quadrupedal Multi-Gait Co ...

  7. 百度Apollo5.0控制模块代码学习(八)MPC控制

    1 序言 对MPC控制算法,参照论文<Model Predictive Control of a Mobile Robot Using Linearization>进行整理.其中很多内容还 ...

  8. 使用Vue里面的ref 控制DOM元素的样式marginleft,marginLeft的只是变化了,但是视图没有变化,求解答

    使用Vue里面的ref 控制DOM元素的样式marginleft,marginLeft的只是变化了,但是视图没有变化,求解答 <template><div><div cl ...

  9. Field-Oriented Control (FOC) 矢量控制 磁场定向控制

    永磁同步电机(PMSM, Permanent Magnet Synchronous Motor)由于它噪声小.高效节能的显著优势,广泛被用于新能源汽车.机器人伺服和家电等领域. 上图是一个 PMSM ...

最新文章

  1. STM32-I2C总线驱动程序分析
  2. 《C# WinForM 实践开发教程》案例×××(2)
  3. Cflow使用具体解释
  4. 【资料】wpcap.dll/Packet.dll库中相应函数
  5. Docker 容器技术 — Swarm 集群
  6. 理解Tomcat架构、启动流程及其性能优化
  7. Cocos2d-x 寻路算法解析(一): 距离优先
  8. python将字符串写入csv_用Python将字符串值写入CSV文件
  9. Cognos访问权限之让拒绝更友善
  10. 不继承Controller,就不能用fetch()函数
  11. 力扣刷题(347. 前 K 个高频元素)快速排序
  12. “Vidalia tor privoxy”配置自动启动
  13. C语言的程序是由什么组成
  14. 桌面视频录制软件有哪些?怎么简单又快地录制视频?
  15. 印度小伙花不到10美元自制智能眼镜
  16. 常用的局域网的网络拓扑有哪些种类?现在最流行的是哪种结构?为什么早期的以太网选择总线拓扑结构而不是星形拓扑结构,但现在却改为使用星形拓扑结构?
  17. 【ES】ES搜索结果中各个字段介绍,hits,took,timeout
  18. 【资料分享】智能车比赛 - 硬件调教
  19. Java web 服务器 搭建_搭建一个java web服务端
  20. Integer128==128?false

热门文章

  1. 贝叶斯--旧金山犯罪分类预测和电影评价好坏 demo
  2. 基于冲突搜索的多机器人路径规划(Matlab代码实现)
  3. 论文翻译:Two-Stream 3D Convolutional Neural Network for Human Skeleton-Based Action Recognition
  4. python开源报表系统详细操作流程_手把手教你实现自动化报表系统
  5. 设置ASP.NET MVC站点默认页
  6. 素数——C语言简易方法
  7. 不小心把手机里的照片删了怎么恢复
  8. CountDownLatch 导致主线程一直等待的问题
  9. python调用pygame_python使用pygame模块实现坦克大战游戏
  10. Python如何在main中调用函数内的函数