Smith预估控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
东南大学能源与环境学院
实验报告
课程名称:计算机控制及系统
实验名称:Smith预估控制
院(系):能源与环境学院专业:热能与动力工程
姓名:学号:*******
实验室:金智楼实验时间:2014 年04月07 日评定成绩:审阅教师:
一 实验目的
通过实验掌握Smith 预估控制的方法及程序编制及调试。
二 实验内容
1. Smith 预估控制系统如图所示,
对象G(S)= K ·e
-τs
/ (1+T 1S)
,K = 1, T1 = 10 s , τ = 5 s ,
Wc(z)采用数字PI 控制规律。
2.对象扰动实验
画出U(t) = u0·1(t)时,y(t)曲线。
3.Smith 预估控制
(1) 构造W τ(S),求出W τ(Z)。 (2) 整定Wc(s)(按什么整定?) (3) 按图仿真,并打印曲线。
(4) 改变W τ(S)中K ,τ(对象不变),进行仿真比较,观察它们对调节 过程的影响。
三 实验步骤 1.拟订实验方案
(1)、对象扰动实验,G(S)离散化,采用后向差分
1()()()(1)
s
Y s K e G s U s T s τ-•==
+ 令 11z s T --= 则有:
y(k)u(k)=K ∙e
−τT lnz 1+T1T
(1−Z −1)
整理得:
11()(1)()TKu k N T y k y k T T -+-=
+ 其中 N T
τ
=
#include
#include
void main()
{
ofstream ofile("d:\\21.xls");
ofile<<"T"<<'\t'<<"u[k]"<<'\t'<<"y[k]"<<'\n';
double u0,T,T1=10,a,b,t=5,k=1;
double u[100],y[100];
int N,i;
cout<<"输入采样周期T:\n";
cin>>T;
cout<<"输入扰动阶跃值u0:\n";
cin>>u0;
a=exp(-T/T1);
b=k*(1-a);
N=int(t/T);
cout<<'\n';
cout<<"T"<<'\t'<<"u[k]"<<'\t'<<"y[k]"<<'\n';
cout<<'\n';
cout<<0<<'\t'<<0<<'\t'<<0<<'\t'<<'\n';
for(i=0;i<100;i++)
{
if(i==0)
u[i]=0;
else
u[i]=u0*1;
if(i<=(N+1))
y[i]=0;
else
y[i]=b*u[i-(N+1)]+a*y[i-1];
ofile<
cout<
}
o();
}
(2)、Smith 预估控制
按照Smith 的控制,构造1(1)
()(1)(1)
Ts s t K e W s e s T s τ---=-+
对其离散化得:111
1()(1)1N
t b z W z z a z
---=-- 其中 11T
T a e -=, 11(1)b K a =- N T
τ
≈
取整数。
按照连续系统的临界比例带法整定()c W s ,整定时不考虑()t W s ,只考虑外面的反馈回路: 设外回路的传递函数'
1()1p s k K G s e T s
τ-=
+,将s jw =
代入传递函数,在临界震荡的情况下有:
1(arctan )j T k K e e τωωπ
-+-=,即:
1arctan T ωπτω=-
1k K =
求解得 0.367318ω=, 3.8069u k =,故217.1055u T π
ω
=
=, 1.73042.2u p k k =
=,14.25451.2
u i T
T ==。
按照整定的结果仿真,Smith 预估控制的算法步骤如下:
11121220
211
()()()
()(1)(1)()()()
()()()(){()()}
()()
(1)m m m m k
p j i
e k r K y k C k a C k b u k q k C k C k N e k e k q k T
u k k e k e j T T y k KT u k N y k T T ==-=-+-=--=-=+
+-+=
+∑
#include
double ZD(double t,double T,double T1) { double w,w1,d; int i; w=0; for(i=0;i<100;i++) { d=(T/2+T1)/(1-T1*T/2*w*w);
w1=(3.14-atan(d))/t;