资源简介
动态矩阵控制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
相关资源
- rs编译码程序MATLAB
- 无线通信MIMO中STBC的matlab仿真
- 油藏数值模拟matlab代码
- matlab 量子隧穿效应的可视化编程
- 第一范数最小化matlab源代码
- 自适应预测神经网络matlab程序
- 基于小波变换和SVD分解及各种攻击的
- 遗传算法优化BP神经网络matlab程序
- lasso程序,从matlab提取
- Matlab 数字下变频DDC CIC NCO
- AHD算法的matlab实现Bayer转RGB算法
- 深度信息提取
- 基于卡尔曼滤波算法的雷达追踪算法
- 遗传算法优化神经网络的matlab程序
- MATLAB实现BPSK
- MATLAB摄像机标定程序
- matlab基于小波融合的人脸融合
- fsvm的matlab实现
- 采样频率绘制matlab代码
- 基于轮廓提取的多边形近似匹配算法
- 基于matlab代码实现的SVPWM程序
- matlab萤火虫代码
- matlab 附和导线平差
- MATLAB数字信号处理工具箱
- 基于霍夫曼编码实现的图像无损压缩
- matlab可用粒子群工具箱 - PSOt
- matlab资源——NIT工具箱
- 朴素贝叶斯算法matlab实现
- 近邻传播聚类-MATLAB程序
- Camshift跟踪 Matlab实现
评论
共有 条评论