资源简介
动态矩阵控制matlab仿真程序,以一阶惯性加纯滞后为仿真对象,可以自己修改为其它对象。

代码片段和文件信息
clear all;
clc;
close all;
d=35;
A=[1.6375 -0.6703];
num=[0.0350 0.0307];
B=[zeros(1d) num];
den=[1 -A zeros(1d-1)];
P=tf(numden0.2)
Ap=A;Bp=B;
na=size(Ap2);
nb=size(Bp2);
y_ant=zeros(1na);
u_ant=zeros(1nb);
N=80; %模型长度
g=step(PN);
dulib=zeros(1N);
p=60; %预测时域
m=3; %控制时域
G=zeros(pm);
G(:1)=g(1:p);
for i=2:m
ga=[zeros(1i-1) g(1:p-i+1)‘];
G(:i)=ga‘;
end
%--------define simulation---------------
puntos=1000; %仿真结束时间
lambda=1; %控制量加权
Mn=(G‘*G+lambda*eye(m));
Mn1=inv(Mn)*G‘;
qn=Mn1(1:);
u=zeros(1puntos);
yp=zeros(1puntos);
ypr=zeros(1puntos);
w=[zeros(15) 0.5*ones(1puntos-5)];
af=0.1; %输入滤波系数越小性能越好
r=filter((1-af)[1 -af]w);
%--------inicialization-------------------
inc_u=0;
for k=1:puntos
yp(k)=Ap*y_ant‘+Bp*u_ant‘;
%----add a disturbance at the output
if k>100
ypr(k)=yp(k)-0.1;
else
ypr(k)=yp(k);
end
%----actualization of the output
if na==1
y_ant=yp(k);
else
aux_y=y_ant(1:na-1);
y_ant=[yp(k) aux_y];
end
%----computes prediction for DMC
f=zeros(1p);
for kk=1:p
for i=1:N-p
vect_g(i)=g(kk+i)-g(i);
end
for i=N-p+1:N
vect_g(i)=g(N)-g(i);
end
f(kk)=ypr(k)+vect_g*dulib‘;
end
ref=r(k)*ones(1p)‘;
inc_u=qn*(ref-f‘);
if k==1
u(k)=inc_u;
else
u(k)=u(k-1)+inc_u;
end
%actualization for control vector
aux_u=u_ant(1:nb-1);
u_ant=[u(k) aux_u];
%actualization dulib
aux_2=dulib(1:N-1);
dulib=[inc_u aux_2];
end
%------plot-------
nm=puntos;
h=subplot(211);
for i=1:nm
t(i)=0.2*i;
end
plot(t(1:nm)w(1:nm)‘-.‘t(1:nm)ypr(1:nm)‘-‘‘LineWidth‘1.5);
title(‘Output of the process‘);
legend(‘r‘‘DMC‘‘Location‘‘SouthEast‘);
xlabel(‘time(s)‘‘FontSize‘12);
ylabel(‘ry‘‘FontSize‘12);
axis([0 50 -0.1 0.7]);
set(h‘FontSize‘12);
grid on;
h=subplot(212);
plot(t(1:nm)u(1:nm)‘-‘‘LineWidth‘1.5);
title(‘Control Action of the process‘);
xlabel(‘time(s)‘‘FontSize‘12);
ylabel(‘u‘‘FontSize‘12);
axis([0 50 -0.5 0.5]);
set(h‘FontSize‘12);
grid on;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2338 2018-06-04 14:13 DMC.m
- 上一篇:无线通信MIMO中STBC的matlab仿真
- 下一篇:rs编译码程序MATLAB
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论