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(
yπ
∈
-
=
-
=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.设单位负反馈被控对象的开环传递函数为:)