Matlab实验指导书

  • 格式:pdf
  • 大小:178.75 KB
  • 文档页数:25

Matlab实验指导书

实验⼀ Matlab使⽤⽅法和程序设计

⼀、实验⽬的1、掌握Matlab软件使⽤的基本⽅法;

2、熟悉Matlab的数据表⽰、基本运算和程序控制语句;

3、熟悉Matlab绘图命令及基本绘图控制;

4、熟悉Matlab程序设计的基本⽅法。

⼆、实验内容1、帮助命令

2、矩阵运算

(1)矩阵的乘法和乘⽅

已知A=[1 2;3 4]:B=[5 5;7 8]:求A^2*B( 2 )矩阵除法

已知A=[1 2 3:4 5 6:7 8 9]:B=[1 0 0:0 2 0:0 0 3],求矩阵左除A\B,右除A/B。( 3 )矩阵的转置及共轭转置

已知A=[5+i,2-i,1;6*i,4,9-i],求该复数矩阵的转置A',共轭转置A.'( 4 )使⽤冒号选出指定元素

已知:A=[1 2 3:4 5 6:7 8 9];求A中第3列前2个元素;A中第2、3⾏元素。( 5 )⽅括号[]

⽤magic函数⽣成⼀个4阶魔术矩阵,删除该矩阵的第四列3、多项式

(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].,构造多项式,并计算多项式值为20的解。

4、基本绘图命令

( 1 ) 绘制余弦曲线

]

2,0[

),

cos(π

=t

t

y

。( 2 ) 在同⼀坐标系中绘制曲线]

2,0[

),

5.0

sin(

),

25

.0

cos(

-

=

-

=t

t

y

t

5、基本绘图控制

绘制]

4,0[π

区间上的y=10sint曲线,并要求:

(1)线形为点划线,颜⾊为红⾊,数据点标记为加号;

(2)坐标轴控制:显⽰范围,刻度线,⽐例,⽹络线;

(3)标注控制:坐标轴名称,标题,相应⽂本。6、基本程序设计

(1)编写命令⽂件:计算1+2+....+n<2000时的最⼤n值;(2)编写函数⽂件:分别⽤n和which循环结构编写程序,求2的0到n次幂的和.

n=input('输⼊正数n:') ji=1: for i=1:n; ji=ji+2^i: end ji input('输⼊正数n:') ji-1:i-1: While i<=n ji=ji+2^i; i=i+1; end ji

(3)如果想对⼀个变量x赋值,当从键盘输⼊y或Y时,x⾃动赋为1;当从键盘输⼊n或N时,x⾃

动赋为0;输⼊其他字符时终⽌程序。k=input('shuruX:'.'s'): if k=='y' k=='Y' x=1 ; else k=='n' k=='N' x=0; else ruturn end >> n=input('输⼊正数n:')

输⼊正数n:20n =20>> ji=1;

>> for i=1:n

ji=ji+2^i;

end

>> ji

ji =2097151

>> n=input('输⼊正数n:')

输⼊正数n:20n=20

>> ji=1;

>> i=1

i =1

>> while i<=n

ji=ji+2^i;

i=i+1;

end

>> ji

ji =2097151

>> k=input('shuruX:','s'); shuruX:y

>> if k=='y' k=='Y'

x=1

elseif k=='n' k=='N'

x=0

else

return

end

ans =0

x = 1

>> k=input('shuruX:','s');

shuruX:n

>> if k=='y' k=='Y'

x=1

elseif k=='n' k=='N'

x=0

elsereturn

end

ans =0

x =0

⼀.实验⽬的1.掌握如何使⽤Matlab 进⾏系统的时域分析;

2.掌握如何使⽤Matlab 进⾏系统的频域分析。

⼆.实验内容1.时域分析

(1)根据下⾯传递函数模型,绘制其单位阶跃响应曲线并从图上读取最⼤超调量、调节时间、上升时间,绘制系统的单位脉冲响应、零输⼊响应曲线(设初始状态x0=[1,0,0])。 G(s)=8106)65(5232+++++S S S s s

(2)根据下⾯传递函数模型,绘制其单位阶跃响应曲线并编程序求该系统的上升时间、

调节时间、峰值时间、超调量和终值(∞)。 G(s)=5242+++s s s

(3)典型⼆阶系统传递函数为:G(s)=2222ωξωω++s s ,当ξ=0.7,wn 取2、4、6、8、10、12的单位阶跃响应。

2.频域分析

(1)典型⼆阶系统传递函数为:G(s)=2222ωξωω++s s ,在同⼀幅图上绘制当ξ=0.7,wn 取2、4、6、8、10、12的伯德图。

运⾏程序及结果如下:

(2)已知系统开环传递函数为:G(s)H(s)=)1()1(52++Ts s s τ在同⼀幅图上绘制当τ=3,T=8和

τ=8,T=3的奈⽒图。

1、实验⽬的

1.掌握如何使⽤Matlab进⾏系统的稳定性分析;

2.掌握如何使⽤Matlab进⾏系统的根轨迹分析;

3.掌握如何使⽤Matlab进⾏离散系统分析。

2、实验内容1.系统稳定性分析

(1)代数法稳定性判据:(⽤求分母多项式的根、routh函数和hurwrtz函数等⼏种⽅法),已知负反馈控制系统的开环传递函数为:G(s)=100(s+2)/s(s+1)(s+20) 是对系统闭环判别其稳定性。

参考程序: num0=conv(100,[1 2]);dcn0=conv(conv([1 0],[1 1]),[1 20]);

[num0,dcn0]=feedback(num0,dcn0,1,1);

[z,p,k]=tf2zp(num0,dcn0) % p=roots(dcno)

ii=find(real(p)>0);

n=length(ii);

if(n>0),disp('闭环系统是不稳定的'),

disp('不稳定的闭环极点是'),

disp(p(ii))

else disp('闭环系统是稳定的');

end

function [rtab,info]=routh(den)

info=[];

vec1=den(1:2:length(den));

nrT=length(vec1);

vec2=den(2:2:length(den));

rtab=[vec1;vec2,zeros(1,nrT-length(vec2))];

for k=1;length(den)-2

alpha(k)=vec1(1)/vec2(1);

if mod(length(den),2)==0

n=length(vec1)-1;

else n=length(vec2);

end

for i=1:n

a3(i)=rtab(k,i+1)-alpha(k)*rtab(k+1,i+1);

end

if sum(abs(a3))==0

a3=polyder(vec2);

info=[info,'All elements in row',...

int2str(k+2) 'are zeros;'];

else if abs(a3(1))

a3(1)=1e-6

info=[info,'Replace first element;'];end

rtab=[rtab;a3,zeros(1,nrT-length(a3))];

vec1=vec2;vec2=a3;a3=[];

end

n=find(rtab(:,1)<0);

if length(info)~=0

info1='This system is critical steady!';

else if length(n)~=0

info1='This system is not steady!';

else info1='This system is steady!';

end

info=[info,info1];

clear

numo=conv(100,[1 2]);

deno=conv(conv([1 0],[1 1]),[1 20]);

[numc,denc]=feedback(numo,deno,1,1);

[rtab,info]=routh(denc)

function [H,Hz_det,info]=huewitz(den)

n=length(den)-1;

for i=1:n

i1=floor(i/2);

if i=i1*2

hsub1=den(1:2:n+1);

i1=i1-1;

else hsub1=den(2:2:n+1);

end

l1=length( hsub1);

H(i,:)=[zeros(1,i1),hsub1,zeros(1,n-i1-l1)]; end

[nr,nc]=size(H);

for i=1:nr

Hz_det(i,1)=det((H(1;i,1;i)));

end

ii=find(Hz_det<0);

n=length(ii);

if n>0info='该系统是不稳定的';

else

info='该系统是稳定的'

end

end

clear;

numo=conv(100,[1 2]);

deno=conv(conv([1 0],[1 1]),[1 20]);

[numc,denc]=freedback(numo,deno,1,1);

[H,Hz_det,info]=hurwitz(denc)

(4)已知离散系统传递函数H(z)=0.632/(z2-1.368z+0.568) 绘制系统的Nyquist曲线,判别系统稳定性,并绘制出闭环系统的单位脉冲响应。

参考程序如下: num=0.632;den=[1,-1.368,0.568];

[z,p,k]=tf2zp(num,den);

P

figure(1)

subplot(211)

dnyquist(num,den,0.1,'k');

title('离散Nyquist曲线图');

subplot(212)

[num1,den1]=cloop(num,den);

dimpulse(num1,den1,'k');

title('离散冲击响应')

(5)根轨迹分析

根据下⾯负反馈系统的开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。

参考程序如下:num=1;den=conv([1 0],conv([1 1],[1 2]));

rlocus(num,den);

axis([-5 1 -4 4])

[k,poles]=rlocfind(num,den)

实验四 古典控制系统设计

⼀.实验⽬的

掌握使⽤Bode 图法进⾏控制系统设计的⽅法.

⼆.实验内容1.设单位负反馈被控对象的开环传递函数为:)