您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 合肥工业大学系统控制仿真综合实验报告
1合肥工业大学电气与自动化工程学院综合实验报告实验名称:系统仿真综合实验姓名:学号:专业班级:实验地点:逸夫楼807指导教师:都海波殷礼胜成绩:日期:2实验一MATLAB基本操作实验目的1.熟悉MATLAB实验环境,练习MATLAB命令、m文件、Simulink的基本操作。2.利用MATLAB编写程序进行矩阵运算、图形绘制、数据处理等。3.利用Simulink建立系统的数学模型并仿真求解。实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。MATLAB有3种窗口,即:命令窗口(TheCommandWindow)、m-文件编辑窗口(TheEditWindow)和图形窗口(TheFigureWindow),而Simulink另外又有Simulink模型编辑窗口。1.命令窗口(TheCommandWindow)当MATLAB启动后,出现的最大的窗口就是命令窗口。用户可以在提示符“”后面输入交互的命令,这些命令就立即被执行。在MATLAB中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。在命令窗口中输入该文件名,这一连串命令就被执行了。因为这样的文件都是以“.m”为后缀,所以称为m-文件。2.m-文件编辑窗口(TheEditWindow)我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。在MATLAB主界面上选择菜单“File/New/M-file”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。3.图形窗口(TheFigureWindow)图形窗口用来显示MATLAB程序产生的图形。图形可以是2维的、3维的数据图形,也可以是照片等。MATLAB中矩阵运算、绘图、数据处理等内容参见教材《自动控制系统计算机仿真》的相关章节。3Simulink是MATLAB的一个部件,它为MATLAB用户提供了一种有效的对反馈控制系统进行建模、仿真和分析的方式。有两种方式启动Simulink:1.在Commandwindow中,键入simulink,回车。2.单击工具栏上Simulink图标。启动Simulink后,即打开了Simulink库浏览器(Simulinklibrarybrowser)。在该浏览器的窗口中单击“Createanewmodel(创建新模型)”图标,这样就打开一个尚未命名的模型窗口。把Simulink库浏览器中的单元拖拽进入这个模型窗口,构造自己需要的模型。对各个单元部件的参数进行设定,可以双击该单元部件的图标,在弹出的对话框中设置参数。实验内容1用MATLAB可以识别的格式输入下面两个矩阵12332357135732391894A144367823355422675342189543iiBi再求出它们的乘积矩阵C,并将C矩阵的右下角2×3子矩阵赋给D矩阵。赋值完成后,调用相应的命令查看MATLAB工作空间的占用情况。调用相应的命令查看MATLAB工作空间的占用情况。程序A=[1,2,3,3;2,3,5,7;1,3,5,7;3,2,3,9;1,8,9,4]B=[1+4i,4,3,6,7,8;2,3,3,5,5,4+2i;2,6+7i,5,3,4,2;1,8,9,5,4,3]C=A*BD=C(4:5,4:6)结果A=12332357135732391894B=Columns1through41.0000+4.0000i4.00003.00006.00002.00003.00003.00005.000042.00006.0000+7.0000i5.00003.00001.00008.00009.00005.0000Columns5through67.00008.00005.00004.0000+2.0000i4.00002.00004.00003.0000C=1.0e+002*Columns1through40.1400+0.0400i0.5200+0.2100i0.51000.40000.2500+0.0800i1.0300+0.3500i1.03000.77000.2400+0.0400i0.9900+0.3500i1.00000.71000.2200+0.1200i1.0800+0.2100i1.11000.82000.3900+0.0400i1.1400+0.6300i1.08000.9300Columns5through60.41000.3100+0.0400i0.77000.5900+0.0600i0.70000.5100+0.0600i0.79000.6500+0.0400i0.99000.7000+0.1600iD=82.000079.000065.0000+4.0000i93.000099.000070.0000+16.0000iwhoYourvariablesare:ABCD2分别用for和while循环结构编写程序,求出6323626302122222iiKwhile循环K=0;i=0;whilei=63K=K+2^i;i=i+1;endK结果K=1.8447e+0195for循环K=0;i=0;fori=0:63K=K+2^i;endK结果K=1.8447e+0193选择合适的步距绘制出下面的图形(1)1sin(/)t,其中0110t[.,](2)sin(tan)tan(sin)tt,其中(,)t程序figure(1)t=0.1:0.1:10;y=sin(1./t);plot(t,y)figure(2)t=-pi:0.1*pi:pi;y=sin(tan(t))-tan(sin(t));plot(t,y)4对下面给出的各个矩阵求取矩阵的行列式、秩、特征多项式、范数。-4-3-2-101234-3-2-10123012345678910-1-0.8-0.6-0.4-0.200.20.40.60.81675350083341009103150037193......A,5765710876810957910B12345678910111213141516C,33245518118575131D程序A=[7.5,3.5,0,0;8,33,4.1,0;0,9,103,-1.5;0,0,3.7,19.3];B=[5,7,6,5;7,10,8,7;6,8,10,9;5,7,9,10];C=[1,2,3,4;5,6,7,8;9,10,11,12;13,14,15,16];D=[3,-3,-2,4;5,-5,1,8;11,8,5,-7;5,-1,-3,-1]rank(A)rank(B)rank(C)rank(D)det(A)det(B)det(C)det(D)eig(A)eig(B)eig(C)eig(D)norm(A)norm(B)norm(C)norm(D)结果D=3-3-245-5181185-75-1-3-1ans=4ans=74ans=2ans=4ans=4.3222e+005ans=1.0000ans=4.7332e-030ans=595.0000ans=103.45996.430833.541019.3682ans=0.01020.84313.858130.2887ans=36.2094-2.2094-0.0000-0.0000ans=5.7195+5.8646i85.7195-5.8646i-1.0579-8.3811ans=103.7228ans=30.2887ans=38.6227ans=16.69585求解下面的线性代数方程,并验证得出的解真正满足原方程。(a)72124915327221151132130X,(b)1321390721264915321172211521X程序A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13];B=A^-1;C=[4;7;-1;0];X1=B*CA=[1,3,2,13;7,2,1,-2;9,15,3,-2;-2,-2,11,5];C=[9,0;6,4;11,7;-2,-1];X2=(A^-1)*C结果X1=0.49790.14450.0629-0.0813X2=0.98070.49790.26800.1445-0.22260.06290.5893-0.081396假设有一组实测数据x0.10.20.30.40.50.60.70.80.91y2.32012.64702.97073.28853.60083.90904.21474.51914.82325.1275用最小二乘法拟合,求出相应的二次函数。程序X=0.1:0.1:1;Y=[2.32012.64702.97073.28853.60083.90904.21474.51904.82325.1275];P=polyfit(X,Y,2)结果P=-0.15623.28271.99677考虑线性微分方程(4)(3)353345sin(4/3)ttyyyyyuueet输入信号(1)(2)(3)(0)1,(0)(0)1/2,0.2,yyyy方程初值(1)试用Simulink搭建起系统的仿真模型,并绘制出仿真结果曲线。(2)将给定的微分方程转换成状态方程,并建立S函数,再利用Simulink进行仿真。(1)(1)(2)(3)(0)1,(0)(0)1/2,0.2,yyyy方程初值10仿真结果曲线:11(2)建立名为shiyan1721的s函数function[sys,x0,str,ts]=ex5_4(t,x,u,flag,A,B,C,D)switchflagcase0[sys,x0,str,ts]=mdlInitializeSizes(A,D);case1sys=mdlDerivatives(t,x,u,A,B);case3sys=mdlOutputs(t,x,u,C,D);case{2,4,9}sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizes(A,D)sizes=simsizes;sizes.NumContStates=size(A,1);sizes.NumDiscStates=0;sizes.NumOutputs=size(A,1)+size(D,1);sizes.NumInputs=size(D,2);sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=zeros(size(A,1),1);str=[];ts=[-1,0];functionsys=mdlDerivatives(t,x,u,A,B)sys=A*x+B*u;functionsys=mdlOutputs(t,x,u,C,D)12sys=[C*x+D*u;x];在simulink中画出如下1Out1Stepshiyan1721S-Functionf(u)Fcn在MATLAB中的命令窗口输入参数A,B,C,D矩阵,在Workspace中就有A=[0100;0010;0001;-5-4-3-3];B=[0;0;0;1];C=[1000];D=0运行仿真,在Workspace中就得到tout和yout两个变量。其中输出变量yout的前两列为系统的输出信号,后4列为系统的状态变量。在Matlab的命令窗口输入plot(tout,yout(:,
本文标题:合肥工业大学系统控制仿真综合实验报告
链接地址:https://www.777doc.com/doc-4535420 .html