《Matlab课程设计-基于Matlab的RC串联电路频率响应特性分析精品资料.doc》由会员分享,可在线阅读,更多相关《Matlab课程设计-基于Matlab的RC串联电路频率响应特性分析精品资料.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: Matlab应用课程设计基于Matlab的RC串联电路频率响应特性分析初始条件:1. Matlab6.5以上版本软件;2. 先修课程:电路原理等;3. 。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、 在RC串联电路中,求该电路的频率响应和,并绘出其特性曲线;2、 画出程序设计框图,编写程序代码,上机运行调试程序,记录实验结果(含计算结果和图表等),并对实验结果进行分析和总结;3、 课程设计说明书按学校统一规范来撰写,具体包括: 目录; 理论分析; 程序设计; 程序运行结果及图表分析和
2、总结; 课程设计的心得体会(至少500字); 参考文献(不少于5篇)。时间安排:周一、周二查阅资料,了解设计内容; 周三、周四程序设计,上机调试程序;周五、整理实验结果,撰写课程设计说明书。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日XX大学MATLAB课程设计说明书目 录1.Matlab 软件简介12.RC串联电路频率响应特性分析23.程序设计34.程序运行结果及结果分析55.课程设计的心得会76.参考文献81.Matlab软件简介1.1Matlab语言的历史70年代后期,身为美国NewMexico大学计算机系系主任的CleveMoler发现学生用FORTRAN编写接口程
3、序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK的接口程序。CleveMoler给这个接口程序取名为Matlab。1984年,为了推广Matlab在数值计算中的应用,Cleve Moler、Johon Little等正式成立了Math works公司,从而把Matlab推向市场,并开始了对Matlab工具相等的开发设计。 1.2Matlab软件概况Matlab是MatrixLaboratory的缩写,意为矩阵实验室。它具有强大的矩阵处理功能和绘图功能,进还能进行文字处理,绘图,建模仿真等功能。随着版本的不断升级,它在数值计算及符号计算功能上得到了进一步完善。
4、Matlab已经发展成为多学科、多种工作平台的功能强大的大型软件。在欧美等高校,Matlab已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。1.3Matlab的特点Matlab有以下一些特点:Matlab的帮助功能很强大,自带有详细的帮助手册,基于HTML的完整的帮助功能,也可以用help命令来得到帮助信息。程序语法与C语言类似,设计自由度大,方便我们编程。例如在Matlab里,用户无需对变量预定义就可使用。大量数学函数已经定义好,并且有很强的用户自定义函数的能力。Matlab有高级的程序环境,但程序环境很简单易用,有与其它语
5、言编写的程序结合和输入输出格式化数据的能力;Matlab既具有结构化的控制语句,又有面向对象编程的特性。还有一个原因使Matlab受人们欢迎的,那就是Matlab源程序具有很大的开放性。除了内部函数以外,所有Matlab的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。Matlab有强大的的图形绘制功能。在Matlab里,数据可视化的操作非常简单易用。Matlab还有较强的编辑图形界面的能力。可以用来声成图解和可视化的二维、三维图。Matlab还拥有功能强大的各种工具箱。其工具箱分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其
6、符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如(control、signal proceessing 、commumnication) toolbox等。这些工具箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究,能极大地促进我们的学习研究工作。虽然Matlab有很多优点,但它也有一些缺点,比如:由于Matlab的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。2.RC串联电路频率响应特性分析UoUCUR参考方向 图2.1 原理电
7、路图RC如图所示:分阻抗:ZR=R Zc= 总阻抗:Z=R+ 频率响应:H1=UC/Uo=ZC/Z H2=UL/Uo=ZL/Z设s=j 则H1=H2=因此易得H1幅频响应=H1相频响应=-arctan(CR)H2幅频响应= H2相频响应=arctan() 这样就可以得到关于的函数表达式,然后分别以、为纵坐标,以为横坐标绘制幅频特性、相频响应曲线,通过观察曲线就可以研究频率响应特性。开始3.程序设计输入R、C的值列出H分子和分母的系数行列式调用angel函数计算相频特性调用freq函数计算幅频特性调用plot函数绘制相应曲线输出曲线结束图3.1 程序设计流程图源程序频率响应H1的源程序:R=2;
8、%电阻的值C=0.5; %电容的值fz=1; %H1表达式分子的系数向量fm=R*C 1; %H1分母的系数向量w=0:0.01:25; %设定频率的变化范围g=freqs(fz,fm,w);%求其频率响应x=angle(g);%求相频响应y=abs(g);%求幅频响应subplot(2,1,1),plot(w,x*180/pi)%画相频响应的曲线xlabel(角频率-rad/s);ylabel(角度);grid;subplot(2,1,2),%画幅频响应的曲线plot(w,y)xlabel(角频率-rad/s);ylabel(abs(H);grid;频率响应H2的源程序:R=2;%电阻的值C
9、=0.5; %电容的值fz=R*C 0;%H2表达式分子的系数向量fm=R*C 1;%H2分母的系数向量w=0:0.01:25;%设定频率的变化范围g=freqs(fz,fm,w);%求其频率响应x=angle(g);%求相频响应y=abs(g);%求幅频响应subplot(2,1,1),plot(w,x*180/pi)%画相频响应的曲线xlabel(角频率-rad/s);ylabel(角度);grid;subplot(2,1,2),plot(w,y)%画幅频响应的曲线xlabel(角频率-rad/s);ylabel(abs(H);grid;4.1运行结果4.程序运行结果及分析幅频响应相频响应
10、图4.1 H1的频率响应曲线幅频响应相频响应图4.2 H2的频率响应曲线4.2结果分析4.2.1频率响应H1H1相频特性曲线分析:由图可知,H1相频特性是一条下降的曲线,说明相角随频率的增加而减小,其值总小于0。当趋近于0时,相角趋近于0,当趋近于无穷时,相角趋近于-90o。H1幅频特性曲线分析:由图可得,H1的幅频特性曲线是一条下降的曲线,说明电压传输系数H的幅值随的升高而减小,当趋近于0时,幅值趋近于1,当趋近于无穷时,幅值趋近于0,说明c越高时,C上的电压值越大,显示了该电路的低通特性。4.2.2频率响应H2H2相频特性曲线分析:由图可知,H2的相频特性曲线是一条下降的曲线,说明H2的相
11、角随频率的增加而减小,其值在0到90度之间。当趋近于0时,相角趋近于90o,当趋近于无穷时,相角趋近于0。H2幅频特性曲线分析:由图可得,H2的幅频特性曲线是一条上升的曲线,说明H2的幅值随频率的升高而升高,当趋近于0时,幅值趋近于1,当趋近于无穷时,幅值趋近于0,当趋近于0时,幅值趋近于0,当趋近于无穷时,幅值趋近于1,说明频率越高时,R上分得的电压越大,体现了该电路的高通性质。5.课程设计心得体会通过Matlab一周以来的学习研究,我对Matlab有了初步的认识,我掌握了Matlab的基本操作,并学会了用Matlab解决一些电路和数学上的问题,下面是我具体的一些体会Matlab功能非常强大
12、,几乎可以计算我们目前所遇到的任何问题,不仅可以计算数学问题,也可以用来解决电路等其他学科的各种问题。而且我们可以自编函数,从而可以解决更多样的问题。但以目前我们的知识,只能掌握Matlab的一小部分功能,在以后的学习中,我还需要继续学习Matlab的相关知识。Matlab虽然功能非常强大,但其操作却非常简单,它的语法类似于我们以前学过的C语言,使我很容易上手,而其语法比C语言更为自由,限制更少,语法类似于自然语言,简洁而智能化,使我可以很容易的编写程序且不容易出错。关于绘图的操作则比C语言简单得多,用几条简单的语句就可以绘出各种曲线、图形,使我们的学习研究变的非常方便。本次课程设计握紧掌握了
13、绘制二维曲线,我还需要进一步的学习。我认为学习Matlab的关键在于函数,只要掌握了函数的用法,那么就能很快的编出程序。而Matlab的难点也正是函数,因为Matlab拥有大量的函数,仅仅基本的函数就超过七百个,要是算上专业拓展函数那就更多,想在短时间内掌握这么多函数是很难的。我认为应该多练多学,在解决问题的过程中学习并记住所用的函数,有不懂的就查资料,问同学,争取彻底搞懂所作的问题,并牢牢掌握,这样以后就可以独立解决类似问题。在这次课程设计中,我学到了很多关于Matlab的知识,但这还远远不够,我现在只掌握了一些基本的功能,而解决更高级问题我的知识还不够,我要在日后进一步学习,更好地掌握Ma
14、tlab。6.参考文献1 邱关源,罗先觉主编,电路,第五版,北京:高等教育出版社, 20062 陈怀琛,吴大正,高西全主编,Matlab及在电子信息课程中的应用,第三版. 北京:电子工业出版社,20063 杨高波,元波编著,精通Matlab 7.0混合编程,北京:电子工业出版社,20064 陈怀琛主编,Matlab及其在理工课程中的应用指南,西安:西安电子科技大学出版社,20005 陈怀琛,龚杰民主编,线性代数实践及Matlab入门,北京:电子工业出版设,2005 本科生课程设计成绩评定表姓 名性 别专业 班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据: 指导教师签字:_ 年 月 日附
15、录资料:MATLAB的30个方法1 内部常数pi 圆周率 exp(1)自然对数的底数ei 或j 虚数单位Inf或 inf 无穷大 2 数学运算符a+b 加法a-b减法a*b矩阵乘法a.*b数组乘法a/b矩阵右除ab矩阵左除a./b数组右除a.b数组左除ab 矩阵乘方a.b数组乘方-a负号 共轭转置.一般转置3 关系运算符=等于大于=大于或等于=不等于4 常用内部数学函数 指数函数exp(x)以e为底数对数函数log(x)自然对数,即以e为底数的对数log10(x)常用对数,即以10为底数的对数log2(x)以2为底数的x的对数开方函数sqrt(x)表示x的算术平方根绝对值函数abs(x)表示实
16、数的绝对值以及复数的模三角函数(自变量的单位为弧度)sin(x)正弦函数cos(x)余弦函数tan(x)正切函数cot(x)余切函数sec(x)正割函数csc(x)余割函数反三角函数 asin(x)反正弦函数acos(x)反余弦函数atan(x)反正切函数acot(x)反余切函数asec(x)反正割函数acsc(x)反余割函数双曲函数 sinh(x)双曲正弦函数cosh(x)双曲余弦函数tanh(x)双曲正切函数coth(x)双曲余切函数sech(x)双曲正割函数csch(x)双曲余割函数反双曲函数 asinh(x)反双曲正弦函数acosh(x)反双曲余弦函数atanh(x)反双曲正切函数ac
17、oth(x)反双曲余切函数asech(x)反双曲正割函数acsch(x)反双曲余割函数求角度函数atan2(y,x)以坐标原点为顶点,x轴正半轴为始边,从原点到点(x,y)的射线为终边的角,其单位为弧度,范围为( , 数论函数gcd(a,b)两个整数的最大公约数lcm(a,b)两个整数的最小公倍数排列组合函数factorial(n)阶乘函数,表示n的阶乘 复数函数 real(z)实部函数imag(z)虚部函数abs(z)求复数z的模angle(z)求复数z的辐角,其范围是( , conj(z)求复数z的共轭复数求整函数与截尾函数ceil(x)表示大于或等于实数x的最小整数floor(x)表示小
18、于或等于实数x的最大整数round(x)最接近x的整数最大、最小函数max(a,b,c,)求最大数min(a,b,c,)求最小数符号函数 sign(x)5 自定义函数-调用时:“返回值列=M文件名(参数列)”function 返回变量=函数名(输入变量) 注释说明语句段(此部分可有可无)函数体语句 6进行函数的复合运算compose(f,g) 返回值为f(g(y)compose(f,g,z) 返回值为f(g(z)compose(f,g,x,.z) 返回值为f(g(z)compose(f,g,x,y,z) 返回值为f(g(z)7 因式分解syms 表达式中包含的变量 factor(表达式) 8
19、代数式展开syms 表达式中包含的变量 expand(表达式)9 合并同类项syms 表达式中包含的变量 collect(表达式,指定的变量)10 进行数学式化简syms 表达式中包含的变量 simplify(表达式)11 进行变量替换syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式)12 进行数学式的转换调用Maple中数学式的转换命令,调用格式如下:maple(Maple的数学式转换命令) 即:maple(convert(表达式,form)将表达式转换成form的表示方式 maple(convert(表达式,form, x) 指定变量为x,将依赖于变量
20、x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 13 解方程solve(方程,变元) 注:方程的等号用普通的等号: = 14 解不等式调用maple中解不等式的命令即可,调用形式如下: maple(maple中解不等式的命令)具体说,包括以下五种:maple( solve(不等式)) maple( solve(不等式,变元) ) maple( solve(不等式,变元) ) maple( solve(不等式,变元) ) maple( solve(不等式,变元) )15 解不等式组调用maple中解不等式组的命令即可,调用形式如下: maple(mapl
21、e中解不等式组的命令) 即:maple( solve(不等式组,变元组) )16 画图方法:先产生横坐标的取值和相应的纵坐标的取值,然后执行命令: plot(x,y) 方法2:fplot(f(x),xmin,xmax) fplot(f(x),xmin,xmax,ymin,ymax) 方法3:ezplot(f(x) ezplot(f(x) ,xmin,xmax) ezplot(f(x) ,xmin,xmax,ymin,ymax) 17 求极限(1)极限:syms x limit(f(x), x, a) (2)单侧极限:左极限:syms x limit(f(x), x, a,left)右极限:sy
22、ms x limit(f(x), x, a,right) 18 求导数diff(f(x) diff(f(x),x) 或者:syms x diff(f(x) syms x diff(f(x), x) 19 求高阶导数 diff(f(x),n) diff(f(x),x,n)或者:syms x diff(f(x),n)syms x diff(f(x), x,n) 20 在MATLAB中没有直接求隐函数导数的命令,但是我们可以根据数学中求隐函数导数的方法,在中一步一步地进行推导;也可以自己编一个求隐函数导数的小程序;不过,最简便的方法是调用Maple中求隐函数导数的命令,调用格式如下: maple(i
23、mplicitdiff(f(x,y)=0,y,x) 在MATLAB中,没有直接求参数方程确定的函数的导数的命令,只能根据参数方程确定的函数的求导公式 一步一步地进行推导;或者,干脆自己编一个小程序,应用起来会更加方便。21 求不定积分 int(f(x) int (f(x),x)或者:syms x int(f(x) syms x int(f(x), x) 22 求定积分、广义积分 int(f(x),a,b) int (f(x),x,a,b)或者:syms x int(f(x),a,b) syms x int(f(x), x,a,b) 23 进行换元积分的计算自身没有提供这一功能,但是可以调用Ma
24、ple函数库中的changevar命令,调用方法如下:maple( with(student) ) 加载student函数库后,才能使用changevar命令maple( changevar( m(x)=p(u), Int(f(x),x) ) ) 把积分表达式中的m(x)代换成p(u)24 进行分部积分的计算自身没有提供这一功能,但是可以调用Maple函数库中的intparts命令,调用方法如下: maple( with(student) ) 加载student函数库后,才能使用intparts命令maple(intparts(Int(f(x),x),u) ) 指定u,用分部积分公式 进行计算
25、25 对数列和级数进行求和 syms n symsum(f(n), n a ,b )26 进行连乘 maple(product(f(n),n=a.b)27 展开级数syms x taylor(f(x), x, n, a )28 进行积分变换syms s t laplace( f(t), t, s ) 拉普拉斯变换 ilaplace( F(s), s, t ) 拉普拉斯变换的逆变换 syms t fourier( f(t), t, ) 傅立叶变换 ifourier( F(), , t ) 傅立叶变换的逆变换 syms n z ztrans( f(n), n, z) Z变换 iztrans( F(z), z, n ) Z变换的逆变换 在matlab中,矩形法、梯形法和辛普森法求近似积分可以用自身的命令,也可调用Maple的相应命令。调用方法如下: maple(with(student) ) maple(Maple中求定积分近似值的命令)29 解微分方程dsolve(微分方程,自变量) dsolve(微分方程,初始条件或边界条件,自变量)30 解微分方程组dsolve(微分方程组,自变量) dsolve(微分方程组,初始条件或边界条件,自变量)25