最小二乘法设计报告.docx
- 文档编号:29511308
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:23
- 大小:1,018.67KB
最小二乘法设计报告.docx
《最小二乘法设计报告.docx》由会员分享,可在线阅读,更多相关《最小二乘法设计报告.docx(23页珍藏版)》请在冰豆网上搜索。
最小二乘法设计报告
IFOPTD建模及PID调节器设计
摘要:
本文利用被控对象的脉冲响应函数对系统进行建模,利用了3种不同的方法一一最小二乘法、切线法、MATLAB^置函数法,求出了3种不同的模型,并就脉冲响应曲线、Bode图、Nquist曲线3个方面对比了原被控对象和3种不同的模型。
禾用其中的一种模型设计了PI、PID调节器,与被控对象的模型一起构成了一个闭环系统,使得原被控对象的稳定性、快速性等有了很大的提高,并给出了校正后的系统在参考输入的阶跃响应的性能指标,在扰动输入下的阶跃响应的性能指标,进行了PI调节器和PID调节器的调节性能比较。
关键词:
最小二乘法切线法PID调节器性能指标
Abstract:
Inthischapter」usetheimpulseresponseofthesystem
toestablishthemodelofthesystemby3differentmethods,theleastsquaresmethod,thetangentmethod,MATLABbuilt-infunctionmethod.Icomparetheoriginaobjectandthe3modelsinimpulseresponse,theBodediagram,theNyquistcurve.Byutilizingoneofthethreemodels,IdesignthePI,PIDregulatortoformaclosed-loopsystem,improvingthestabilityandthespeedoftheoriginalsystem.Besides,Igivetheperformaneeindexofthecorrectsystemunderunitsteprefereneeinputandunitstepdisturbanee
input.Lastly,IcomparethedifferenteffectofPIregulatorandPIDregulator.
Keywords:
leastsquaresmethodtangentmethodPIDregulatorperformaneeindex
1引言
在控制系统的分析和设计中,首先要建立系统的数学模型【1】。
控制系统的数学
模型是描述系统内部物理量之间关系的数学表达式。
建立控制系统数学模型的方法有机理分析法和系统辨识法。
当用机理法建模比较困难,或者用机理法建立的模型比较复杂时,可以用系统的脉冲响应或阶跃响应将系统简化成典型系统。
利用对典型系统的研究对实际系统进行校正。
控制工程中的被控对象,绝大多数可以用积分加一阶惯性滞后环节(IFOPTD对其进行建模。
本文根据实际系统的脉冲响应曲线,采用了最小二乘法,过程控制中的切线法,MATLAB^的内置函数,3种不同的方法,建立了被控对象的IFOPTD模型,并利用公式求解出了控制器参数,分析了控制后的闭环系统的性能。
2最小二乘法建模过程及分析
2.1最小二乘法原理
对象的脉冲响应函数属于非参数模型11】。
当系统的输入为u(t),系统的脉冲响应函数为g(t),测量过程中噪声是v(t),是一个平稳随机过程,则混有噪声的系统输出可以表示为
k
y(kT)二'g(kT-iT)u(iT)v(kT)(2.1)
i±_p
k取不同值时对应不同时刻的输出。
上式还可以表示为
Y-UGV(2.2)
为估计出未知参数向量G,若系统的随机噪声v为0,即可以从上述矩阵中得到G的解为
G=U4Y(2.3)
这里要求U的逆阵U'是存在的,G为G的估计值。
然而实际系统中存在噪声,为了在这种情况下估计出来未知参数,可以采用最小二乘法,它能在最小方差意义上与实验数据获得最好的拟合。
定义向量V,则从(2.2)中可得
(2.4)
V二Y-UG
若测得一组脉冲响应G={g},使下列误差指标J相对于G趋于最小:
Pm
(2.5)
J八VTV=(Y—UG)t(Y—UG)二yty—GtUtY—YtUGgtutug
iH?
可将J对G微分,并令其为0,则可得到使J趋于最小的估计G,即:
从而可以解出G:
IFOPTD模型的传递函数为
Att
令A(t)=.0gm()d,B(t)「0gm()d,则
由式(2.13),(2.14),(2.15),(2.16),借助Matlab【2】(程序代码见附录)即可求出G,
求得
由此可以得出两组估计值:
得出2种被控对象的等效模型:
G1(s)二
2.593eq687s
s(1.501s1)
G2(s)
2.593e°594s
s(1.501s1)
2.3对比原系统和等效模型的特性
2.3.1单位脉冲响应
借助Matlab,求解出被控对象及模型的单位脉冲响应,对比如图2.1:
图2.1被控对象和等效模型脉冲响应对比
由图可以对比出,利用最小二乘法拟合的效果还是不错的。
在本例中,观察到模型1的拟合效果比模型2略好,所以下面都采用模型1作分析。
2.3.2Nyquist图和Bode图
2.3.3
图2.2被控对象和等效模型Bode图对比
图2.3被控对象和等效模型Bode图对比
由图2.3可以看出,被控对象和等效模型都是不稳定的。
被控对象的Gainmargin为-5.57db,Phasemargin为-31.9相比之下,模型的Gainmargin为-4.44db,Phasemargin为-20.1°。
被控对象的Gainmargin和Phasemargin都小于模型,如果利用等效模型进行设计,则设计后的系统稳定裕度要大一些,以保证系统的稳定。
2.4利用模型进行PI和PID控制器设计
由于被控对象的数学模型描述是稳定系统,所以需要对其进行校正。
PID控制器
在工业过程中,最常用有着广泛的应用。
它具有结构简单,参数易于整定,应用面广等特点。
它主要具有以下优点:
(1)原理简单,应用方便,参数整定灵活。
(2)适用性强,可以广泛应用于电力、机械、化工、冶金、轻工、建材、石油
等行业。
(3)鲁棒性强。
其控制的质量对受控对象的变化不太敏感。
所以本例中也采用了PI、PID调节器对系统进行校正,校正后的仿真图如图2.4
图2.4校正后的闭环系统结构图
PID控制器的传递函数为:
K(s)=Kc(1TdS>)(2.18)
TfS+1Ts
其中Kc,T,Td分别是PID控制器的比例、积分、微分常数,Tf=otTd为滤波常数,这里二=0.01。
上式中令Td=0,可得pi控制器。
基于IFOPTD,相应PI控制器参数计算公式为:
TKp
0.37(v/T)」18
(2.19)
135
T二[3.85(^/T).5.85]T
PID控制器参数计算公式为:
0.78(日/T)+0.10
Kc—
TKp
(2.20)
Ti=5.44(=/T)1.02T
Td=0.96e/T)0.77T
由2.2得出的IFOPTD模型计算可得PI控制器参数:
J;=[3.85(日/T)1.35+5.85]T=10.7926
PID控制器参数:
图2.5利用PI调节器校正后的闭环系统阶跃响应图(参考输入)
图2.6利用PI调节器校正后的闭环系统阶跃响应图(扰动输入)
图2.8利用PID调节器校正后的闭环系统阶跃响应图(扰动输入)
由图2.5,图2.6,图2.7,图2.8可以看出,经过PID调节器校正,且连成闭合回路的系统是稳定的。
对比图2.5和图2.7,系统经过PI调节器校正后,对于参考输入的阶跃响应,超调量为69.34%,调节时间为23.3s;经过PID调节器校正后,超调量为92.39%,调节时间为12.79s。
可见,PID调节器的校正后,系统对于参考输入的阶跃响应,超调量增大,但调节时间缩短,增强了系统的快速性。
由于积分器的存在,两个调节器校正后均无稳态误差。
对比图2.6和图2.7,系统经过PI调节器校正后,对于扰动输入的阶跃响应,其峰值为5.6,相比之后,经过PID调节器校正后,峰值为1.9,可见,PID调节器校正
的系统抗干扰能力优于PI调节器。
经过校正后的系统性能指标对比如表2.1,表2.2
超调量
调节时间(s)
PI调节器
69.34%
23.3
PID调节器
92.39%
12.79
表2-1PI、PID调节后系统对于参考输入的阶跃响应性能指标
峰值
PI调节器
5.6
PID调节器
1.9
表2-2PI、PID调节后系统对于扰动输入的阶跃响应性能指标
3切线法建模过程及分析
3.1切线法原理
在工业过程中,还有一种建立被控对象模型的方法,就是响应曲线法【3】。
响应曲线法主要用于测取被控过程的阶跃响应曲线和矩形脉冲响应曲线。
只要在被迫对象的输
入端作阶跃变化,测定其输出量随时间而变化的曲线,即可得到系统的阶跃响应曲线。
在本例中,采用阶跃响应曲线建立被控对象的数学模型。
阶跃响应曲线能形象、直观、完全描述被控对象的动态特性。
本例中采用IFOPTD
模型去逼近被控对象。
其传递函数为式(2.8),重写如下:
"nW
s(Ts1)
因此,由过程控制中常用的切线法对系统进行拟合。
当对传递函数为G(s)被控对象施加阶跃信号时,系统输出为:
Y(s)二G(s)U(s)二色^
s
(3.1)
sY(s)=G(s)
(3.2)
2=g⑴
由式(3.3)可以看出,对系统阶跃响应曲线的微分即为系统的脉冲响应。
由式(2.9)
(3.3)
可知,对于IFOPTD模型,其脉冲响应输出为gm(t)=Kp[(t-,)-e汗]。
因此若可以得到被控对象的阶跃响应曲线的微分曲线,再在其上取4个点,在4个点的输出值分
别为y'(t)=0.33y'()yt'(=)0.妙'(y)3乂)0-632灯)严'(')y:
)0则可以得
t-9c’
-——=0.4
T
t2-6
-一=0.5
T
t3-9彳=1
T
t4-9…
-——=1.2
.T
(3.4)
可以解得
T1=2亿3-上2)!
:
」1=2t2-t3
t47
T2
(3.5)
0.8
2-2
任取一组T、二即可。
y'(:
:
)即为Kp的值。
3.2利用切线法将被控对象简化为IFOPTD模型
应先对阶跃响应曲线进行微分,即将响应曲线y(t)进行n等分,每份的时间间隔
为罩,计算每一份曲线的斜率,近似为该点的微分值,按表2-3进行计算,分别填入
相应时间ml;的值y(mTS),并计算各个增量:
y(mTs)=y[(m1)Ts]-y(mTS),m=1,2,3,…,n-1(3.6)
再依次计算出各个时刻微分的近似值y'(mTs):
y'(mTs)二y(mTs),m=1,2,3,…,n-1(3.7)
Ts
1
将y'(mT;)及其对应时刻(m--)Ts填入表2-3中,并将y'(t)转换成相对值曲线,
2
即:
y°'(mTs)二
y'E)
y'C:
)
(3.8)
在相对值曲线上选取四个点y。
'魚)=0.33,y°'(t2)=0.39,y°'(t3)=0.632,y°'(t4)=0.7,
并找出相应时刻t,,t2,t3,t4,按式(3-1-4),(3-1-5)求解出T,,T2,.,,2,即可将被控对象等
效成IFOPTD模型
表3-1切线法计算阶跃响应参数
序号m
y(mT;)
”t、Ay(mT;)y'(mTs)=冷畀1s
1
(『尹
5)=僞)
1
y(Ts)
y(2Ts)-y仃s)
Ts
2
y(2Ts)
y(3Ts)-y(2Ts)
Ts
lTs
3
y(3Ts)
y(4Ts)-y(3Ts)
Ts
iTs
:
:
:
:
n-2
y[(n-2)Ts]
y[(n—1)Ts]—y[(n—2)Ts]
Ts
5
(n-尹
n-1
y[(n-1)Ts]
y(nTs)-y[(n-叽]Ts
(门-凯
借助Matlab,利用上述讲述的方法,可以求出系统的等效IFOPTD莫型(代码见附
录):
3.3对比原系统和等效模型的特性
原被控对象和模型的脉冲响应曲线对比如图3.1
3.3.1单位脉冲响应
2.5
财冲响应
C.S
345678910
Time(sec)
图3.1切线法模型和被控对象脉冲响应对比图
由图可以对比出,利用切线法拟合的效果非常不错的,与原被控对象相差不大
3.3.2
Nyquist图和Bode图
图3.2切线法被控对象和等效模型Bode图对比
100
mp昭EP区豊
BodeDiagram
-4320
-5040
to'2
-1500
-720-1440-2160-28S0-3600
System:
祕控对鲸
PhasePi-!
argin(dleg}:
*319DelayMargin(sec):
-0432AtfrejquMcy(rgidl/aec):
1.29Cto-s-edLqdpStable7No
System型3
PliaseMarg汩(日eg):
-34,9DelayMargin(sec):
-0.456Atfreq]uency(rad/^ec}:
1,33ClosedLoopStabte^No
10
Frequency(rad/sec)
图3.3被控对象和等效模型Bode图对比
由图3.3可以看出,被控对象和等效模型都是不稳定的。
被控对象的Phasemargin为-31.9°,相比之下,模型的Phasemargin为-34.9°,与原被控对象十分接近。
模型的Phasemargin小于原被控对象,所以利用等效模型进行设计,若设计后的系统,则可保证原被控对象组成系统的稳定性。
4利用MATLAB^置函数建模及分析
4.1MATLAB内置函数lsqcurvefit()
利用Matlab求出原被控对象的脉冲响应后,即可利用已得的时间和对应时间的
【5】响应,通过调用函数x=lsqcurvefit(@myfun,xO,xdata,ydata),其中x包含了所求
模型的未知参量,在myfun.m文件中定义了所想拟合的曲线的形式,即x
(1)、x
(2)、
Ke丑
x(3)分别代表模型Gm(s)p中的Kp、xT。
s(Ts+1)p
functiony=myfun(x,xdata)
sys=tf([x
(1)],[x(3)10],'inputdelay',x
(2));
[y,xdata]=impulse(sys,xdata)
end
通过调用函数,可以求出拟合模型的参数Kp、HT。
求得的模型为
G4(s)二
2.503e~.824s
s(1.221s1)
4.2对比原系统和等效模型的特性
原被控对象和模型的脉冲响应曲线对比如图4.1
4.2.1单位脉冲响应
图4.1内置函数法模型和被控对象脉冲响应对比图
由图可以对比出,利用切线法拟合的效果非常不错的,与原被控对象相差不大
4.2.2
Nyquist图和Bode图
图4.2内置函数法被控对象和等效模型nyquist图对比
Frequencyrrad/sec)
图4.3内置函数法被控对象和等效模型Bode图对比
由图4.1可以看出,被控对象和等效模型的脉冲响应是非常接近的。
由图4.3,
被控对象的Phasemargin为-31.9o,Gainmargin为-5.87db,相比之下,模型的Phasemargin为-30.5o,Gainmargin为-5.48db,由模型等效为原来的被控对象是完全可以的。
可以看出,利用Matlab的内置函数对系统进行建模的效果非常好。
5遇到的问题及解决办法
5.1不理解最小二乘法
在最初审题时,题中提到要用最小二乘法解决系统的建模问题。
由于在课程的学习过程中并没有学习过最小二乘法,于是去图书馆借了有关最小二乘法的书籍。
初步浏览后发现所借的书中介绍的最小二乘法与控制系统中的建模没有太大关系。
这时,进行二次审题,注意到了是利用系统的脉冲响应进行建模,这属于系统辨识。
所以又借来了系统辨识的书,里面介绍到了最小二乘法,并进行了学习。
5.2不会运用最小二乘法
虽然初步懂得了最小二乘法的思想,知道是将待估计参数表示成两个矩阵相乘的形式,但由于系统的阶跃响应中含指数形式,待求参数分布于分式的系数、指数上,形式极其复杂,运用已学的知识将无法将其转化为两个矩阵相乘的形式,于是上万方网找了一些如何运用matlab解决运用最小二乘法解决参数辨识问题的论文,发现了lsqcurvefit()这个matlab内置函数。
运用matlab的lsqcurvefit()函数逼近系统时,
出现了很大的问题。
在老师的指点下,我寻找到了一种简单的方法,克服了问题,成
功求解出模型。
通过matlab的帮助文件及老师的点拨,我学会了运用matlab的现有函数进行求解。
另外,由于想自己编写函数实现最小二乘法建立模型,于是在万方网上搜索关于运用最小二乘法建立被控对象的模型,找到了一篇介绍如何利用系统的阶
跃响应建立二阶加纯滞后模型,并从中学习到了如何将带有指数的参数用两个矩阵相乘的形式表示。
然后,根据那条思路,推出了利用系统的脉冲响应建立IFOPTD模型
的方法,运用在了系统中,发现拟合效果十分好。
5.3运用现有函数求解遇到困难
通过查阅过程控制书籍,其中的切线法也可以将系统简化为IFOPTD模型,于是
对其进行了学习,发现其原理简单,易懂,所以利用切线法对被控对象进行了建模,发现效果非常好。
参考文献
[1]潘立东,潘仰东•系统辨识与建模[M].北京:
化学工业出版社,2003.6
[2]吴晓燕,张双远.MATLAB在自动控制中的应用[M].西安电子科技大学出版社,2006
[3]邵裕森.过程控制及仪表[M].上海交通大学出版社,1999
[4]王修中,岳红,高东杰.二阶加滞后连续模型的直接辨识[J].北京:
中国科
学院自动化研究所综合自动化技术工程中心研究简报,2001.9,27(5):
1-2
⑸石贤良,吴成富.基于MATLA的最小二乘法参数辨识与仿真[J].西北工业大学自动化学院,2005,26(6):
3
附录
A.1最小二乘法建立系统模型
sys=zpk([],[0-1-2],5,'inputdelay',0.5)求出B(t)•…fori=1:
701
sum=0;
forj=1:
i
sum=sum+j*y(j);
end
b(i)=0.01A2*sum;
end
b=b:
求出tA(t)••
fori=1:
701
sum=0;
forj=1:
isum=sum+y(j);end
a(i)=i*0.01A2*sum;
end
a=a';
c=b-a;
求出A(t)•…
fori=1:
701
sum=0;
forj=1:
isum=sum+y(j);endh1(i)=0.01*sum;end
h1=hi';
求出矩阵门•…
fori=1:
701
h2(i)=(i*0.01)A2/-2;
end
h2=h2';
fori=1:
701
h3(i)=-0.5;
end
h3=h3';
fori=1:
701
h4(i)=i*0.01;
end
h4=h4:
h=[h1h2h3h4]
用最小二乘法求出G
inv(h'*h)*h'*cans=
1.5011
2.5926
0.9151
1.7806
A.2利用lsqcurvefit()建立系统模型
求出原系统的脉冲响应
sys=zpk([],[0-1-2],5,'inputdelay',0.5)
t=0:
0.01:
7;
[y,t]=impulse(sys,t);
用matlab的lsqcurvefit()求解模型参数
x=lsqcurvefit(@myfun,[50.31],t,y)s4=tf([x
(1)],[x(3)10],'inputdelay',x
(2))Transferfunction:
2.503
exp(-0.824*s)*
1.221sA2+s
myfun.m
sys=tf([x
(1)],[x(3)10],
[y,xdata]=impulse(sys,xdata)
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最小二乘法 设计 报告