搜索
您的当前位置:首页正文

计算机控制—史密斯预估器编程

来源:好走旅游网


东南大学能源与环境学院

实 验 报 告

课程名称: 计算机控制概论

实验名称: Smith预估控制实验

院 (系): 能源与环境学院 专 业: 热能与动力专业 姓 名: 李栋 学 号: ******** 实 验 室: 实验组别: 同组人员: 实验时间: 2015 年 04月10 日 评定成绩: 审阅教师:

1

目 录

一、实验目的……………………………………………………………3

二、实验内容……………………………………………………………3

三、实验步骤……………………………………………………………3

四、实验分析…………………………………………………………12

2

Smith预估控制实验

一 实验目的

通过实验掌握Smith预估控制的方法及程序编制及调试。

二 实验内容

1. Smith预估控制系统如图所示,

图一

对象G(S)= K·e-τs / (1+T1S) ,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、对象扰动实验

源程序如下:

#include\"iostream.h\" #include\"math.h\" #include\"fstream.h\"

3

void main() {

}

for(i=0;i*t<100;i++) { }

4

fstream outfile(\"data1.xls\double t; double u0;

cout<<\"请输入采样周期:\"; cin>>t;

cout<<\"请输入阶跃幅值:\"; cin>>u0;

double ee=pow(2.718,(-t/10.0)); int N; int i;

double u[100],y[100]; for(i=0;i<100;i++) { }

N=1+5/t;

for(i=N;i<100;i++) {

y[i]=(1-ee)*u[i-N]+y[i-1]*ee; u[i]=u0; y[i]=0.0;

cout<for(i=0;i*t<100;i++) { outfile<}

outfile<<'\\n'; for(i=0;i*t<100;i++) { outfile<outfile.close();

}

(3)输出结果:

当采样周期T=1,阶跃幅值为1时:

Y(t)输出数据:

0 0 0 0 0.0951532 0.181252 0.259159 0.503379 0.550634 0.593392 0.727431 0.753367 0.776835 0.850402 0.864637 0.877517 0.917894 0.925706 0.932776 0.954936 0.959224 0.963104 0.975267 0.97762

0.97975

0.986425 0.987717 0.988886 0.99255

0.993259 0.9939 0.99448

0.995911 0.9963 0.996652 0.997756 0.997969 0.998162

0.998768 0.998885 0.998991

0 0.329652 0.632082 0.79807

0.889172 0.939172 0.966615 0.981677 0.989943 0.996971 0.998337 0.999087 5

0.393438 0.667091 0.817284 0.899717 0.94496

0.969792 0.98342

0.9909 0.9917660.995006 0.997259 0.998496 0.999174 0

0.451154

0.6987680.83467

0.9092590.950197

0.9726660.984998

0.995481

0.99752

0.9986390.999253

0.999324 0.999388 0.999446 0.999499 0.999547 0.999590.999629 0.999664 0.999696 0.999725 0.999751 0.9997750.999796 0.999816 0.999833 0.999849 0.999863 0.9998760.999888 0.999899 0.999908 0.999917

阶跃响应曲线如下:

图二

2、Smith预估控制

源程序如下:

#include\"iostream.h\" #include\"math.h\" #include\"fstream.h\" void main() {

fstream outfile(\"data1.xls\double t,kp,ki; int t1,k;

cout<<\"请输入Wt(s)中的K:\"; cin>>k;

6

cout<<\"请输入Wt(s)中的迟延时间t:\"; cin>>t1;

cout<<\"请输入采样周期:\"; cin>>t;

cout<<\"请输入PI调节器的参数kp:\"; cin>>kp;

cout<<\"请输入PI调节器的参数ki:\"; cin>>ki;

double ee=pow(2.718,(-t/10.0)); int N,N1; int i;

double r[100],e1[100],e2[100],cm[100],q[100],u[100],y[100]; for(i=0;i<100;i++) { } N=1+5/t; N1=t1/t;

r[i]=1.0; e1[i]=0.0; e2[i]=0.0; u[i]=0.0; y[i]=0.0; cm[i]=0.0; q[i]=0.0;

cout<for(i=0;i<100;i++) {

if(i==0) {

7

}

e1[i]=r[i]; cm[i]=0; q[i]=0;

e2[i]=e1[i]-q[i]; u[i]=kp*e2[i]+ki*e2[i];

if(i>0&&i=N1) {

e1[i]=r[i]-y[i-1];

cm[i]=ee*cm[i-1]+k*(1-ee)*u[i-1]; q[i]=cm[i]-cm[i-N1]; e2[i]=e1[i]-q[i];

u[i]=u[i-1]+kp*(e2[i]-e2[i-1])+ki*e2[i]; if(i>=N) { }

8

e1[i]=r[i]-y[i-1];

cm[i]=ee*cm[i-1]+k*(1-ee)*u[i-1]; q[i]=cm[i]; e2[i]=e1[i]-q[i];

u[i]=u[i-1]+kp*(e2[i]-e2[i-1])+ki*e2[i]; if(i>=N) { }

y[i]=(1-ee)*u[i-N]+y[i-1]*ee;

y[i]=(1-ee)*u[i-N]+y[i-1]*ee;

}

}

}

for(i=0;i*t<100;i++) { }

for(i=0;i*t<100;i++) { }

outfile<<'\\n'; for(i=0;i*t<100;i++) { }

outfile.close();

outfile<(3)输出结果:

以下所涉及到的采样周期均为T=1,PI控制器的参数均为Kp=1,Ki=1; 当Smith预估器中的K=1,延迟时间τ=5时(即与对象的特性完全符合):

Y(t)输出数据:

0 0 0 0 0 0 0.190306 0.421441 0.663641 0.891755

1.08676 1.52761

1.23639 1.46956

1.37128 1.38931

1.47104 1.29344

1.5311 1.549551.18983

1.08567

0.987246 0.89981 0.828799 0.776983 0.745653 0.734524

0.741955 0.765251 0.801257 0.846217 0.896223 0.94745

9

0.996402 1.04011 1.11708

1.10079

1.07631 1.07973

1.1035 1.1209 1.12848 1.05581

1.03093

1.12683

1.0068

0.984919 0.966463 0.952253 0.942744 0.938032 0.937890.941816 0.949101 0.958895 0.970279 0.982333 0.9941951.00511 1.02882

1.01448 1.02561

1.02186 1.02108

1.02698 1.01569

1.02978 1.00987

1.030321.00406

0.998627 0.993893 0.990086 0.98735 0.985745 0.985249

0.985771 0.987163 0.989238 0.991783 0.994581 0.997421.00011 1.00641

1.0025 1.00445 1.00547

1.0059 1.0068 1.00715

1.00293

1.00155

1.0071.00022

1.00428

0.999027 0.998028 0.997269 0.996773

扰动曲线如下:

图三

当Smith预估器中的K=1,延迟时间τ=2时(即与对象的特性不完全符合):

Y(t)输出数据如下:

0 0 0 0 0 0 0.190306 0.421441 0.663641 0.927971

1.21095 2.60123

1.50619 2.63889

1.81053 2.59562

2.08577 2.46564

10

2.31463 2.25095

2.489891.95893

1.59989 1.18774 0.740093 0.277571 -0.176632 -0.598368

-1.286421.99996

-0.963966 -1.25121 -1.44044 -1.51579 -1.4662 -0.977633 -0.547714 -0.0112532 0.610765 1.29164 2.70093 4.80862

3.358 3.93455 4.56351

4.39588

4.71103

4.85464

1.75036

4.11952 3.48712 2.68715

0.716479 -0.367272 -1.44817 -2.47036 -3.37751 -4.11571-4.63639 -4.89916 -4.87439 -4.54543 -3.91026 -2.98249-1.79168 -0.38278 1.18524 8.69603 7.35632

9.55045 5.58704

10.0176 3.47109

2.8415 4.5062 6.09408 10.0494 1.09587

9.61689

7.51855

8.71347

-1.43244 -3.99312

-6.45626 -8.68888 -10.5616 -11.9554 -12.7687 -12.9234-12.3704 -11.0941 -9.11507 -6.49149 -3.31832 0.2752394.13026

8.06445

11.88 15.3731

18.3435

扰动曲线如下:

图四

当Smith预估器中的K=2,延迟时间τ=2时(即与对象的特性不完全符合):

Y(t)输出数据如下:

0 0 0 0 0 0 0.190306 0.385225 0.546344 0.725084

11

0.920371 1.11455 1.7608 1.79027 1.43778

1.30834 1.46909 1.59338 1.69266

1.78227 1.73766 1.66147 1.56021

1.29949 1.15302 1.00558 0.863901 0.734121

0.621319 0.529913 0.463425 0.423874 0.411896 0.4269230.467201 0.529943 0.611457 0.707298 0.812552 0.9221031.03084

1.13389

1.22683

1.30585

1.36793

1.41094

1.4337 1.43598 1.19274 0.75594

1.41848 1.38278 1.33121 1.26672

1.11298 1.03127 0.951381 0.876845 0.810816

0.695977

0.714253 0.687116 0.675179 0.67838

0.726605 0.768367 0.818936 0.875681 0.935797 0.9964341.05484 1.24206 1.07804

1.10845 1.23609 1.03296

1.15505 1.21971

1.19281 1.19405

1.22037 1.16064

1.236891.1213

0.988182 0.945705 0.907359 0.874711

0.820506 0.82755

0.842102

0.849012 0.831146 0.82161

0.863208 0.889656 0.920041 0.952835 0.986462 1.01937

扰动曲线如下:

图五

四 实验分析

当系统是特征方程中含有纯迟延项的时候,系统的闭环稳定性事下降的,当迟延时间

12

τ比较大的时候,系统就会不稳定。因此采用常规的控制是难以使系统获得满意的控制性能的。

理论上,一个被控对象的过程可分为纯迟延环节和Gp(s)(不含有纯迟延项),如果虚拟变量C可用某种方法测量,并作为反馈量连接到控制器,就可以把纯迟项移到闭环的外面。因为在反馈信号中没有迟延,系统的响应将大大得到改善,同时在外回路用第二个反馈构成Smith预估器控制系统,当中的D(s)控制器采用常规的PI或PID控制器。

采用Smith预估器的闭环传递函数为

Y(s)/R(s)=D(S)G(S)/(1+D(s)G(s))* e-τs

在迟延项从闭环特征方程中去掉后,稳定性将得到改善,控制器可整定的更好。实际中,Smith预估器主要用作对过程纯迟延的补偿。

但是,在实际中,对象的特性是很难精确标示出来的,这样就决定了Smith预估器的参数是同对象本身有差别的。若差别很小或没有差别,则对控制效果比较好,没有产生多大的影响如图三所示。但是如果差别很大,预估器反而会使得系统稳定性大大降低,甚至很容易出现不稳定,如图四、五所示,就是这种情况。

13

因篇幅问题不能全部显示,请点此查看更多更全内容

Top