控制系统数字仿真与CAD实验.docx
《控制系统数字仿真与CAD实验.docx》由会员分享,可在线阅读,更多相关《控制系统数字仿真与CAD实验.docx(58页珍藏版)》请在冰豆网上搜索。
控制系统数字仿真与CAD实验
实验一控制系统的模型转换、数据处理与曲线拟合(2学时)
一.实验目的:
掌握控制系统的微分方程、状态方程、传递函数、零极点增益、部分分式描述及转换;掌握常用数据拟合与插值方法。
二.实验方法及预习内容:
1.利用Matlab工具箱中常用的五种模型转换命令进行模型描述和转换;
2.利用Matlab工具箱中的多项式拟合命令
对实验数据进行拟合。
三.实验内容:
1.用Matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:
(1)G(s)=
(2)
=
y=[0202]X
2.已知元件的实验数据如下,拟合这一数据,并尝试给出其特性方程。
X
0.0100
1.0100
2.0100
3.0100
4.0100
Y
2.5437
7.8884
9.6242
11.6071
11.9727
X
5.0100
6.0100
7.0100
8.0100
9.0100
y
13.2189
14.2679
14.6134
15.4045
15.0805
四.实验总体要求:
1.每次实验前应做好预习和准备;
2.实验后应及时提交仿真程序Word文档(包括:
程序、实验结果和图示、实验分析与总结);
3.重点检查Matlab中M文件的运行;
4.请认真撰写实验报告,实验结果可贴在报告相应位置。
注:
格式不符合要求、或字迹潦草的一律退回重写。
五.本次实验要求:
1.熟悉五种连续系统控制模型的Matlab转换命令,并得出相应数学模型表达式;
2.熟悉常用数据拟合方法。
(1)G(s)=
程序den=[1,20,70,100,48];
num=[1,14,48,48];
[A,B,C,D]=tf2ss(num,den)
[z,p,k]=ss2zp(A,B,C,D)
[R,P,H]=residue(num,den)
结果
>>
A=
-20-70-100-48
1000
0100
0010
B=
1
0
0
0
C=
1144848
D=
0
z=
-9.4641
-2.5359
-2.0000
p=
-16.0051
-1.5269+0.9247i
-1.5269-0.9247i
-0.9412
k=
1.0000
R=
0.3892
-0.0932-0.3754i
-0.0932+0.3754i
0.7973
P=
-16.0051
-1.5269+0.9247i
-1.5269-0.9247i
-0.9412
H=
[]
(2)
=
y=[0202]X
程序A=[2.25,-5,-1.25,-0.5;
2.25,-4.25,-1.25,-0.25;
0.25,-0.5,-1.25,-1;
1.25,-1.75,-0.25,-0.75];
B=[4;2;2;0];
C=[0,2,0,2];
D=[0];
[num,den]=ss2tf(A,B,C,D)
[z,p,k]=ss2zp(A,B,C,D)
[R,P,H]=residue(num,den)>>
结果
>>
num=
04.000014.000022.000015.0000
den=
1.00004.00006.25005.25002.2500
z=
-1.0000+1.2247i
-1.0000-1.2247i
-1.5000
p=
-0.5000+0.8660i
-0.5000-0.8660i
-1.5000
-1.5000
k=
4.0000
R=
4.0000
-0.0000
0.0000-2.3094i
0.0000+2.3094i
P=
-1.5000
-1.5000
-0.5000+0.8660i
-0.5000-0.8660i
H=
[]
>>
实验二基于Matlab的微分方程数值解法(2学时)
一.实验目的:
掌握欧拉法、四阶龙格库塔法的程序编制方法。
二.实验方法及预习内容:
对微分方程描述的控制系统,利用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法分别编写M文件,进行数值计算和作图。
三.实验内容:
1.分别用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法求下面系统的输出响应y(t)在0≤t≤1上,h=0.1时的数值解。
要求保留4位小数,并将三种方法的结果与真解
进行比较。
2.若为
如何编程计算?
四.实验总体要求:
1.每次实验应做好实验前的预习和准备;
2.实验后应及时提交仿真程序(M文件与Word文档)、实验结果和图示、实验分析与总结;
3.认真撰写实验报告。
五.本次实验要求:
熟悉微分方程数值解法(欧拉法、二阶与四阶龙格-库塔法)。
1.分别用欧拉法、二阶龙格-库塔法、四阶龙格-库塔法求下面系统的输出响应y(t)在0≤t≤1上,h=0.1时的数值解。
要求保留4位小数,并将三种方法的结果与真解
进行比较。
程序
欧拉法
h=0.1;
disp('欧拉法求函数的数值解为');
disp('y=');
y=1;
fort=0:
h:
1
m=y;
disp(y);
y=m-2*m*h;
End
结果
欧拉法求函数的数值解为
y=
1
0.8000
0.6400
0.5120
0.4096
0.3277
0.2621
0.2097
0.1678
0.1342
0.1074
二阶龙格—库塔法
程序
h=0.1;
disp('二阶龙格—库塔法函数的数值解为');
disp('y=');
y=1;
fort=0:
h:
1
disp(y);
k1=-2*y;
k2=-2*(y+k1*h);
y=y+(k1+k2)*h/2;
End
结果
二阶龙格—库塔法函数的数值解为
y=
1
0.8200
0.6724
0.5514
0.4521
0.3707
0.3040
0.2493
0.2044
0.1676
0.1374
四阶龙格—库塔法
程序
h=0.1;
disp('四阶龙格—库塔法求解函数数值解为');
disp('y=');
y=1;
fort=0:
h:
1
disp(y);
k1=-2*y;
k2=-2*(y+k1*h/2);
k3=-2*(y+k2*h/2);
k4=-2*(y+k3*h);
y=y+(k1+2*k2+2*k3+k4)*h/6;
end
结果
四阶龙格—库塔法求解函数数值解为
y=
1
0.8187
0.6703
0.5488
0.4493
0.3679
0.3012
0.2466
0.2019
0.1653
0.1353
真解
程序
h=0.1;
disp('函数的离散时刻解为');
disp('y=');
y=1;
fort=0:
h:
1
y=exp(-2*t);
disp(y);
end
结果
函数的离散时刻解为
y=
1
0.8187
0.6703
0.5488
0.4493
0.3679
0.3012
0.2466
0.2019
0.1653
0.1353
2.若为
如何编程计算?
欧拉法
程序
h=0.1;
disp('欧拉法求函数的数值解为');
disp('y=');
y=1;
fort=0:
h:
1
m=y;
disp(y);
y=m+m*m*h;
End
结果
欧拉法求函数的数值解为
y=
1
1.1000
1.2210
1.3701
1.5578
1.8005
2.1246
2.5760
3.2397
4.2892
6.1289
二阶龙格—库塔法
程序
h=0.1;
disp('二阶龙格—库塔法函数的数值解为');
disp('y=');
y=1;
fort=0:
h:
1
disp(y);
k1=y*y;
k2=y*(y+k1*h);
y=y+(k1+k2)*h/2;
end
结果
二阶龙格—库塔法函数的数值解为
y=
1
1.1050
1.2338
1.3955
1.6038
1.8816
2.2690
2.8423
3.7649
5.4492
9.2277
四阶龙格—库塔法
程序
h=0.1;
disp('四阶龙格—库塔法求解函数数值解为');
disp('y=');
y=1;
fort=0:
h:
1
disp(y);
k1=y*y;
k2=y*(y+k1*h/2);
k3=y*(y+k2*h/2);
k4=y*(y+k3*h);
y=y+(k1+2*k2+2*k3+k4)*h/6;
end
结果
四阶龙格—库塔法求解函数数值解为
y=
1
1.1052
1.2343
1.3965
1.6058
1.8855
2.2767
2.8587
3.8047
5.5659
9.7082
实验三基于SIMULINK的控制系统时域分析(2学时)
一.实验目的:
掌握使用SIMULINK、控制工具箱求解系统的输入和输出响应的仿真方法。
二.实验方法及预习内容:
利用SIMULINK工具进行控制系统模型分析、系统设计与仿真的相关原理。
三.实验内容:
1.分别使用解微分方程方法、控制工具箱、Simulink求解具有如下闭环传递函数的系统的阶跃响应。
2.某小功率随动系统动态结构如图所示,已知:
,
,
,
,
,
。
若系统输入分别为
,
,
,试用Simulink分析系统的输出
分别如何?
四.实验要求:
1.熟悉Simulink法进行控制系统时域分析的基本步骤,并与微分方程法、控制工具箱法进行比较;
2.熟悉Simulink法在输入不同信号(单位阶跃、单位斜坡、两阶跃叠加)下的控制系统输出响应实验方法、图形显示。
控制工具箱法
num=[30];
den=[18364010];
sys=tf(num,den);
step(sys);
Grid
解微分方程法
Num=[];den=[];
[A,B,C,D]=tf2ss(num,den);
建立wffc.m文件
functiondx=wffc(t,x)
u=1;
dx=[-8*x
(1)-36*x
(2)-40*x(3)-10*x(4)+u;x
(1);x
(2);x(3)];
主程序
[t,x]=ode45('wffc',[0,20],[0,0,0,0]);
y=30*x(:
4);
plot(t,y);
grid
实验四面向系统结构图的仿真验证(2学时)
一.实验目的:
从控制系统常见的结构形式拓扑描述入手,掌握面向连续控制系统结构图的计算机仿真方法及其程序实现。
二.实验原理及预习内容:
1.原理:
任何复杂连接结构的线性控制系统都是由一些简单的线性环节组合而成,按照它们之间相互连接的拓扑关系列出连接矩阵,可以得到能清晰地描述复杂连接系统的仿真模型。
2.预习内容:
利用连接矩阵进行复杂控制系统建模的方法和原理。
三.实验步骤:
1.对具有复杂连接闭环结构形式的系统,可用一阶环节作为典型环节,再运用拓扑描述中联接矩阵的表达方法得出此类系统结构的仿真模型;
2.再通过数值积分法求取各环节的动态响应。
注意:
所确定的典型环节中,参数
,以保证系统仿真求解的基本条件。
四.实验内容:
习题3-2.设典型闭环结构控制系统如下图所示,当阶跃输入幅值R=20时,用面向系统结构图的数字仿真法sp3-1.m求取系统的输出响应。
五.实验要求:
1.列出复杂连接闭环系统的仿真程序框图;
2.列出MATLAB程序实现的主要程序,包括输入数据、形成闭环各系统阵、数值积分求解、以及输出结果。
解:
sp3_1.m函数为
b=b/a
(1);a=a/a
(1);A=a(2:
n+1);
A=[rot90(rot90(eye(n-1,n)));-fliplr(A)];
B=[zeros(1,n-1),1]';
m1=length(b);
C=[fliplr(b),zeros(1,n-m1)];
Ab=A-B*C*V;
X=X0';
y=0;t=T0;
N=round((Tf-T0)/h);
fori=1:
N
K1=Ab*X+B*R;
K2=Ab*(X+h*K1/2)+B*R;
K3=Ab*(X+h*K2/2)+B*R;
K4=Ab*(X+h*K3)+B*R;
X=X+h*(K1+2*K2+2*K3+K4)/6;
y=[y,C*X];
t=[t,t(i)+h];
End
以上程序保存为m文件,文件名sp3_1.m
用sp3_1.m求解过程如下:
在MATLAB语言环境下,输入以下命令语句
>>a=[0.0160.8643.273.421];
>>b=[3025];
>>X0=[0000];
>>V=2;
>>n=4;
>>T0=0;Tf=10;
>>h=0.01;R=20;
>>sp3_1
>>[t',y']
>>plot(t,y)
运行结果为:
ans=
00
0.01000.0054
0.02000.0389
0.03000.1174
0.04000.2502
0.05000.4417
0.06000.6933
0.07001.0045
0.08001.3733
0.09001.7969
0.10002.2717
0.11002.7936
0.12003.3583
0.13003.9608
0.14004.5964
0.15005.2596
0.16005.9453
0.17006.6480
0.18007.3622
0.19008.0826
0.20008.8036
0.21009.5201
0.220010.2267
0.230010.9184
0.240011.5904
0.250012.2380
0.260012.8569
0.270013.4431
0.280013.9926
0.290014.5021
0.300014.9684
0.310015.3889
0.320015.7613
0.330016.0834
0.340016.3539
0.350016.5716
0.360016.7357
0.370016.8459
0.380016.9023
0.390016.9054
0.400016.8560
0.410016.7553
0.420016.6050
0.430016.4070
0.440016.1635
0.450015.8771
0.460015.5506
0.470015.1870
0.480014.7896
0.490014.3621
0.500013.9079
0.510013.4308
0.520012.9349
0.530012.4240
0.540011.9022
0.550011.3734
0.560010.8417
0.570010.3111
0.58009.7855
0.59009.2686
0.60008.7641
0.61008.2756
0.62007.8063
0.63007.3594
0.64006.9379
0.65006.5444
0.66006.1813
0.67005.8509
0.68005.5551
0.69005.2953
0.70005.0731
0.71004.8893
0.72004.7447
0.73004.6398
0.74004.5746
0.75004.5489
0.76004.5624
0.77004.6142
0.78004.7034
0.79004.8286
0.80004.9884
0.81005.1810
0.82005.4044
0.83005.6565
0.84005.9350
0.85006.2374
0.86006.5610
0.87006.9031
0.88007.2608
0.89007.6314
0.90008.0118
0.91008.3991
0.92008.7903
0.93009.1825
0.94009.5727
0.95009.9581
0.960010.3360
0.970010.7037
0.980011.0586
0.990011.3984
1.000011.7207
1.010012.0236
1.020012.3051
1.030012.5634
1.040012.7970
1.050013.0047
1.060013.1854
1.070013.3381
1.080013.4621
1.090013.5571
1.100013.6229
1.110013.6593
1.120013.6667
1.130013.6455
1.140013.5962
1.150013.5198
1.160013.4172
1.170013.2896
1.180013.1384
1.190012.9650
1.200012.7712
1.210012.5587
1.220012.3294
1.230012.0851
1.240011.8281
1.250011.5603
1.260011.2840
1.270011.0013
1.280010.7144
1.290010.4255
1.300010.1367
1.31009.8502
1.32009.5681
1.33009.2924
1.34009.0249
1.35008.7675
1.36008.5220
1.37008.2900
1.38008.0729
1.39007.8722
1.40007.6890
1.41007.5243
1.42007.3791
1.43007.2542
1.44007.1501
1.45007.0673
1.46007.0059
1.47006.9662
1.48006.9480
1.49006.9511
1.50006.9752
1.51007.0197
1.52007.0840
1.53007.1672
1.54007.2684
1.55007.3867
1.56007.5208
1.57007.6694
1.58007.8313
1.59008.0051
1.60008.1892
1.61008.3821
1.62008.5824
1.63008.7882
1.64008.9982
1.65009.2106
1.66009.4238
1.67009.6363
1.68009.8465
1.690010.0529
1.700010.2540
1.710010.4484
1.720010.6349
1.730010.8121
1.740010.9789
1.750011.1343
1.760011.2773
1.770011.4071
1.780011.5229
1.790011.6240
1.800011.7101
1.810011.7807
1.820011.8355
1.830011.8744
1.840011.8973
1.850011.9045
1.860011.8960
1.870011.8722
1.880011.8335
1.890011.7805
1.900011.7138
1.910011.6341
1.920011.5421
1.930011.4389
1.940011.3253
1.950011.2023
1.960011.0711
1.970010.9326
1.980010.7881
1.990010.6387
2.000010.4856
2.010010.3300
2.020010.1730
2.030010.0159
2.04009.8598
2.05009.7059
2.06009.5552
2.07009.4088
2.08009.2677
2.09009.1329
2.10009.0052
2.11008.8856
2.12008.7746
2.13008.6730
2.14008.5815
2.15008.5004
2.16008.4303
2.17008.3714
2.18008.3241
2.19008.2884
2.20008.2645
2.21008.2523
2.22008.2517
2.23008.2625
2.24008.2846
2.25008.3174
2.26008.3606
2.27008.4138
2.28008.4763
2.29008.5475
2.30008.6268
2.31008.7135
2.32008.8067
2.33008.9058
2.34009.0098
2.35009.1179
2.36009.2293
2.37009.3431
2.38009.4584
2.39009.5743
2.40009.6