二用MATLAB建立传递函数模型Word文档下载推荐.docx
《二用MATLAB建立传递函数模型Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二用MATLAB建立传递函数模型Word文档下载推荐.docx(67页珍藏版)》请在冰豆网上搜索。
K=?
先算出临界阻尼、欠阻尼、过阻尼时电阻R的理论值,再将理论值应用于模拟电路中,观察二阶系统的动态性能及稳定性,应与理论分析基本吻合。
在此实验中由图1-2,可以确地1-1中的参数。
,,
系统闭环传递函数为:
其中自然振荡角频率:
;
阻尼比:
。
2.典型的三阶系统稳定性分析
如图1-3所示。
图1-3
(2)模拟电路图:
如图1-4所示。
图1-4
系统的开环传函为:
系统的特征方程为:
(4)实验内容
实验前由Routh判断得Routh行列式为:
S3
S2
S1
S0
为了保证系统稳定,第一列各值应为正数,因此可以确定
系统稳定K值的范围
系统临界稳定K
系统不稳定K值的范围
四、实验步骤
1)将信号源单元的“ST”端插针与“S”端插针用“短路块”短接。
由于每个运放单元均设置了锁零场效应管,所以运放具有锁零功能。
将开关分别设在“方波”档和“500ms~12s”档,调节调幅和调频电位器,使得“OUT”端输出的方波幅值为1V,周期为10s左右。
2.)典型二阶系统瞬态性能指标的测试
(1)按模拟电路图1-2接线,将1中的方波信号接至输入端,取R=10KΩ。
(2)用示波器观察系统响应曲线C(t),测量并记录超调MP、峰值时间tp和调节时间tS。
(3)分别按R=20KΩ;
40KΩ;
100KΩ;
改变系统开环增益,观察响应曲线C(t),测量并记录性能指标MP、tp和tS,及系统的稳定性。
并将测量值和计算值进行比较(实验前必须按公式计算出)。
将实验结果填入表1-1中。
3)典型三阶系统的性能
(1)按图1-4接线,将1中的方波信号接至输入端,取R=30KΩ。
(2)观察系统的响应曲线,并记录波形。
(3)减小开环增益(R=41.7KΩ;
100KΩ),观察响应曲线,并将实验结果填入表1-3中。
表1-3中已填入了一组参考测量值,供参照。
五、实验现象分析
1)典型二阶系统瞬态性能指标实验测试值
表1-1
参数
项目
R
(KΩ)
K
ωn
ξ
C
(tp)
(∞)
MP(%)
tP(s)
tS(s)
响应
情况
理
论
值
测
量
0<
ξ<
1
欠阻尼
10
50
ξ=1
临界
阻尼
160
ξ>
1
过阻尼
200
其中,,,
2)典型三阶系统在不同开环增益下的响应情况
表1-2
R(KΩ)
开环增益K
稳定性
表1-3
30
16.7
不稳定发散
41.7
12
临界稳定等幅振荡
100
5
稳定衰减收敛
注意:
在做实验前一定要进行对象整定,否则将会导致理论值和实际测量值相差较大。
实验二用MATLAB建立传递函数模型
(1)熟悉MATLAB实验环境,掌握MATLAB命令窗口的基本操作;
(2)掌握MATLAB建立控制系统数学模型的命令及模型相互转换的方法;
(3)掌握使用MATLAB命令化简模型基本连接的方法;
(4)学会使用Simulink模型结构图化简复杂控制系统模型的方法。
二、实验原理及内容
控制系统常用的数学模型有四种:
传递函数模型(tf对象)、零极点增益模型(zpk对象)、结构框图模型和状态空间模型(ss对象)。
经典控制理论中数学模型一般使用前三种模型,状态空间模型属于现代控制理论范畴。
1、有理函数模型
线性连续系统的传递函数模型可一般地表示为:
(1)
将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量和,就可以轻易地将传递函数模型输入到MATLAB环境中。
命令格式为:
;
(2)
(3)
用函数tf()来建立控制系统的传递函数模型,该函数的调用格式为:
G=tf(num,den);
(4)
例1 一个简单的传递函数模型:
可以由下面的命令输入到MATLAB工作空间中去。
>
num=[1,2];
den=[1,2,3,4,5];
G=tf(num,den)
运行结果:
Transferfunction:
s+2
-----------------------------
s^4+2s^3+3s^2+4s+5
这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量。
例2 一个稍微复杂一些的传递函数模型:
num=6*[1,5];
den=conv(conv([1,3,1],[1,3,1]),[1,6]);
tf(num,den)
运行结果
6s+30
-----------------------------------------
s^5+12s^4+47s^3+72s^2+37s+6
其中conv()函数(标准的MATLAB函数)用来计算两个向量的卷积,多项式乘法也可以用这个函数来计算。
该函数允许任意地多层嵌套,从而表示复杂的计算。
【自我实践1】建立控制系统的传递函数模型:
2、零极点模型
线性系统的传递函数还可以写成极点的形式:
将系统增益K、零点-zi和极点-pj以向量的形式输入给三个变量、Z和P,命令格式为:
(6)
(7)
(8)
用函数命令zpk()来建立系统的零极点增益模型,其函数调用格式为:
G=zpk(Z,P,KGain) (9)
例3 某系统的零极点模型为:
KGain=6;
z=[-1.9294;
-0.0353+0.9287j;
-0.0353-0.9287j];
p=[-0.9567+1.2272j;
-0.9567-1.2272j;
0.0433+0.6412j;
0.0433-0.6412j];
G=zpk(z,p,KGain)
运行结果:
Zero/pole/gain:
6(s+1.929)(s^2+0.0706s+0.8637)
---------------------------------------------------------
(s^2-0.0866s+0.413)(s^2+1.913s+2.421)
对于单变量系统,其零极点均是用列向量来表示的,故z、p向量中各项均用分号(;
)隔开。
【自我实践2】建立控制系统的零极点模型:
3、控制系统模型间的相互转换
零极点模型转换为传递函数模型:
[num,den]=zp2tf(z,p,k)
传递函数模型转化为零极点模型:
[z,p,k]=tf2zp(num,den)
例4给定系统传递函数为:
对应的零极点模型可由下面的命令得出
num=[6.8,61.2,95.2];
den=[1,7.5,22,19.5,0];
G=tf(num,den);
G1=zpk(G)
显示结果:
6.8(s+7)(s+2)
------------------------------
s(s+1.5)(s^2+6s+13)
可见,在系统的零极点模型中若出现复数值,则在显示时将以二阶因子的形式表示相应的共轭复数对。
例5 给定零极点模型:
可以用下面的MATLAB命令立即得出其等效的传递函数模型。
输入程序时要注意大小写。
Z=[-2,-7];
P=[0,-3-2j,-3+2j,-1.5];
K=6.8;
G=zpk(Z,P,K);
G1=tf(G)
结果显示:
6.8s^2+61.2s+95.2
---------------------------------------
s^4+7.5s^3+22s^2+19.5s
【自我实践3】已知系统传递函数,求其等效的零极点模型。
【自我实践4】建立控制系统的多项式模型:
4、反馈系统结构图模型
设反馈系统结构图如图2-1所示。
图2-1反馈系统结构图
两个环节反馈连接后,其等效传递函数可用feedback()函数求得,其调用格式为:
sys=feedback(G1,G2,sign)
其中sign是反馈极性,sign缺省时,默认为负反馈,sign=-1;
正反馈时,sign=1;
单位反馈时,G2=1,且不能省略。
series()函数:
实现两个模型的串联;
多于两个必须嵌套使用。
parallel()函数:
实现两个模型的并联;
例6 若反馈系统如图2-1中的两个传递函数分别为:
,
则反馈系统的传递函数:
G1=tf(1,[1,2,1]);
G2=tf(1,[1,1]);
G=feedback(G1,G2)
s+1
-------------------------
s^3+3s^2+3s+2
若采用正反馈连接结构输入命令
G=feedback(G1,G2,1)
则得出如下结果:
---------------------
s^3+3s^2+3s
例7 若反馈系统为更复杂的结构如图2-2所示。
其中
,,
图2-2复杂反馈系统
则闭环系统的传递函数:
G1=tf([1,7,24,24],[1,10,35,50,24]);
G2=tf([10,5],[1,0]);
H=tf([1],[0.01,1]);
G_a=feedback(G1*G2,H)
结果为:
0.1s^5+10.75s^4+77.75s^3+278.6s^2+361.2s+120
--------------------------------------------------------------------
0.01s^6+1.1s^5+