1、matlab实验报告实验一:MATLAB基本操作一、实验目的1、学习掌握MATLAB语言的基本操作方法2、掌握命令窗口的使用3、熟悉MATLAB的数据表示、基本运算和程序控制语句4、熟悉MATLAB程序设计的基本方法二、实验内容和要求2.b.帮助命令的使用,查找SQRT函数的使用方法按Start-help-search,输入sqrtc.矩阵运算(1)已知A=1 2;3 4;B=5 5;7 8;求A2*B输入A=1 2;3 4;B=5 5;7 8;A2*B结果为:ans = 105 115 229 251(2)矩阵除法已知A=1 2 3 ;4 5 6;7 8 9;B=1 0 0;0 2 0;0
2、0 3;求A/B,ABA/B= 1.0000 1.0000 1.0000 4.0000 2.5000 2.0000 7.0000 4.0000 3.0000AB= 1.0e+016 * 0.3152 -1.2609 0.9457 -0.6304 2.5218 -1.8913 0.3152 -1.2609 0.9457(3)矩阵的转置及共轭转置已知A=15+i,2-i,1;6*i,4,9-i;求A.,AA= 15.0000 + 1.0000i 2.0000 - 1.0000i 1.0000 0 + 6.0000i 4.0000 9.0000 - 1.0000iA.= 15.0000 + 1.00
3、00i 0 + 6.0000i 2.0000 - 1.0000i 4.0000 1.0000 9.0000 - 1.0000iA= 15.0000 - 1.0000i 0 - 6.0000i 2.0000 + 1.0000i 4.0000 1.0000 9.0000 + 1.0000i(4)使用冒号选出指定元素已知A=1 2 3;4 5 6;7 8 9;求A中第三列前两个元素;A中所有第二行的元素A = 1 2 3 4 5 6 7 8 9求A中第三列前两个元素:A(1,2,3)ans = 3 6求A中所有第二行的元素:A(2,1:1:end)ans = 4 5 6(5)方括号用magic函数生
4、成一个4阶魔方矩阵,删除该矩阵的第四列 magic(4)ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1a=ans;a(:,1,2,3)ans = 16 2 3 5 11 10 9 7 6 4 14 153.多项式(1)求多项式p(X)=x3-2x-4的根(2)已知A=1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4求矩阵A的特征多项式;求矩阵多项式中未知数为20时的值;把矩阵A 作为未知数代入到多项式中;(1)a=1,0,-2,-4 x=roots(a)x = 2.0000 -1.0000 + 1.0000i -1.0000
5、- 1.0000i(2)求特征多项式系数: A=1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4 p=poly(A)p = 1.0000 -6.9000 -77.2600 -86.1300 604.5500 求矩阵多项式中未知数为20时的值: c=polyval(p,20)c = 7.2778e+004把矩阵A 作为未知数代入到多项式中: c=polyval(p,A)c = 1.0e+003 * 0.3801 -0.4545 -1.9951 0.4601 -1.9951 0.2093 -1.9951 -2.8880 -0.4545 -4.8978 0.6046 0.4
6、353 0.4353 0.0840 -0.4545 -1.16174、基本程序设计(1)编写命令文件:计算1+2+3+n2000; n=0;s=0;while s2000 n=n+1; s=s+n;endn=n-1n = 62(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。functionsum=mi(n)sum=0;for m=0:n sum=sum+2m; endfunctionsum=mi(n)sum=0;m=0;while m clearz=0.7;wn=2:2:12;hold onfor i=1:length(wn)sys=tf(wn(i)2,1,
7、2*z*wn(i),wn(i)2);step(sys)end(3)典型二阶系统为 当取0.2、0.4、0.6、0.8、1.0、1.5、2.0的单位阶跃响应。 clearwn=6;z=0.2:0.2:2;hold onfor i=1:length(z)sys=tf(wn2,1,2*z(i)*wn,wn2);step(sys)end hold off2、系统稳定性分析(1)代数法稳定判据(用求分母多项式的根和routh函数两种方法):已知系统的开环传递函数为:试对系统闭环判别其稳定性。程序: clear k=100;z=-2;p=0,-1,-20;num,den=zp2tf(z,p,k);sys=
8、tf(num,den);P=num+den;roots(P)结果:ans = -12.8990 -5.0000 -3.1010因为其值都为负,所以可以判定该系统是稳定的。(2)根轨迹法判断系统稳定性:已知一个单位负反馈系统开环传递函数为试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。程序: clear num=1 3;den=conv(conv(conv(1 0,1 5),1 6),1 2 2);sys=tf(num,den);rlocus(sys)k,poles=rlocfind(sys)结果:Select a point in the
9、graphics windowselected_point = -3.0036 - 0.0311ik = 2.8833e+003(3)Bode图法判断系统稳定性已知两个单位负反馈系统的开环传递函数分别为:用Bode图法判断系统闭环的稳定性。程序1:clearnum=0 0 0 2.7;den=1 5 4 0;s1=tf(num,den);Gm,Pm,Wcg=margin(s1)margin(s1)结果;Gm = 7.4074Pm = 51.7321Wcg = 2.0000程序2: clearnum=0 0 0 2.7;den=1 5 -4 0;s2=tf(num,den);margin(s2)
10、Gm,Pm,Wcp=margin(s2)结果:Gm = InfPm = -58.0504Wcp = NaN实验三、Matlab的频域实验一、 实验目的:1、 撑握如何使用MATLAB进行系统的时域分析;2、 撑握如何使用MATLAB进行系统的稳定性分析;二、 实验编程与测试1)典型二阶系统传递函数为当取2、4、6、8、10、12的伯德图。程序:clearz=0.7;wn=2:2:12;hold onfor i=1:length(wn)num=wn(i)2;den=1,2*z*wn(i),wn(i)2;bode(num,den);end结果:(2)典型二阶系统传递函数为 当取0.2、0.4、0.
11、6、0.8、1.0、1.5、2.0的伯德图。程序:clearwn=6;z=(0.2:0.2:2.0);hold onfor i=1:length(z)num=wn2;den=1,2*z(i)*wn,wn2;bode(num,den);end hold off结果:3根轨迹分析根据下面负反馈系统德开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。程序:clearnum=1;den=conv(1 1 0,1 2);sys=tf(num,den);rlocus(sys)k,poles=rlocfind(sys)结果;实验四、基于Matlab的PID控制器实验一、实验目的 1、掌握使用MATLA
12、B进行根轨迹法的控制系统设计2、掌握使用MATLAB进行Bode图法的系统的控制系统设计3、掌握使用MATLAB进行PID控制器设计二、实验内容和要求1. 实验内容(1)练习MATLAB6.5或以上版本(2)练习掌握MATLAB进行控制系统的设计2. 实验要求:每位学生独立完成。三、实验主要仪器设备和材料装有MATLAB6.5或以上版本的PC机一台。四、实验方法、步骤及结果测试1 实验方法:上机练习。2实验步骤:(1)根据如图二阶系统,其中,当有一阶跃信号作用于系统时,试计算特征量。程序源代码:Wn=0.5;Rr=0.7;numo=Wn2;deno=conv(1,0,1,2*Wn*Rr);nu
13、m,den=cloop(numo,deno,-1);G=tf(num,den);step(G);Y,T =step(G);pos,tp,tr,ts2=stepchar(Y,T)pos = 4.7092tp =8.8343tr = 4.2594ts2 = 11.8317其中stepchar函数如下function pos,tp,tr,ts2=stepchar(y,t)%find pos and tp%返回阶跃响应输出y列向量的最大值mp及对应下标值indmp,ind=max(y);%求取时间向量的长度dimtdimt=length(t);%确定最终的稳定值yssyss=y(dimt);pos=1
14、00*(mp-yss)/yss;tp=t(ind);% find rise time tr%确定输出为0.1时的时刻i=1;j=1;k=1;q=1;while y(i)0.1 i=i+1;endt1=t(i);%确定输出为0.9时的时刻while y(j)=1.02 n=1; endendt1=t(i);i=dimt+1;n=0;while n=0 i=i-1; if y(i)t2 ts2=t1; else ts2=t2; endend(2)设被控对象的传递函数为 试其设计要求:,相角裕度为50度,幅值裕度为10dB,试确定一个校正装置,以满足性能指标。程序源代码:clear;k=10;原传递
15、函数的K值s=tf(s);G=k/(s*(s+1)*(0.5*s+1);step(feedback(G,1);未校正系统的单位阶跃响应(单位负反馈)figure;margin(G);Gm,Pm,wc,Wcp = margin(G);gam=50;Gc=leadlagc(G,wc,gam,100.5,1);其中100.5是根据要求的10db计算得来figure;step(feedback(G*Gc,1);figure;margin(Gc*G);未校正前的闭环系统(单位负反馈)的单位阶跃响应,可知该系统并不稳定。未校正前的开环系统的波特图,由下图可知其相位裕度和幅值裕度均为负值,该系统不稳定下图为
16、校正后的闭环系统(单位负反馈)的单位阶跃响应。校正后的开环系统的波特图,由图可知其相位裕度和幅值裕度均为题目要求的值,该系统处于稳定状态其中leadlagc函数如下:function Gc=leadlagc(G,Wc,Gam_c,Kv,key)G=tf(G);Gai,Pha=bode(G,Wc);Phi_c=sin(Gam_c-Pha-180)*pi/180);den=G.den1;a=den(length(den):-1:1);ii=find(abs(a)0, a=a(ii(1)+1);else, a=a(1);endalpha=sqrt(1-Phi_c)/(1+Phi_c);Zc=alph
17、a*Wc;Pc=Wc/alpha;Kc=sqrt(Wc*Wc+Pc*Pc)/(Wc*Wc+Zc*Zc)/Gai;K1=G_n*Kc*alpha/a;if nargin=4, key=1; if Phi_c0, key=2; else, if K1Kv, key=3; end; endendswitch key case 1, Gc=tf(1 Zc*Kc,1 Pc); case 2 Kc=1/Gai; K1=G_n*Kc/a; Gc=tf(1 0.1*Wc,1 K1*Gcn(2)/Kv); case 3 Zc2=Wc*0.1; Pc2=K1*Zc2/Kv; Gcn=Kc*conv(1 Zc,1
18、Zc2); Gcd=conv(1 Pc,1 Pc2); Gc=tf(Gcn,Gcd); end(3)PID控制系统的结构如图所示,试设计串联补偿器,使系统速度稳态误差小于10,相角裕量45度,并对系统进行仿真。分析:PID校正装置的函数模型为Kp1+1/(Ti*S)+Td*s; 在此可知Kp=10;假设Ti=1.50;Td=0.25;输入以下程序:clear;num1=400;den1=conv(1,0,1,30,200);G1=tf(num1,den1);figure;step(feedback(G1,1),5);原系统的单位阶跃响应(单位负反馈)figure;bode(G1);grid;K
19、v=10; 根据误差小于10%得来Ti=1.50;设置参数Td=0.25;设置参数s=tf(s);Gc=Kv*(Ti*Td*s*s+Ti*s+1)/(Ti*s);通分后的PID函数模型;figure;bode(G1*Gc);grid;figure;step(feedback(G1*Gc,5),2.5);G=G1*Gc;未校正前的单位阶跃响应,可知系统稳定下图为未校正前的开环系统波特图校正后的开环系统波特图,可知相位裕度刚好为45(135180)度,满足题设要求;下图为校正后的单位阶跃响应,可知虽然超调量有所增加,但阶跃响应的时间明显变短,系统很快进入稳定状态,这在工程上是有利的。题目要求速度误
20、差小于10,即在单位斜坡输入的响应误差为小于10,通过搭建Simulink模块,观察PID校正器的效果,下图中上部分为校正后的单位负反馈模块,其传递函数的num,den参数通过前面的程序获得,即程序中G的分子与分母;中间模块为未校正系统的单位负反馈模块;最下面为通过MUX直接输出单位斜坡的波形,以便与最终结果做比较。下图中最下面的曲线为为未校正前的单位斜坡输入响应曲线;上面几乎重合的两条曲线分别为单位斜坡曲线与校正后的响应曲线,可知误差已经很小,几乎与原曲线重合,已经满足题设要求,达到了设计PID的目的。五、思考题1、PID控制器参数的意义是什么?答:典型的PID控制器由三个部分组成,比例环节
21、,积分环节,微分环节。其数学表达式为Kp1+1/(Ti*s)+Td*s;Kp为比例系数,Ti为积分环节的积分时间常数,Td为微分环节的微分时间常数。2、系统根轨迹、Bode图的绘制方法。答:根轨迹方法:一般情况下从以下几个方面进行绘制:(1) 起点(Kg=0);(2) 终点(Kg=Inf);(3) 根轨迹的分支数和它的对称性;(4) 实轴上的根轨迹;(5) 分离点和会合点;(6) 根轨迹的渐近线;(7) 根轨迹的出射角和入射角;(8) 根轨迹与虚轴的交点;(9) 根轨迹的走向。Bode图的绘制方法:(1) 将系统的传递函数G(s)转化为若干个标准形式的环节的传递函数(即惯性,一阶微分,振荡和二阶微分环节的传递函数中常数项均为1)的乘积形式;(2) 由传递函数G(s)求出频率特性G(jw);(3) 确定各典型环节的转角频率;(4) 作出各环节的对数幅频特性的渐近线;(5) 根据误差修正曲线对渐近线进行修正,得出各环节的对数幅频特性的精确曲线;(6) 将各个环节的对数幅频特性叠加(不包括系统总的增益K);(7) 将叠加后的曲线垂直移动20lgK,得到系统的对数幅频特性;(8) 作出各环节的对数相频特性,然后叠加而得到系统总的对数相频特性;(9) 有延时环节时,对数幅频特性不变,对数相频特性则应加上tao*w。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1