加载中…
  
博文
标签:

杂谈

分类: 程式

早在1968年,美国IBM公司的大林(Dahlin)就提出了一种不同于常规控制规律的新型算法,即大林算法。该算法的最大特点是将期望的闭环响应设计成一阶惯性加纯延迟,然后反过来得到能满足这种闭环响应的控制器。
设被控对象为
采样时间为0.5s,用大林算法设计闭环响应,并用MATLAB进行仿真,同时作出采用普通PID控制算法的图形,与采用大林算法的图形比较,得出结论。

参考程序:

%Delay Control with Dalin Algorithm
clear all;
close all;
ts=0.5;

%Plant
sys1=tf([1],[0.4,1],'inputdelay',0.76);
dsys1=c2d(sys1,ts,'zoh');
[num1,den1]=tfdata(dsys1,'v');

%Ideal closed loop
sys2=tf([1],[0.15,1],'inputdelay',0.76);
dsys2=c2d(sys2,ts,'zoh');

%Design Dalin controller
dsys=1/dsys1*dsys2/(1-dsys2);
[num

标签:

杂谈

分类: 程式

如图所示系统,分别针对以下三种情况加入非线性环节,采用离散相似法进行仿真,适当改变S同时与非线性环节的情况比较。

1)在A处加入饱和非线性环节
2)在A处加入死区非线性环节
3)在B处加入滞环非线性环节

参考程序:

%------filename:satu.m------
function uc=satu(ur,s1)
    if(abs(ur)>=s1)
        if(ur>0)
            uc=s1;
       else uc=-s1;
       end;
    else uc=ur;
end;

%------filename:dead.m------
function uc=dead(ur,s1)
    if(abs(ur)>=s1)
    

标签:

杂谈

分类: 程式

用离散相似法仿真程序重现输出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

标签:

杂谈

分类: 程式

参考程序:
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=[

标签:

杂谈

分类: 程式

1、x'=-x+t,u=t,h=0.1,t=[0,10],在MATLAB语言环境下构造m文件,编写RK4算法程序进行求解,绘图显示运算结果。

参考程序:

x=1;
y=x;
h=0.1;
N=round(10/h);
t=0;
T=0;
for i=1:N
 k1=-x+t;
 k2=-(x+h*k1/2)+t+h/2;
    k3=-(x+h*k2/2)+t+h/2;
 k4=-(x+h*k3/2)+t+h;
 x=x+h*(k1+k2*2+k3*2+k4)/6;
 y=[y,x]
 T=[T,t+h];
 t=t+h;
end
plot(T,y);

参考结果:

2、x'=-x+t,x(0)=1,t=[0,10],h=0.1,调用ode45函数进行求解,绘图显示运行结果;并与上题的仿真结果进行对照;适当改变步长h,观察仿真效果并进行分析。

参考程序:

%--------filename:dep.m---------
function y=dep(t,x)
y=-x+t;

%--------filename:dep2.m--------
clc;

  

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

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

新浪公司 版权所有