加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

系统仿真/连续系统结构图离散相似法MATLAB语言描述

(2008-05-26 23:00:00)
标签:

杂谈

分类: 程式

系统仿真/连续系统结构图离散相似法MATLAB语言描述

用离散相似法仿真程序重现输出Y1的数据和曲线,并与四阶龙格一库塔法比较精度。

参考程序:

P=[1 0.01 1 0;0 0.085 1 0.17;1 0.01 1 0;0 0.051 1 0.15;
    1 0.0067 70 0;1 0.15 0.21 0;0 1 130 0;1 0.01 0.1 0;1 0.01 0.0044 0];
WIJ=[1 0 1;2 1 1;2 9 -1;3 2 1;4 3 1;4 8 -1;5 4 1;6 5 1;6 7 -0.212;7 6 1;8 6 1;9 7 1];
n=9;
Y0=1;
Yt0=[0 0 0 0 0 0 0 0 0];
h=0.001;
T=0;
T0=0;
Tf=5;
Nout=7;
A=P(:,1);B=P(:,2);
C=P(:,3);D=P(:,4);
m=length(WIJ(:,1));
W0=zeros(n,1);W=zeros(n,n);
for k=1:m
    if (WIJ(k,2)==0);W0(WIJ(k,1))=WIJ(k,3);
    else W(WIJ(k,1),WIJ(k,2))=WIJ(k,3);
    end;
end;
for i=1:n
    if(A(i)==0);
        FI(i)=1;
        FIM(i)=h*C(i)/B(i);
        FIJ(i)=h*h*C(i)/B(i)/2;
        FIC(i)=1;FID(i)=0;
        if(D(i)~=0);
            FID(i)=D(i)/B(i);
        else
        end;
    else
        FI(i)=exp(-h*A(i)/B(i));
        FIM(i)=(1-FI(i))*C(i)/A(i);
        FIJ(i)=h*C(i)/A(i)-FIM(i)*B(i)/A(i);
        FIC(i)=1;FID(i)=0;
        if(D(i)~=0);
            FIM(i)=(1-FI(i))*D(i)/A(i);
            FIJ(i)=h*D(i)/A(i)-FIM(i)*B(i)/A(i);
            FIC(i)=C(i)/D(i)-A(i)/B(i);
            FID(i)=D(i)/B(i);
        else
        end;
    end;
end;
Y=zeros(n,1);X=Y;y=0;Uk=zeros(n,1);Ub=Uk;
t=T0:h:Tf;N=length(t);
for k=1:N-1
    Ub=Uk;
    Uk=W*Y+W0*Y0;
    Udot=(Uk-Ub)/h;
    Uf=2*Uk-Ub;
    X=FI'.*X+FIM'.*Uk+FIJ'.*Udot;
    Y=FIC'.*X+FID'.*Uf;
    y=[y,Y(Nout)];
end;
plot(t,y)

参考结果:

系统仿真/连续系统结构图离散相似法MATLAB语言描述

结果比较:

系统仿真/连续系统结构图离散相似法MATLAB语言描述

离散相似法(蓝色),四阶龙格一库塔法(红色)。

────────────
  北京信息科技大学自动化学院“控制系统数字仿真与CAD”实验内容,仅供参考

系统仿真/连续系统结构图离散相似法MATLAB语言描述

08.05.26最后更新

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有