matlab程序大全.doc

上传人:仙人指路1688 文档编号:2388452 上传时间:2023-02-17 格式:DOC 页数:19 大小:680.50KB
返回 下载 相关 举报
matlab程序大全.doc_第1页
第1页 / 共19页
matlab程序大全.doc_第2页
第2页 / 共19页
matlab程序大全.doc_第3页
第3页 / 共19页
matlab程序大全.doc_第4页
第4页 / 共19页
matlab程序大全.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《matlab程序大全.doc》由会员分享,可在线阅读,更多相关《matlab程序大全.doc(19页珍藏版)》请在三一办公上搜索。

1、 频率特性类题目1 一个系统的开环传递函数为 ,试绘制其当K=5、30时系统的开环频率特性Nyquist图,并判断系统的稳定性。w=linspace(0.5,5,1000)*pi;sys1=zpk(,0 -10 -2,100)sys2=zpk(,0 -10 -2,600)figure(1)nyquist(sys1,w)title(system nyquist charts with k=5)figure(2)nyquist(sys2,w)title(system nyquist charts with k=30)由图可知K=5时,开环Nyquist曲线没有包围(-1,j0)点,所以系统稳定。K

2、=30时,开环Nyquist曲线包围(-1,j0)点,所以系统不稳定。2系统开环传递函数为 ,建立其零极点增益模型,然后分别绘制当K=5、K=30时系统的开环频率特性Bode图,并判断系统的稳定性。sys1=zpk(,0 -10 -2,100)sys2=zpk(,0 -10 -2,600)figure(1)Gm1,Pm1,Wcg1,Wcp1=margin(sys1)bode(sys1)title(system bode charts with k=5),gridfigure(2)Gm2,Pm2,Wcg2,Wcp2=margin(sys2)bode(sys2)title(system bode

3、charts with k=30),grid因为K=5时,WcgWcp,所以系统稳定。K=10时,WcgWcp,系统不稳定。3 系统开环传递函数为 ,计算K=5和K=30时系统的幅值裕度与相位裕度。 sys1=zpk(,0 -10 -2,100)sys2=zpk(,0 -10 -2,600)Gm1,Pm1,Wcg1,Wcp1=margin(sys1)Gm2,Pm2,Wcg2,Wcp2=margin(sys2)4 已知某系统的闭环传递函数如下,试用roots()命令来判断系统的稳定性。 num=0 0 0 3 2 5;den=1 2 4 5 7 6;D=num+den;roots(D)5 某单位

4、负反馈系统的开环控制系统的传递函数为(1)绘制系统的根轨迹; num=1 0.8 0.64;x=0 -0.05 -5 -40;den=poly(x);rlocus(num,den)(2)当时,绘制系统的Bode图,判断系统的稳定性,并且求出幅值裕度和相角裕度。 num=1 0.8 0.64;x=0 -0.05 -5 -40;den=poly(x);sys=tf(num,den)bode(sys),gridGm,Pm,Wcg,Wcp=margin(sys)6 已知系统的状态空间模型如下: x + u x(1)绘制系统的Bode图和nyquist图;(2)求系统的幅值裕度和相位裕度;A=1,-1;

5、1,3;B=1,0;C=1,1;D=0;w=linspace(0.5,5,1000)*pi;sys=ss(A,B,C,D)figure(1),bode(sys),gridfigure(2),nyquist(sys,w)Gm,Pm,Wcg,Wcp=margin(sys)7 已知单位负反馈系统的开环传递函数为,试绘制系统的单位阶跃响应、开环Bode图和Nyquist曲线,并求系统的幅值裕度和相位裕度。sys=zpk(-1,0 0 -1,1)sys1=feedback(sys,1,-1)figure(3)step(sys1)figure(1)bode(sys),gridfigure(2)nyquis

6、t(sys),gridGm,Pm,Wcg,Wcp=margin(sys) 编写程序题1 编写两个m文件,分别使用for和while循环语句计算。y=0;for k=1:200 y=y+k3;endyy=0;k=1;while k=200 y=y+k3; k=k+1;endy2 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数,编写M文件,输出全部水仙花数。 for m=100:999 m1=fix(m/100); m2=fix(m-100*m1)/10); m3=fix(m-100*m1-10*m2); if m=m13+m23+m33 disp(m) endend3 编写M文件,实

7、现以下功能:从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。4 编写M脚本文件,使得运行该文件后能求出100,200之间第一个能被21整除的整数。for i=100:200 if mod(i,21)=0 break endendi5 先编写一个函数文件,文件名为tran,使得该函数文件实现直角坐标(x,y)与极坐标(,)之间的转换。然后编写脚本文件,文件名为main1,在脚本文件中实现如下功能:要求用户从键盘输入直角坐标X和Y,调用函数文件实现直角坐标到极坐标的转换,输出极坐标的值。tran.m :function rho,theta=tran(x,y)rho=sqrt(x

8、*x+y*y);theta=atan(y/x);main1.m :x=input(Please input x=:)y=input(Please input y=:)rho,theta=tran(x,y);rhotheta6 猜数游戏。首先由计算机产生1,100之间的随机整数,然后由用户猜测所产生的随机数。根据用户猜测的情况给出不同提示,如猜测的数大于产生的数,则显示“High”,小于则显示“Low”,等于则显示“You won”,同时退出游戏。用户最多可以猜7次。x=fix(100*rand(1);i=1while iy disp(Low)else disp(High)endi=i+1;en

9、d7 编写M脚本文件,分别使用for 和 while 循环语句计算的值,并且显示出sum的结果。 sum=0;for i=1:10 sum=sum+ii;endsumsum=0;while i=10 sum=sum+ii; i=i+1;endsum8 用筛选法求某自然数范围内的全部素数。素数是大于1,且除了1和它本身以外,不能被其他任何整数所整除的整数。用筛选法求素数的基本思想是:要找出2m之间的全部素数,首先在2m中划去2的倍数(不包括2),然后划去3的倍数(不包括3),由于4已被划去,再找5的倍数 (不包括5),直到再划去不超过的数的倍数,剩下的数都是素数。function y=sushu

10、(x)y=2:x;n=2:x;for j=2:xm=j*n;y=setdiff(y,m);end9 已知 ,当n=100时,求y的值。 y=0;n=100;for k=1:n y=y+(1/(2*k-1); k=k+1;endy10 利用for循环计算1!+2!+3!+. +20!的值。 sum=0;for i=1:20 y=1; for n=1:i y=y*n; end sum=sum+y;endsum11 用while循环来实现求1+2+100的值。y=0;n=1;while n=100 y=y+n; n=n+1;endy12 编一函数计算以下分段函数值。function y=f(x);i

11、f x=0&x1 y=2*x2+1;else y=3*x3+2*x2+1;end13 我国新税法规定:个体工商户的生产、经营所得和对企事业单位的承包经营、承租经营所得应缴纳的个人所得税为全年收入中应缴纳所得税部分 税率/%(1)不超过5000元的 5(2)超过5000元至10000元的部分 10(3)超过10000元至30000元的部分 20(4)超过30000元至50000元的部分 30(5)超过50000元的部分 35试编程加以计算。x=input(x=)if x5000&x10000&x30000&x0 i=i+1; disp(positive one) elseif x0 averag

12、e=sum/cnt;endsum,average18 一数组的元素满足规则: a(1)=a(2)=, a(3)=a(1)+a(2), a(4)=a(2)+a(3),依次类推,求该数组中第一个大于10000的元素。 a(1)=1;a(2)=1;i=1;while a(i)=10000 a(i+2)=a(i+1)+a(i); i=i+1;endia(i)19 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price200 没有折扣 200price500 3%折扣 500price1000 5%折扣 1000price2500 8%折扣 2500price5000

13、 10%折扣5000price 14%折扣请编写程序,使得当从计算机输入所售商品的打折前价格后,能输出其实际销售价格。x=input(x=)if x=200&x=500&x=1000&x=2500&x5000 y=0.9*x;else y=0.86*x;endy20 编写M脚本文件,分别使用for 和 while 循环语句计算的值,并且显示出sum的结果。21 已知 ,当n=100时,求y的值。22编写函数文件使其实现如下功能:当在命令窗口输入数字后,根据输入参数的个数决定输出的结果;当没有参数输入时,显示“无输入参数”;当有一个参数时,则以该参数为边绘制正方形;当有两个参数时,则以两个参数为

14、长和宽绘制矩形。function y=H(varargin) % varargin 表示可变的参数if nargin=0 disp(无输入参数)elseif nargin=1 r=varargin1; rectangle(position,0 0 r r) %表示从(0,0)点开始画宽为R,高为R的矩形else nargin=2 r1=varargin1; r2=varargin2; rectangle(position,0 0 r1 r2)end23 编制M脚本文件,要求从键盘逐个输入数值(input),然后判断输入的数是大于0还是小于0,并输出提示(使用disp命令)是正数(positiv

15、e one)还是负数(negative one),同时记录输入的正数、负数的个数。当输入0时,终止此M文件的运行(使用break命令);当输入第10个数字时,显示记录的正、负数个数并终止程序。i=0;j=0;for x=1:10 n=input() if n0 j=j+1; disp(position one) else break endendij24 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求1,500之间的全部完数。for m=1:500 s=0; for k=1:m/2 if rem(m,k)=0 s=s+k; end end if m=s di

16、sp(m) endend25 今有多项式P1(x)=x4-2x+1,P2(x)=x2+4x-0.5,要求先求得P(x)=P1(x)+P2(x),然后计算xi=0.2*i各点上的P(xi)(i=0,1,2,5)值。A=1 0 0 -2 1;B=0 0 1 4 -0.5;C=A+Bi=0:5;xi=0.2*i;y=polyval(C,xi)26 试编一个m程序,将一维数组x中的N个数按颠倒的次序重新存储。要求运行程序后,在命令窗口提示“请用输入一个一维数组;”,输入完毕后若回车,就能在输出窗口显示刚才所输入的数组的颠倒次序。(如N=5,原来x为:x= 1 3 5 7 9 而经过颠倒处理后x中数据的

17、次序应该为:x= 9 7 5 3 1 )x=input(请用输入一个一维数组:x=)x1=fliplr(x) 模型建立及转换题1 某系统的传递函数为使用MATLAB求出状态空间表达式和零极点模型。num=1.3 2 3;den=1 0.5 1.2 1;sys=tf(num,den)nsys=zpk(sys)2 求出以下系统的传递函数 , A=-1,0,1;1,-2,0;0,0,-3;B=0,0,1;C=1 1 0;D=1;sys=ss(A,B,C,D)nsys=tf(sys)3 已知某系统的传递函数为:,试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零极点增益模型。num=12

18、24 12 20;den=2 4 6 2 2;sys=tf(num,den)sys1=zpk(sys)sys2=ss(sys)4 已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:试求串联连接的等效传递函数及其等效状态空间模型。num1=0.0128 1;den1=0.04 0;num2=30;den2=0.00167,1;num3=2.5;den3=0.0128 1;sys1=tf(num1,den1)sys2=tf(num2,den2)sys3=tf(num3,den3)sys=sys1*sys2*sys3nsys=ss(sys)5 已知两个环节的传递函数分别为:试求两环节并联连

19、接等效传递函数的num与den向量及等效的状态空间模型。num1=1;den1=1 2;num2=2 1;den2=1 1 2;sys1=tf(num1,den1)sys2=tf(num2,den2)sys=sys1+sys2num,den=tfdata(sys,v)nsys=ss(sys)6 将传递函数模型转换为状态空间模型和零极点模型。num=1 0;den=1 3 2;sys=tf(num,den)sys1=zpk(sys)sys2=ss(sys)7 系统方程为,求出其状态空间表达式,写出A、B、C、D阵,建立其MATLAB状态空间模型,然后绘制其单位阶跃响应曲线。 A=0 1 0;0

20、0 1;-16 -11 -6;B=0 0 6;C=1 0 0;D=0;sys=ss(A,B,C,D)step(sys)8 设有一质量弹簧阻尼系统,如下图所示。F(t)为输入的外力,y(t)为质量块的位移,弹簧的弹性系数为k,阻尼器的阻尼系数为f。系统的动态方程组为: 求出其状态空间表达式,写出A、B、C、D阵,建立其MATLAB状态空间模型,然后绘制其单位阶跃响应曲线(只要写出MATLAB语句即可)。A=0 1;-k/m -f/m;B=0 F(t)/m;C=1 0;D=0;sys=ssA,B,C,Dstep(sys)9 对下图中所示系统进行建模、模型转换及仿真: 用MATLAB语言表示图示系统

21、的模型,并给出传递函数、零极点和状态空间三种模型的具体表达。num1=1 0.5;den1=1 0.1;z=;p=0 -2 -10;k=20;sys1=tf(num1,den1)sys2=zpk(z,p,k)sys3=sys1*sys2sys=feedback(sys3,1,-1)nsys1=tf(sys)nsys2=ss(sys) 用MATLAB语言画出系统单位阶跃响应的波形。10 对图中所示的质量弹簧阻尼机械系统,系统的动力学方程为:,其中,m=5kg,k=2N/m,c=0.1N/m.s,建立其MATLAB状态空间模型,写出A、B、C、D阵,然后绘制其单位阶跃响应曲线。A=0,1;-2/5

22、,-0.1/5;B=0,2/5;C=1,0;D=0;sys=ss(A,B,C,D)step(sys)11求下面系统在阶跃信号为0.11(t)时系统的响应。并求系统性能指标:稳态值、上升时间、调节时间、超调量num=20;den=1 8 36 40 20;sys=tf(num,den)final=polyval(num,0)/polyval(den,0)y,t=step(sys)yp,k=max(y)tp=t(k)chaotiao=100*(yp-final)/finaln=1;while y(n)0.98*final&y(i)1.02*final) i=i-1;endts=t(i)step(0

23、.1*sys)12 已知系统传递函数,绘制系统阶跃响应曲线;绘出离散化系统阶跃响应曲线,采样周期。num=1;den=1 0.2 1.01;sys1=tf(num,den)sys2=tf(num,den,0.3)figure(1)step(sys1)figure(2)step(sys2) 数值计算类题目1 求解以下线性代数方程:A=1,0,2;1,1,3;3,1,2;B=2,1,1;X=inv(A)*B2 已知矩阵 ,试分别求出A阵和B阵的秩、转置、行列式、逆矩阵以及特征值。A=0 1 3;1 2 1;5 4 2;B=2 1 8;4 1 4;3 3 2;A1=rank(A)B1=rank(B)

24、A2=A.B2=B.A3=det(A)B3=det(B)A4=inv(A)B4=inv(B)A5=eig(A)B5=eig(B)3 已知矩阵 ,在Command窗口中分别求出、矩阵为中每个元素平方组成的矩阵、矩阵为阵乘以阵、矩阵为阵和阵数组乘积(即:对应元素分别相乘的积构成的矩阵)。A=0 1 3;1 2 1;5 4 2;B=2 1 8;4 1 4;3 3 2;C=A2D=A.2E=A*BF=A.*B4 求复数矩阵的转置C1与共轭转置C2。A=1 5 7;6 3 4;B=3 -1 3;2 2 -3;C=A+B*iC1=C.C2=C5 假设a、b、c和d的定义如下: ; ; ; 分别写出下列表达

25、式的运算结果。(1) a*b(2) a*c(3) a.*d(4) a*dans = -1 2 -2 5ans = 3 8ans = 5 0 10 5ans = 5 06 求解由下面四个方程组成的方程组。 A=2 -3 1 2;1 3 0 1;1 -1 1 8;7 1 -2 2;B=8 6 7 5;C=inv(A)*B7 求解由下面四个方程组成的方程组。 A=2 -3 1 2;1 3 0 1;1 -1 1 8;7 1 -2 2;B=17 23 9 51;C=inv(A)*B8 已知某班的5名学生的三门课成绩列表如下: 学生序号 1 2 3 4 5 高等数学 78 89 64 73 68 外语 8

26、3 77 80 78 70MATLAB语言 82 91 78 82 68试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。 A=78 89 64 73 68;83 77 80 78 70;82 91 78 82 68;Y,L=max(A,2)B=sum(A,1);Y1,L1=max(B) SIMULINK建模分析题1 某一单位负反馈控制系统,其开环传递函数为给它输入阶跃量为2的阶跃信号,试使用Simulink构造其闭环仿真模型,并且绘制其响应曲线。然后将已经建立的闭环控制系统封装成一个子系统。2 典型的直流电动机双闭环调速系统的结构图如图所示,编写M

27、ATLAB程序(或利用SIMULINK工具),画出系统的单位阶跃响应曲线。3 双环调速的电流环系统的方框图模型为:建立该系统的SIMULINK模型,然后在单位阶跃输入信号作用下对系统进行仿真。根据仿真结果计算超调量、上升时间、调节时间、稳态误差。4 利用sisotool工具完成下面的题目:系统开环传递函数为:绘制当K=5、30时系统的Bode图,并判断系统的稳定性;计算K=5、30时系统的幅值和相位裕度;绘制K=5、30时系统的Nyquist图;绘制K=5、30时系统的Nichols图。5 已知二阶系统微分方程:.求在时间区间t=0,20内的微分方程的解。Vf.mFunction dy=vf(

28、t,y)Dy=zeros(2,1);Dy(1)=y(2);Dy(2)=(1-y(1)2)*y(2)-y(1);Main.mT,Y=ode45(vf,0 20,0,1);%调用离散ode45产生离散点时间向量和解向量Plot(T,Y(:,1),r-,T,Y(:,2),b:)Legend(y1,y2)6具有死区非线性特性的控制系统方框图如题下图所示。试绘制当输入信号和时系统响应曲线。图形绘制题 1 绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为0,2。 x=0:pi/100:2*pi;y=0:pi/100:2*pi;X,Y=meshgrid(x,y)Z=sin(X).

29、*cos(Y);subplot(1,2,1),surf(X,Y,Z); %曲面图subplot(1,2,2),mesh(X,Y,Z); %网线图2 用MATLAB语言绘制2,2区间内sin、cos曲线,数据点间隔0.1弧度。要求分上下两个子图分别绘制sin、cos,并且sin用红色、实线,cos用兰色、虚线,对图形标题及横纵坐标轴进行标注(图形标题分别为sin、cos,横纵坐标轴分别为x,y)。 t=-2*pi:0.1:2*pi;y1=sin(t);y2=cos(t);subplot(2,1,1),plot(t,y1,r)title(sin(t),xlabel(x),ylabel(y)subplot(2,1,2),plot(t,y2,b:)title(cos(t),xlabel(x),ylabel(y)3 在0 2范围内绘制二维曲线图y=sin(x)*cos(5x)。x=0:pi/50:2*pi;y=sin(x).*cos(5*x);plot(x,y)4 在0 2范围内绘制二维曲线图。 y=|1000sin(4x)|+1x=0:pi/50:2*pi;y=abs(1000*sin(4*x)+1;plot(x,y)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号