matlab减小数据方差,最小方差控制

matlab减小数据方差,最小方差控制各位大神好 根据 matlab 文件编了个相应的 simulink 仿真 但是输出一直发散 该怎么查原因啊 另外各位大神有自适应控制其他的 simulink 仿真吗 可否发我 急需 这是相应的 matlab 代码 最小方差控制 MVC clearall closeall a 1 1 70 7 b 10 5 c 10 2 d 4 对象参数 na length a 1 nb le matlabplot 减小方差

各位大神好,根据matlab文件编了个相应的simulink仿真,但是输出一直发散,该怎么查原因啊,另外各位大神有自适应控制其他的simulink仿真吗?可否发我,急需!这是相应的matlab代码

%最小方差控制(MVC)

clear all; close all;

a=[1 -1.7 0.7]; b=[1 0.5]; c=[1 0.2]; d=4; %对象参数

na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %na、nb、nc为多项式A、B、C阶次

nf=nb+d-1; %nf为多项式F的阶次

L=400; %控制步数

uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i);

yk=zeros(na,1); %输出初值

yrk=zeros(nc,1); %期望输出初值

xik=zeros(nc,1); %白噪声初值

yr=10*[ones(L/4,1);-ones(L/4,1);ones(L/4,1);-ones(L/4+d,1)]; %期望输出

xi=sqrt(0.1)*randn(L,1); %白噪声序列

[e,f,g]=sindiophantine(a,b,c,d); %求解单步Diophantine方程

for k=1:L

time(k)=k;

y(k)=-a(2:na+1)*yk+b*uk(d:d+nb)+c*[xi(k);xik];%采集输出数据

u(k)=(-f(2:nf+1)*uk(1:nf)+c*[yr(k+d:-1:k+d-min(d,nc));yrk(1:nc-d)]-g*[y(k);yk(1:na-1)])/f(1);%求控制量

%更新数据

for i=d+nb:-1:2

uk(i)=uk(i-1);

end

uk(1)=u(k);

for i=na:-1:2

yk(i)=yk(i-1);

end

yk(1)=y(k);

for i=nc:-1:2

yrk(i)=yrk(i-1);

xik(i)=xik(i-1);

end

if nc>0

yrk(1)=yr(k);

xik(1)=xi(k);

end

end

MVC.png

(19.12 KB, 下载次数: 5)

2015-12-25 09:29 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

最小方差

128f590af7a4b668a1a48ce9b9757176.png

今天的文章 matlab减小数据方差,最小方差控制分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2025-01-03 13:11
下一篇 2025-01-03 13:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/100595.html