MATLAB_实验5
- 格式:doc
- 大小:459.50 KB
- 文档页数:21
第5章频率特性法频域分析法是一种图解分析法,可以根据系统的开环频率特性去判断闭环系统的性能,并能较方便地分析系统参量对系统性能的影响,从而指出改善系统性能的途径,已经发展成为一种实用的工程方法,其主要内容是:1)频率特性是线性定常系统在正弦函数作用下,稳态输出与输入的复数之比对频率的函数关系。
频率特性是传递函数的一种特殊形式,也是频域中的数学模型。
频率特性既可以根据系统的工作原理,应用机理分析法建立起来,也可以由系统的其它数学模型(传递函数、微分方程等)转换得到,或用实验法来确定。
2)在工程分析和设计中,通常把频率特性画成一些曲线。
频率特性图形因其采用的坐标不同而分为幅相特性(Nyquist图)、对数频率特性(Bode图)和对数幅相特性(Nichols图)等形式。
各种形式之间是互通的,每种形式有其特定的适用场合。
开环幅相特性在分析闭环系统的稳定性时比较直观,理论分析时经常采用;波德图可用渐近线近似地绘制,计算简单,绘图容易,在分析典型环节参数变化对系统性能的影响时最方便;由开环频率特性获取闭环频率指标时,则用对数幅相特性最直接。
3)开环对数频率特性曲线(波德图)是控制系统分析和设计的主要工具。
开环对数幅频特性L(ω)低频段的斜率表征了系统的型别(v),其高度则表征了开环传递系数的大小,因而低频段表征系统稳态性能;L(ω)中频段的斜率、宽度以及幅值穿越频率,表征着系统的动态性能;高频段则表征了系统抗高频干扰的能力。
对于最小相位系统,幅频特性和相频特性之间存在着唯一的对应关系,根据对数幅频特性,可以唯一地确定相应的相频特性和传递函数。
4)奈奎斯特稳定性判据是利用系统的开环幅相频率特性G(jω)H(jω)曲线,又称奈氏曲线,是否包围GH平面中的(-l,j0)点来判断闭环系统的稳定性。
利用奈奎斯特稳定判据,可根据系统的开环频率特性来判断闭环系统的稳定性,并可定量地反映系统的相对稳定性,即稳定裕度。
稳定裕度通常用相角裕量和幅值裕量来表示。
实验五1、 编写程序,该程序在同一窗口中绘制函数在[]0,2π之间的正弦曲线和余弦曲线,步长为200/π,线宽为 2 个象素,正弦曲线设置为蓝色实线,余弦曲线颜色设置为红色虚线,两条曲线交点处,用红色星号标记,并通过函数方式在生成的图形中添加注释,至少应包括:标题,文本注释,图例和坐标轴标注。
x=0:pi/200:2*pi;sinx = sin(x); cosx = cos(x);k=find(abs(sinx-cosx)<1e-2); x1=x(k);figure,plot(x,sinx,'LineWidth',2) hold on ,plot(x,cosx,'r:','LineWidth',2)hold on ,plot(x(find(cosx==sinx)),cosx(find(cosx==sinx)),'r*','LineWidth',2)hold on ,plot(x1,sin(x1),'r*') xlabel('x:(0-2\pi)'); ylabel('y:sin(x)/cos(x)');title('正弦曲线和余弦曲线');text(x1+0.1,sin(x1),'sin(x)=cos(x)');gtext('sin(x)') gtext('cos(x)')legend('sin(x)','cos(x)')2、 绘制图像:双曲抛物面:22164x y z =-,1616x -<<,44y -<<,并对绘制的双曲抛物面尝试进行视点控制。
[X,Y] = meshgrid(-16:0.4:16,-4:0.1:4); Z = X.^2/16 - Y.^2/4;subplot(1,3,1),plot3(X,Y,Z),view(0,180),title('azimuth = 0,elevation = 180'); subplot(1,3,2),plot3(X,Y,Z),view(-37.5,-30),title('azimuth = -37.5,elevation = -30');subplot(1,3,3),plot3(X,Y,Z),view([3,3,2]),title('viewpoint=[3,3,1]');3、 表中列出了4个观测点的6次测量数据,将数据绘制成为分组形式和堆叠形式的条形图。
《管理数学实验》实验报告班级姓名实验1:MATLAB的数值运算【实验目的】(1)掌握MATLAB变量的使用(2)掌握MATLAB数组的创建,(3)掌握MA TLAB数组和矩阵的运算。
(4)熟悉MATLAB多项式的运用【实验原理】矩阵运算和数组运算在MA TLAB中属于两种不同类型的运算,数组的运算是从数组元素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。
【实验步骤】(1)使用冒号生成法和定数线性采样法生成一维数组。
(2)使用MA TLAB提供的库函数reshape,将一维数组转换为二维和三维数组。
(3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑运算。
(4)使用MA TLAB绘制指定函数的曲线图,将所有输入的指令保存为M文件。
【实验内容】(1)在[0,2*pi]上产生50个等距采样数据的一维数组,用两种不同的指令实现。
0:(2*pi-0)/(50-1):2*pi 或linspace(0,2*pi,50)(2)将一维数组A=1:18,转换为2×9数组和2×3×3数组。
reshape(A,2,9)ans =Columns 1 through 71 3 5 7 9 11 132 4 6 8 10 12 14Columns 8 through 915 1716 18reshape(A,2,3,3)ans(:,:,1) =1 3 52 4 6ans(:,:,2) =7 9 118 10 12 ans(:,:,3) =13 15 17 14 16 18(3)A=[0 2 3 4 ;1 3 5 0],B=[1 0 5 3;1 5 0 5],计算数组A 、B 乘积,计算A&B,A|B,~A,A= =B,A>B 。
A.*Bans=0 0 15 121 15 0 0 A&Bans =0 0 1 11 1 0 0 A|Bans =1 1 1 11 1 1 1~Aans =1 0 0 00 0 0 1A==Bans =0 0 0 01 0 0 0A>=Bans =0 1 0 11 0 1 0(4)绘制y= 0.53t e -t*t*sin(t),t=[0,pi]并标注峰值和峰值时间,添加标题y= 0.53t e -t*t*sint ,将所有输入的指令保存为M 文件。
实验一 MATLAB 运算基础1、 先求下列表达式得值,然后显示MATLAB 工作空间得使用情况并保存全部变量。
(1) 0122sin 851z e =+(2) 21ln(2z x =+,其中2120.455i x +⎡⎤=⎢⎥-⎣⎦ (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e a z a a --+=++=--L (4) 2242011122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪-+≤<⎩,其中t =0:0、5:2、5 解:4、 完成下列操作:(1) 求[100,999]之间能被21整除得数得个数。
(2) 建立一个字符串向量,删除其中得大写字母。
解:(1) 结果:(2)、 建立一个字符串向量 例如:ch='ABC123d4e56Fg9';则要求结果就是:实验二 MATLAB 矩阵分析与处理1、 设有分块矩阵33322322E R A O S ⨯⨯⨯⨯⎡⎤=⎢⎥⎣⎦,其中E 、R 、O 、S 分别为单位矩阵、随机矩阵、零矩阵与对角阵,试通过数值计算验证22E R RS A OS +⎡⎤=⎢⎥⎣⎦。
解: M 文件如下;5、 下面就是一个线性方程组:1231112340.951110.673450.52111456x x x ⎡⎤⎢⎥⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎢⎥⎣⎦(1) 求方程得解。
(2) 将方程右边向量元素b 3改为0、53再求解,并比较b 3得变化与解得相对变化。
(3) 计算系数矩阵A 得条件数并分析结论。
解: M 文件如下:实验三 选择结构程序设计1、 求分段函数得值。
2226035605231x x x x y x x x x x x x ⎧+-<≠-⎪=-+≤<≠≠⎨⎪--⎩且且及其他用if 语句实现,分别输出x=-5、0,-3、0,1、0,2、0,2、5,3、0,5、0时得y 值。
实验一 MATLAB基本操作一、实验目的1、了解MATLAB应用程序环境2、掌握MATLAB语言程序的书写格式和MATLAB语言程序的结构。
3、掌握在MATLAB应用环境下编写程序4、掌握MATALB调试过程,帮助文件5、掌握MATLAB语言上机步骤,了解运行一个MATLAB程序的方法。
6、本实验可在学习完教材第一章后进行。
二、主要仪器及耗材PC电脑,MATLAB6.5软件三、实验内容和步骤1、MATLAB语言上机步骤:(1)、进入系统在C盘或其他盘上找到MATLAB或MATLAB6.5,然后双击其图标打开文件夹。
然后进行编辑源程序->编译->连接->执行程序->显示结果(2)、常用命令编辑切换(F6),编译(F9),运行(CTRL+F9),显示结果(ALT+F5)其它常用命令见“附录一”。
2、有下面的MATLAB程序。
(1)数值计算功能:如,求方程 3x4+7x3 +9x2-23=0的全部根p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根(2)绘图功能:如,绘制正弦曲线和余弦曲线x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));(3)仿真功能:如,请调试上述程序。
3、熟悉MATLAB环境下的编辑命令,具体见附录一。
三、实验步骤1、静态地检查上述程序,改正程序中的错误。
2、在编辑状态下照原样键入上述程序。
3、编译并运行上述程序,记下所给出的出错信息。
4、按照事先静态检查后所改正的情况,进行纠错。
5、再编译执行纠错后的程序。
如还有错误,再编辑改正,直到不出现语法错误为止。
四、实验注意事项1、记下在调试过程中所发现的错误、系统给出的出错信息和对策。
分析讨论对策成功或失败的原因。
2、总结MATLAB程序的结构和书写规则。
五、思考题1、matlab到底有多少功能?2、MATLAB的搜索路径3、掌握使用MATLAB帮助文件实验二 MATLAB 矩阵及其运算一、 实验目的1、了解矩阵的操作,包括矩阵的建立、矩阵的拆分、矩阵分析等2、了解MATLAB 运算,包括算术运算、关系运算、逻辑运算等3、掌握字符串的操作,了解结构数据和单元数据。
MATLAB实验一:MATLAB语言基本概念实验实验目的:1. 熟悉MATLAB语言及使用环境;2.掌握MATLAB的常用命令;3.掌握MATLAB的工作空间的使用;4.掌握MATLAB的获得帮助的途径。
5.掌握科学计算的有关方法,熟悉MATLAB语言及其在科学计算中的运用;6.掌握MATLAB的命令运行方式和M文件运行方式;7.掌握矩阵在MATLAB中的运用。
实验方案分析及设计:本次实验主要目的是了解MATLAB的使用环境,以及常用的一些命令的使用;了解矩阵在MATLAB实验中的具体运用,以及相关的一些符号命令的使用。
实验器材:电脑一台,MATLAB软件实验步骤:打开MATLAB程序,将实验内容中的题目依次输入MATLAB中,运行得到并记录结果,最后再对所得结果进行验证。
实验内容及要求:1.熟悉MATLAB的菜单和快捷键的功能2.熟悉MATLAB的命令窗口的使用3.熟悉常用指令的使用format clc clear help lookfor who whos 4.熟悉命令历史窗口的使用5. 熟悉MATLAB工作空间的功能将工作空间中的变量保存为M文件,并提取该文件中的变量6.熟悉MATLAB获取帮助的途径将所有plot开头的函数列出来,并详细给出plotfis函数的使用方法1. 输入 A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2;3 3 3],在命令窗口中执行下列表达式,掌握其含义:A(2, 3) A(:,2) A(3,:) A(:,1:2:3)A(:,3).*B(:,2) A(:,3)*B(2,:) A*BA.*BA^2 A.^2 B/A B./AA=[7 1 5;2 5 6;3 1 5]7 1 52 5 63 1 5>> B=[1 1 1; 2 2 2;3 3 3]1 1 12 2 23 3 3>> A(2, 3)6>> A(:,2)151>> A(3,:)3 1 5>> A(:,1:2:3)7 52 63 5>> A(:,3).*B(:,2)51215>> A(:,3)*B(2,:)10 10 1012 12 1210 10 10>> A*B24 24 2430 30 3020 20 20>> A.*B7 1 54 10 129 3 15>> A^266 17 6642 33 7038 13 46>> A.^249 1 254 25 369 1 25>> B/A0.1842 0.2105 -0.23680.3684 0.4211 -0.47370.5526 0.6316 -0.7105>> B./A0.1429 1.0000 0.20001.0000 0.4000 0.33331.0000 3.0000 0.60002.输入 C=1:2:20,则 C (i )表示什么?其中 i=1,2,3, (10)1到19差为2,i 代表公差3. 试用 help 命令理解下面程序各指令的含义:cleart =0:0.001:2*pi;subplot(2,2,1);polar(t, 1+cos(t))subplot(2,2,2);plot(cos(t).^3,sin(t).^3)subplot(2,2,3);polar(t,abs(sin(t).*cos(t)))subplot(2,2,4);polar(t,(cos(2*t)).^0.5)4计算矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡897473535与⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡638976242之和。
实验五 MATLAB 数值计算一、实验目的1.掌握求数值导数和数值积分的方法。
2.掌握代数方程数值求解的方法。
3.掌握常微分方程数值求解的方法。
二、实验的设备及条件计算机一台(带有MATLAB7.0以上的软件环境)。
设计提示1.参考本节主要内容,学习并理解相关函数的含义及调用方法。
三、实验内容1.线性系统方程:分别使用左除(\)和求逆(inv )求解下面系统方程的解:⎪⎩⎪⎨⎧=+=+=++377251463c b b a c b a2. 数值积分:使用quad 和trapz 求解⎰-503/dx xe x 的数值积分,并与其解析解9243/5+--e 相比较;3. 请完成教材P154页中实验指导环节的实验内容第2题4. 请完成教材P155页中思考练习的第3题(1),并绘制解在该求解区间(即[0,5])上的图像;。
5、请完成教材P164页实验指导环节的实验内容第5题。
(提示:该函数的符号导数,可以通过函数diff 求得。
首先定义符号变表达式,如求sin(x)的一阶符号导数,可以先定义f=’sin(x)’;df=diff(f);可求得df=cos(x)。
其中df 即为函数f 的一阶符号导数)。
四、实验报告要求(包含预习报告要求和最终报告要求)1.实验名称2.实验目的3.实验设备及条件4.实验内容及要求5.实验程序设计指程序代码。
6.实验结果及结果分析实验结果要求必须客观,现象。
结果分析是对实验结果的理论评判。
7.实验中出现的问题及解决方法8. 思考题的回答五、实验报告的提交方式Word文档,命名方式:实验号_你的学号_姓名例如本次实验:实验一_000000001_张三.doc(信息101提交报告邮箱):E_mail: *******************(网络工程101提交作业邮箱):E_mail: *******************(注意网络班的M是大写的)下一次课前提交,过期不收!六、参考文献参考教材和Matlab帮助文件。
实验报告说明:matlab 课程实验需撰写8个实验报告,每个实验报告内容写每次实验内容中标号呈黑体大号字显示的题目。
第一次实验内容:实验一 MATLAB 运算基础一、实验目的1.熟悉启动和退出MATLAB 的方法。
2.熟悉MATLAB 命令窗口的组成。
3.掌握建立矩阵的方法。
4.掌握MATLAB 各种表达式的书写规则以及常用函数的使用。
二、实验内容1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存全部变量。
(1)22sin 8511z e ︒=+(2)12ln(2z x =,其中2120.455i +⎡⎤=⎢⎥-⎣⎦(3)0.30.33sin(0.3), 3.0, 2.9, 2.8,,2.8,2.9,3.02a ae e z a a --=+=---提示:利用冒号表达式生成a 向量,求各点的函数值时用点乘运算。
(4)2220141122123t t z t t t t t ⎧≤<⎪=-≤<⎨⎪--≤<⎩,其中t =0:0.5:2.5 提示:用逻辑表达式求分段函数值。
2.已知12344347873657A -⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦,131203327B -⎡⎤⎢⎥=⎢⎥⎢⎥-⎣⎦求下列表达式的值:(1) A+6=B 和A-B+I(其中I 为单位矩阵)。
(2) A*B 和A.*B 。
(3) A^3和A^.3 。
(4) A/B 和B\A 。
(5)[A ,B]和[A([1,3],;);B^2] 。
3.设有矩阵A 和B12345678910111213141516171819202122232425A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦, 30161769023497041311B ⎡⎤⎢⎥-⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎣⎦(1) 求它们的乘积C 。
(2) 将矩阵C 的右下角3×2子矩阵赋给D (3) 查看MATLAB 工作空间使用情况。
4.完成下列操作:(1)求[100,999]之间能被21整除的数的个数。
实验项目及学时安排实验一 MATLAB环境的熟悉与基本运算 2学时实验二 MATLAB数值计算实验 2学时实验三 MATLAB数组应用实验 2学时实验四 MATLAB符号计算实验 2学时实验五 MATLAB的图形绘制实验 2学时实验六 MATLAB的程序设计实验 2学时实验七 MATLAB工具箱Simulink的应用实验 2学时实验八 MATLAB图形用户接口GUI的应用实验 2学时实验一 MATLAB环境的熟悉与基本运算一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令3.MATLAB变量与运算符变量命名规则如下:(1)变量名可以由英语字母、数字和下划线组成(2)变量名应以英文字母开头(3)长度不大于31个(4)区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式5.MATLAB的基本运算表7 两种运算指令形式和实质涵的异同表6.MATLAB的常用函数表8 标准数组生成函数表9 数组操作函数三、实验容1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)2、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、 exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
本次实验注意:《实验五MALTAB基础知识(简单)》《实验五基于Matlab的信号频谱分析(复杂)》选作一个即可实验五MALTAB基础知识(一)实验目的 (2)(二)实验设备 (2)(三)实验要求 (2)(四)实验内容 (2)1.1 MATLAB基础知识 (2)1.1.1 MATLAB程序设计语言简介 (2)1.1.2 MA TLAB界面及帮助 (2)1.2 MA TLAB基本运算 (4)1.2.1 MA TLAB内部特殊变量和常数 (4)1.2.2 变量类型 (4)1.2.3 内存变量管理 (5)1.2.4 MA TLAB常用数学函数 (5)1.2.5 MA TLAB矩阵生成 (5)1.2.6 MA TLAB矩阵运算 (8)1.2.7 MA TLAB中的矩阵分析 (10)1.3 MA TLAB程序设计 (10)1.3.1 M文件 (10)1.3.2 程序控制结构 (12)实验五MALTAB基础知识(一)实验目的●了解MA TLAB 程序设计语言的基本特点,熟悉MA TLAB软件运行环境●掌握创建、保存、打开m文件及函数的方法●掌握变量等有关概念,具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力(二)实验设备计算机,Matlab软件(三)实验要求本实验属于验证实验,请根据(四)实验内容的步骤,运行相应的指令或例子,并将仿真结果截图至文档(请自己新建一个word文档,注意,并不一定所有指令或例子的实验结果都要截图,截图数目大于等于5个即可,自己选择性截图,答案不唯一,自由发挥)请在页眉处填写班级、学号、姓名,并将实验报告命名为“实验五_学号_姓名”,并通过FTP上传至指定文件夹。
(四)实验内容1.1 MATLAB基础知识1.1.1 MATLAB程序设计语言简介MA TLAB,Matrix Laboratory的缩写,是由MathWorks公司开发的一套用于科学工程计算的可视化高性能语言,具有强大的矩阵运算能力。
实验5 MATLAB在信号与系统的应用【实验目的】1、了解并熟悉MATLAB实现常用连续时间信号的产生方法;连续系统的时域和频域分析方法。
2、掌握MATLAB程序的编程方法。
3、了解MATLAB信号处理工具箱函数的调用方法。
【实验内容】1、对书上例题的总结例1 绘制了单位冲激函数、单位阶跃函数与复指数函数的图形,用到的关键语句单位冲激函数:x1=zeros(1,length(t)); %对所有信号初始化,t为时间x1(n1)=1/dt; %给出t1时刻脉冲信号,dt为时间间隔单位阶跃函数:x2 = [zeros(1,n1),ones(1,length(t)-n1)];%产生阶跃信号,n1为t1对应的样本序号例2 求解了LTI系统的零输入响应,用到了经典法求解,关键语句如下:p=roots(a); %求系统的极点V=rot90(vander(p));c= V\Y0'; % 用范德蒙特矩阵求对应于各极点的系数for k=1:n y= y+c(k)*exp(p(k)*t);end例3 求解n阶LTI系统的冲激响应,用到了residue函数求解极点和留数,还用到了for语句叠加各根分量。
例4 主要是卷积的计算。
用到的函数有conv函数计算卷积,input函数等待用户输入数值,fliplr(h)函数将h左右翻转。
例5 求LTI系统的零状态响应,和求解零输入同样用到留数residue函数来求解冲激响应函数,并且绘制冲激响应函数的图形,然后将其与输入信号的卷积求出,即输出函数,最后绘制输出函数的图形。
例7 将周期方波分解为多次正弦波之和,用程序演示谐波合成情况。
用到的新函数是line([0,pi+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注halft=ceil(length(t)/2);mesh(t(1:halft),[1:10],y(:,1:halft)) %绘制三维图形例10 比较调幅信号通过带通滤波器后与原波形的区别。
实验五 基于Matlab 的数字滤波器设计实验目的:加深对数字滤波器的常用指标和设计过程的理解。
实验原理:低通滤波器的常用指标如下所述,其典型规格如下:⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧≤≤≤≤+≤≤-πδδδw w e G w w e G s s jw p p jw p ,)(,1)(1 通带边缘频率:p ϖ阻带边缘频率:s ϖ 通带起伏:p δ 通带峰值起伏:))(1(log 2010dB p p δα--=阻带起伏: s δ 最小阻带衰减:))((log 2010dB s s δα-=数字滤波器有IIR 和FIR 两种类型,他们的特点和设计方法不同。
一、窗函数法设FIR 滤波器在Matlab 中产生窗函数十分简单:(1) 矩形窗调用格式:w=boxcar(n) ,根据长度n 产生一个矩形窗w 。
(2) 三角窗调用格式:w=triang(n) ,根据长度n 产生一个三角窗w 。
(3)汉宁窗调用格式:w=hanning(n) ,根据长度n 产生一个汉宁窗w 。
(4)汉明窗调用格式:w=hamming(n) ,根据长度n 产生一个汉明窗w 。
(5)布莱克曼窗调用格式:w=Blackman(n) ,根据长度n 产生一个布莱克曼窗w 。
基于窗函数的FIR 滤波器设计利用Matlab 提供的函数firl 来实现。
调用格式:firl(n,wn,’ftype ’,Window),n 为阶数,wn 是截止频率(如果输入是形如[w1 w2]的矢量时,本函数将设计带通滤波器,其通带为w1<w<w2)、ftype 是滤波器的类型(底通——省略该参数、高通——ftype=high 、带阻——ftype=stop )、Window 是窗函数。
1、设计一个长度为8的线性相位FIR 滤波器。
Window=boxcar(8); b=fir1(7,0.4,Window); freqz(b,1); Window=blackman(80;b=fir1(7,0.4,Window); freqz(b,1);2、设计线性相位带通滤波器,其长度N=15,上下边带截止频率分别为w1=0.3π,w2=0.5π Window=blackman(16); B=firl(15,[0.3 0.5],Window); Freqz(b,1);3、设计指标为,dB A dB R s a p p 50,3.0,25.0,2.0====πϖπϖ的底通滤波器。
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
数学实验报告实验序号:实验一日期:实验序号:实验二日期:实验序号: 实验三 日期:班级 姓名 学号实验 名称架设电缆的总费用问题背景描述:一条河宽1km ,两岸各有一个城镇A 与B ,A 与B 的直线距离为4km ,今需铺设一条电缆连接A 于B ,已知地下电缆的铺设费用是2万元/km ,水下电缆的修建费用是4万元/km 。
实验目的:通过建立适当的模型,算出如何铺设电缆可以使总花费最少。
数学模型:如图中所示,A-C-D-B 为铺设的电缆路线,我们就讨论a=30度,AE (A 到河岸的距离)=0.5km ,则图中:DG=4-AC cos b -1/tan c ; BG=0.5km AC=AE/sin bCD=EF/sin c=1/sin c BD=BG D 22G则有总的花费为:W=2*(AC+BD )+4*CD ;我们所要做的就是求最优解。
实验所用软件及版本:Matlab 7.10.0实验序号: 实验四 日期:班级 姓名 学号实验 名称慢跑者与狗问题背景描述:一个慢跑者在平面上沿曲线25y x 22=+以恒定的速度v 从(5,0)起逆时钟方向跑步,一直狗从原点一恒定的速度w ,跑向慢跑者,在运动的过程中狗的运动方向始终指向慢跑者。
实验目的:用matlab 编程讨论不同的v 和w 是的追逐过程。
数学模型:人的坐标为(manx,many ),狗的坐标为(dogx,dogy ),则时间t 时刻的人的坐标可以表示为manx=R*cos(v*t/R); many=R*sin(v*t/R);sin θ=| (many-dogy)/sqrt((manx-dogx)^2+(many-dogy)^2)|;cos θ=| (manx-dogx)/sqrt((manx-dogx)^2+(many-dogy)^2)|;则可知在t+dt 时刻狗的坐标可以表示为:dogx=dogx(+/-)w* cos θ*dt; dogy=dogy(+/-)w* sin θ*dt; (如果manx-dogx>0则为正号,反之则为负号)实验所用软件及版本:Matlab 7.10.0实验序号:实验五日期:班级姓名学号两圆的相对滚动实验名称问题背景描述:有一个小圆在大圆内沿着大圆的圆周无滑动的滚动。
实验五 数值微积分与方程数值求解一、实验目的1. 掌握求数值导数和数值积分的方法。
2. 掌握代数方程数值求解的方法。
3. 掌握常微分方程数值求解的方法。
二、实验内容要求:命令手工 ( )输入1. 求函数在指定点的数值导数。
232()123,1,2,3026x x x f x x x x x==2. 用数值方法求定积分。
(1) 210I π=⎰的近似值。
(2) 2220ln(1)1x I dt xπ+=+⎰3. 分别用三种不同的数值方法解线性方程组。
6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩4. 求非齐次线性方程组的通解。
1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩解:先建立M 函数文件,然后命令窗口中写命令。
121/119/112/115/111/1110/11100010X k k --⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,其中12,k k 为任意常数。
5. 求代数方程的数值解。
(1) 3x +sin x -e x =0在x 0=1.5附近的根。
(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。
23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩ans =1289/6826. 求函数在指定区间的极值。
(1) 3cos log ()xx x x x f x e ++=在(0,1)内的最小值。
(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。
(以下选作题,是微分方程的数值解)7. 求微分方程的数值解。
x 在[1.0e-9,20]2250(0)0'(0)0xd y dy y dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩解:M 文件:运行结果:8. 求微分方程组的数值解,并绘制解的曲线。
第五章%Exercise 1x=[0 4 10 12 15 22 28 34 40];y=[0 1 3 6 8 9 5 3 0];trapz(x,y)%Exercise 2x=[0 4 10 12 15 22 28 34 40];y=[0 1 3 6 8 9 5 3 0];diff(y)./diff(x)%Exercise 3xa=-1:0.1:1;ya=0:0.1:2;[x,y]=meshgrid(xa,ya);z=x.*exp(-x.^2 -y.^3);[px,py] = gradient(z,xa,ya);px%Exercise 4t=0:0.01:1.5;x=log(cos(t));y=cos(t)-t.*sin(t);dydx=gradient(y,x)plot(x,dydx) %dydx函数图,作图观察x=-1时,dydx的值约0.9 %以下是更精确的编程计算方法[x_1,id]=min(abs(x-(-1)));%找最接近x=-1的点,id为这个点的下标dydx(id)%Exercise 5(1)fun=@(x)1/sqrt(2*pi)*exp(-x.^2/2);quadl(fun,0,1)或用trapzx=linspace(0,1,100);y=1/sqrt(2*pi)*exp(-x.^2/2);trapz(x,y)%Exercise 5(2)fun=inline('exp(2*x).*cos(x).^3');quadl(fun,0,2*pi)或用trapzx=linspace(0,2*pi,100);y=exp(2*x).*cos(x).^3;trapz(x,y)%Exercise 5(3)fun=@(x)x.*log(x.^4).*asin(1./x.^2);quadl(fun,1,3)或用trapzx=1:0.01:3;y=feval(fun,x);trapz(x,y)%Exercise 5(4)fun=@(x)sin(x)./x;quadl(fun,1e-10,1) %注意由于下限为0,被积函数没有意义,用很小的1e-10代替%Exercise 5(5)fun=inline('x.^(-x)','x');quadl(fun,1e-10,1) %注意由于下限为0,被积函数没有意义,用很小的1e-10代替%Exercise 5(6)fun=inline('sqrt(1+r.^2.*sin(th))','r','th');dblquad(fun,0,1,0,2*pi)%Exercise 5(7)%先在Editer窗口建立90页函数dblquad2,再在Command窗口clear;fun=@(x,y)1+x+y.^2;clo=@(x)-sqrt(2*x-x.^2);dhi=@(x)sqrt(2*x-x.^2);dblquad2(fun,0,2,clo,dhi,100)%Exercise 6t=linspace(0,2*pi,100);x=2*cos(t);y=3*sin(t);dx=gradient(x,t);dy=gradient(y,t);f=sqrt(dx.^2+dy.^2);trapz(t,f)%Exercise 6另一解法%先写参数方程x=2*cos(t);y=3*sin(t);%计算x'(t)=-2*sin(t),y'(t)=3*cos(t)%4*sin(t)^2+9*cos(t)^2=4+5*cos(t)^2fun=@(t)sqrt(4+5*cos(t).^2);quadl(fun,0,2*pi)%Exercise 7%先算出z的梯度dz/dx=(1-2*x^2)*exp(-x^2-y^2),dz/dy=(1-2*y^2)*exp(-x^2-y^2);%根据曲面面积公式fun=@(x,y)sqrt(1+((1-2*x.^2).*exp(-x.^2-y.^2)).^2+((1-2*y.^2)*exp(-x.^2-y.^2)).^2);dblquad(fun,-1,1,0,2)%或者用下列纯粹离散化解法xa=linspace(-1,1);ya=linspace(0,2);[x,y]=meshgrid(xa,ya);z=x.*exp(-x.^2-y.^2);[zx,zy]=gradient(z,xa,ya);f=sqrt(1+zx.^2+zy.^2);s=0;for i=2:length(xa)for j=2:length(ya)s=s+(xa(i)-xa(i-1))*(ya(j)-ya(j-1))*(f(i,j)+f(i-1,j)+f(i,j-1)+f(i-1,j-1))/4;%每个近似长方体高用四顶点平均值endends%Exercise 8funl=inline('-(-x).^0.2.*cos(x)');funr=inline('x.^0.2.*cos(x)');quadl(funl,-1,0)+quadl(funr,0,1)%Exercise 9 (以I32为例)fun=@(x)abs(sin(x));h=0.1;x=0:h:32*pi;y=feval(fun,x);t1=trapz(x,y)h=pi;x=0:h:32*pi;y=feval(fun,x);t2=trapz(x,y)%步长与周期一致,结果失真q1=quad(fun,0,32*pi)q2=quadl(fun,0,32*pi)%Exercise 10(1)先在Editer窗口建立88页函数deriv,再在Command窗口fun=inline('x.^2.*sin(x.^2+3*x-4)','x');deriv(fun,[1.3 1.5],0.1,1e-3) %取0.1为初始步长%注:书后习题答案错,1.3处导数应为2.4177,1.5处导数应为-11.3330%Exercise 10(2)%先在程序编辑器,写下列函数,保存为ex5_10_2ffunction d=ex5_10_2f(fname,a,h0,e)h=h0;d=(fname(a+h)-2*fname(a)+fname(a-h))/(h*h);d0=d+2*e;while abs(d-d0)>ed0=d;h0=h;h=h0/2;d=(fname(a+h)-2*fname(a)+fname(a-h))/(h*h);end%再在指令窗口执行fun=@(x)x.^2*sin(x.^2-x-2);d=ex5_10_2f(fun,1.4,0.1,1e-3)%Exercise 11%提示:f上升时,f'>0;f下降时,f'<0; f极值,f'=0.%Exercise 12在程序编辑器,写下列函数,保存为ex5_12function I=ex5_12(fname,a,b,n)h=(b-a)/n;x=a:h:b;f=fname(x);I=f(1)+f(n+1);for i=2:nif i-2*floor(i/2)==0I=I+4*f(i);elseI=I+2*f(i);endendI=h/3*I;%再在指令窗口执行ex5_12(inline('1/sqrt(2*pi)*exp(-x.^2/2)'),0,1,50) %注:原题n=5改为偶数n=50%更加符合Matlab风格的编程ex5_12function I=ex5_12f(fname,a,b,n)x=linspace(a,b,n+1);f=fname(x);I=(b-a)/n/3*(f(1)+f(n+1)+2*sum(f(3:2:n))+4*sum(f(2:2:n)));%Exercise 13fun=inline('5400*v./(8.276*v.^2+2000)','v');quadl(fun,15,30)%Exercise 14重心不超过凳边沿。
实验5 MATLAB在信号与系统的应用【实验目的】1、了解并熟悉MATLAB实现常用连续时间信号的产生方法;连续系统的时域和频域分析方法。
2、掌握MATLAB程序的编程方法。
3、了解MATLAB信号处理工具箱函数的调用方法。
【实验内容】1、对书上例题的总结例1 绘制了单位冲激函数、单位阶跃函数与复指数函数的图形,用到的关键语句单位冲激函数:x1=zeros(1,length(t)); %对所有信号初始化,t为时间x1(n1)=1/dt; %给出t1时刻脉冲信号,dt为时间间隔单位阶跃函数:x2 = [zeros(1,n1),ones(1,length(t)-n1)];%产生阶跃信号,n1为t1对应的样本序号例2 求解了LTI系统的零输入响应,用到了经典法求解,关键语句如下:p=roots(a); %求系统的极点V=rot90(vander(p));c= V\Y0'; % 用范德蒙特矩阵求对应于各极点的系数for k=1:n y= y+c(k)*exp(p(k)*t);end例3 求解n阶LTI系统的冲激响应,用到了residue函数求解极点和留数,还用到了for语句叠加各根分量。
例4 主要是卷积的计算。
用到的函数有conv函数计算卷积,input函数等待用户输入数值,fliplr(h)函数将h左右翻转。
例5 求LTI系统的零状态响应,和求解零输入同样用到留数residue函数来求解冲激响应函数,并且绘制冲激响应函数的图形,然后将其与输入信号的卷积求出,即输出函数,最后绘制输出函数的图形。
例7 将周期方波分解为多次正弦波之和,用程序演示谐波合成情况。
用到的新函数是line([0,pi+0.5],[pi/4,pi/4]) % 加上方波幅度线及标注halft=ceil(length(t)/2);mesh(t(1:halft),[1:10],y(:,1:halft)) %绘制三维图形例10 比较调幅信号通过带通滤波器后与原波形的区别。
用到了频率响应函数求解滤波器在各个频点上的频率响应,可以用H=polyval(b,j*w) ;也可以用H=freqs(b,a,w);可以再下图中观察到它们的去区别:例11 非周期信号(方波)的频谱分析,用到了傅里叶变换,F1 = f*exp(-j*t'*w1)*dt; % 求付利叶变换w = [-fliplr(w1),w1(2:Nf)]; % 补上负频率F = [fliplr(F1),F1(2:Nf)]; % 补上负频率区的频谱2、连续信号表示:编写程序:产生下列连续信号,并且绘制出相应的波形图:1)、()(2)(4)(26)=-+- -≤≤f t u t u t t程序如下:t=-2:0.05:6;x1=t>=2;x2=t>=4;x=x1+x2;stairs(t,x,'linewidth',1.5)axis([-2,6,-0.1,2.1])grid ontitle('f(t)=u(t-2)+u(t-4)') xlabel('t') ylabel('f(t)')图形显示:2)、()c o s (4)(03)t ft et t π-= ≤≤程序如下:t=(0:0.01:3)';x1=exp(-t)*[1 -1];%生成exp(-t)和-exp(-t),即包络曲线 x2=cos(4*pi*t); x=exp(-t).*x2; plot(t,x1,t,x)legend('x1','x1','x'),grid on图形显示:3)、(0.20.5)()3(04)j tf t et ππ+= ≤≤ 程序如下:t=0:pi/100:4*pi;f=3*exp((0.2+j*0.5*pi)*t);plot(t,f),gridlegend('f')xlabel('t'),ylabel('f')图形显示:4)、周期矩形信号。
一连续周期矩形信号频率为10Hz,信号幅度在-1~1之间,脉冲宽度与周期的比例是1:2,用128点采样,显示三个周期的信号波形(square 函数)。
程序如下:U=1;N=128;f=10;T=1/f;t=0:T/N:3*T;u=U*square(2*pi*f*t);plot(t,u)axis([0,3*T+eps,-1.1,1.1]),grid on图形显示:3、信号卷积求解: 1)、已知两信号分别为:0.61()(010)t f e u t t -= <<2()(015)f u t t = <<求两信号的卷积和并画出卷积波形。
程序如下: cleart1=0:0.1:10; t2=0:0.1:15; f1=exp(-0.6*t1); f2=ones(1,length(t2));tn=t1(length(f1))+t2(length(f2)); f=conv(f1,f2) t=0:0.1:tn;subplot(3,1,1),plot(t1,f1),title('f1的图形') subplot(3,1,2),plot(t2,f2),title('f2的图形')subplot(3,1,3),plot(t,f),title('f=conv(f1,f2)的图形') xlabel('t'),ylabel('f'),grid on结果显示:2)、已知两信号分别为:f1(t)=0.5t (0<t<2) f2(4)=2t (-1<t<3) 计算两信号的卷积并画出卷积波形。
由于conv 求卷积时,两个函数的时间是从0开始求解的,所以对于该题不能直接利用conv 函数来求解卷积,所以必须编写一个函数,函数可以从任意时刻开始求卷积,编写的Function 函数如下,命名为conv_m ,以便调用:function [ y ny] = conv_m(x1,x2,t1,t2,dt) y=conv(x1,x2); ny1=t1(1)+t2(1);ny2=t1(length(x1))+t2(length(x2)); ny=ny1:dt:ny2; end程序如下:t1=0:0.05:2;dt=0.05; t2=-1:0.05:3; x1=0.5*t1; x2=2*t2;[ y ny] = conv_m(x1,x2,t1,t2,dt);%以上所有程序可以用下面一个式子代替,实现的功能都相同 % [ y ny] = conv_m(0.5*[0:0.05:2],2*[-1:0.05:3],0:0.05:2,-1:0.05:3,0.05) plot(ny,y) grid onxlabel('ny'),ylabel('y')title('f1(t)=0.5t 与f2(4)=2t 的卷积')4、系统时域求解:已知某连续时间系统的微分方程为:()2()()()2()r t r t r t e t e t ''''++=+,输入信号为)()(2t u e t e t -=1)、求解该系统的冲激响应h(t),及阶跃响应g(t)。
2)、求解该系统的零状态响应。
3)、当r(0-)=2,r’(0-)=-1时,求解该系统的零输入响应。
要求写出表达式,并且绘制波形。
先编写程序绘制各自响应的波形图,再求其表达式①绘制冲激响应、阶跃响应与零状态响应图形的程序如下:clearb=[0,1,2];a=[1,2,1];t=-1:0.05:10;ut=t>=0;x=exp(-2*t).*ut;impulse(b,a),grid on,hold on %冲激响应step(b,a,'--');%阶跃响应legend('冲激响应','阶跃响应')figure(2)lsim(b,a,x,t);%零状态响应legend('零状态响应')结果显示:②绘制零输入响应图形的程序如下:cleara=[1,4,3];n=length(a)-1;r0=[2,-1];p=roots(a); % 求系统的极点V=rot90(vander(p));c= V\r0'; % 用范德蒙特矩阵求对应于各极点的系数t=0:0.001:5; y=zeros(1,length(t));for k=1:n y= y+c(k)*exp(p(k)*t);end % 将各分量叠加plot(t,y),grid ontitle('零状态响应')图形为:③下面是求各自响应表达式的程序:clearb=[1,2];a=[1,4,3];syms txt=exp(-2*t);sys=tf(b,a)[r,p,k]=residue(b,a);ht=0;for i=1:length(r)ht=ht+r(i)*exp(p(i)*t);endht %冲激响应gt=int(ht) %阶跃函数结果显示:Transfer function:s + 2-------------s^2 + 4 s + 3ht =1/(2*exp(t)) + 1/(2*exp(3*t))- 1/(2*exp(t)) - 1/(6*exp(3*t))5、连续信号频谱分析(1)傅里叶变换:a、设有一周期方波信号,幅度E=1.5V,周期T=100sμ,脉冲宽度与周期之τ=,时间轴上采样点数取1000点。
比为12t1)、试演示其谐波合成情况。
程序如下:clearT=100e-6;w=2*pi/T;E=1.5;t=linspace(0,4e-4,1000);n=input('n= ');y=0;for i=1:ny=y+4*E/(i*pi)*sin(i*pi/2)^2*sin(i*w*t);endplot(t,y),grid ony = zeros(10,max(size(t))); x = zeros(size(t));for k=1:2:19x = x +4*E/(k*pi)*sin(k*pi/2)^2*sin(k*w*t) ; y((k+1)/2,: ) = x; end% 将各波形迭合绘出figure(2),plot(t,y(1:9,: )),grid,hold onx=E*square(2*pi/T*t);plot(t,x,'k')text(pi+0.5,pi/4,'pi/4')halft=ceil(length(t)/2);figure(3),mesh(t(1:halft),[1:10],y(:,1:halft)), pause显示结果:n= 5 n=99从上图中比较6次谐波与99次谐波合成的图形,99次谐波合成的图形更加接近原方波,说明谐波次数越多,合成效果越好,误差越小。