matlab实验报告Word文件下载.docx
《matlab实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《matlab实验报告Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
1.00009.0000-1.0000i
A'
15.0000-1.0000i0-6.0000i
2.0000+1.0000i4.0000
1.00009.0000+1.0000i
(4)使用冒号选出指定元素
已知A=[123;
求A中第三列前两个元素;
A中所有第二行的元素
A=
123
456
789
求A中第三列前两个元素:
A([1,2],3)
3
6
求A中所有第二行的元素:
A(2,1:
1:
end)
(5)方括号[]
用magic函数生成一个4阶魔方矩阵,删除该矩阵的第四列
magic(4)
162313
511108
97612
414151
a=ans;
a(:
[1,2,3])
1623
51110
976
41415
3..多项式
(1)求多项式p(X)=x^3-2x-4的根
(2)已知A=[1.2350.9;
51.756;
3901;
1234]
求矩阵A的特征多项式;
求矩阵多项式中未知数为20时的值;
把矩阵A作为未知数代入到多项式中;
(1)a=[1,0,-2,-4]
x=roots(a)
x=
2.0000
-1.0000+1.0000i
-1.0000-1.0000i
(2)求特征多项式系数:
A=[1.2350.9;
p=poly(A)
p=
1.0000-6.9000-77.2600-86.1300604.5500
求矩阵多项式中未知数为20时的值:
c=polyval(p,20)
c=
7.2778e+004
把矩阵A作为未知数代入到多项式中:
c=polyval(p,A)
1.0e+003*
0.3801-0.4545-1.99510.4601
-1.99510.2093-1.9951-2.8880
-0.4545-4.89780.60460.4353
0.43530.0840-0.4545-1.1617
4、基本程序设计
(1)编写命令文件:
计算1+2+3+……+n<
2000;
n=0;
s=0;
whiles<
2000
n=n+1;
s=s+n;
end
n=n-1
n=
62
(2)编写函数文件:
分别用for和while循环结构编写程序,求2的0到n次幂的和。
function[sum]=mi(n)
sum=0;
form=0:
n
sum=sum+2^m;
m=0;
whilem<
=n
sum=sum+2^m;
m=m+1;
(3)如果想对一个变量x自动赋值。
当从键盘输入y或Y时,x自动赋为1;
当从键盘输入n或N时,x自动赋为0;
输入其他字符终止程序。
s=input('
pleaseinputakey:
'
'
s'
)
while(s=='
n'
||s=='
N'
y'
Y'
if(s=='
clc;
x=1;
disp('
x='
);
disp(x);
else(s=='
x=0;
end
回车后显示:
x=
0
y
退出程序。
实验二:
MATLAB的时域实验
一实验目的
1、掌握如何使用MATLAB进行系统的时域分析
2、掌握如何使用MATLAB进行系统的稳定性分析
1、时域分析
(1)根据下面传递函数模型,回执单位阶跃响应曲线并从图上读取最大超调量,绘制系统的单位脉冲响应、零输入响应曲线。
G(s)=5(s^2+5s+6)/(s^3+6s^2+10s+8)
exp2_1_1.m
s=tf('
f1=figure;
f2=figure;
gs=5*(s^2+5*s+6)/(s^3+6*s^2+10*s+8);
figure(f1);
step(gs)
y=step(gs);
ymax=max(y)
figure(f2);
impulse(gs)
t=[0:
0.01:
15];
运行m文件
ymax=
4.0230
figure1:
figure2:
2)典型二阶系统为
当
取2、4、6、8、10、12的单位阶跃响应。
程序:
>
clear
z=0.7;
wn=2:
2:
12;
holdon
fori=1:
length(wn)
sys=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]);
step(sys)
(3)典型二阶系统为
当
取0.2、0.4、0.6、0.8、1.0、1.5、2.0的单位阶跃响应。
wn=6;
z=[0.2:
0.2:
2];
length(z)
sys=tf(wn^2,[1,2*z(i)*wn,wn^2]);
holdoff
2、系统稳定性分析
(1)代数法稳定判据(用求分母多项式的根和routh函数两种方法):
已知系统的开环传递函数为:
试对系统闭环判别其稳定性。
k=100;
z=-2;
p=[0,-1,-20];
[num,den]=zp2tf(z,p,k);
sys=tf(num,den);
P=num+den;
roots(P)
结果:
-12.8990
-5.0000
-3.1010
因为其值都为负,所以可以判定该系统是稳定的。
(2)根轨迹法判断系统稳定性:
已知一个单位负反馈系统开环传递函数为
试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。
clear
num=[13];
den=conv(conv(conv([10],[15]),[16]),[122]);
rlocus(sys)
[k,poles]=rlocfind(sys)
Selectapointinthegraphicswindow
selected_point=
-3.0036-0.0311i
k=
2.8833e+003
(3)Bode图法判断系统稳定性
已知两个单位负反馈系统的开环传递函数分别为:
用Bode图法判断系统闭环的稳定性。
程序1:
clear
num=[0002.7];
den=[1540];
s1=tf(num,den);
[Gm,Pm,Wcg]=margin(s1)
margin(s1)
结果;
Gm=
7.4074
Pm=
51.7321
Wcg=
2.0000
程序2:
den=[15-40];
s2=tf(num,den);
margin(s2)
[Gm,Pm,Wcp]=margin(s2)
Inf
-58.0504
Wcp=
NaN
实验三、Matlab的频域实验
一、实验目的:
1、撑握如何使用MATLAB进行系统的时域分析;
2、撑握如何使用MATLAB进行系统的稳定性分析;
二、实验编程与测试
1)典型二阶系统传递函数为
取2、4、6、8、10、12的伯德图。
num=wn(i)^2;
den=[1,2*z*wn(i),wn(i)^2];
bode(num,den);
(2)典型二阶系统传递函数为
取0.2、0.4、0.6、0.8、1.0、1.5、2.0的伯德图。
z=(0.2:
2.0);
num=wn^2;
den=[1,2*z(i)*wn,wn^2];
3.根轨迹分析
根据下面负反馈系统德开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。
num=[1];
den=conv([110],[12]);
实验四、基于Matlab的PID控制器实验
1、掌握使用MATLAB进行根轨迹法的控制系统设计
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=[Wn^2];
deno=conv([1,0],[1,2*Wn*Rr]);
[num,den]=cloop(numo,deno,-1);
G=tf(num,den);
step(G);
[Y,T]=step(G);
[pos,tp,tr,ts2]=stepchar(Y,T)
pos=
4.7092
tp=
8.8343
tr=
4.2594
ts2=
11.8317
其中stepchar函数如下
function[pos,tp,tr,ts2]=stepchar(y,t)
%findposandtp
%返回阶跃响应输出y列向量的最大值mp及对应下标值ind
[mp,ind]=max(y);
%求取时间向量的长度dimt
dimt=length(t);
%确定最终的稳定值yss
yss=y(dimt);
pos=100*(mp-yss)/yss;
tp=t(ind);
%findrisetimetr
%确定输出为0.1时的时刻
i=1;
j=1;
k=1;
q=1;
whiley(i)<
0.1
i=i+1;
t1=t(i);
%确定输出为0.9时的时刻
whiley(j)<
0.9
j=j+1;
t2=t(j);
tr=t2-t1;
%findts2
i=dimt+1;
n=0;
whilen==0
i=i-1;
ifi==1
n=1;
elseify(i)>
=1.02
ify(i)<
=0.98
t2=t(i);
ift1>
t2
ts2=t1;
else
ts2=t2;
(2)设被控对象的传递函数为
试其设计要求:
,相角裕度为50度,幅值裕度为10dB,试确定一个校正装置,以满足性能指标。
clear;
k=10;
%原传递函数的K值
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,10^0.5,1);
%其中10^0.5是根据要求的10db计算得来
step(feedback(G*Gc,1));
margin(Gc*G);
未校正前的闭环系统(单位负反馈)的单位阶跃响应,可知该系统并不稳定。
未校正前的开环系统的波特图,由下图可知其相位裕度和幅值裕度均为负值,该系统不稳定
下图为校正后的闭环系统(单位负反馈)的单位阶跃响应。
校正后的开环系统的波特图,由图可知其相位裕度和幅值裕度均为题目要求的值,该系统处于稳定状态
其中leadlagc函数如下:
functionGc=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.den{1};
a=den(length(den):
-1:
1);
ii=find(abs(a)<
=0);
num=G.num{1};
G_n=num(end);
iflength(ii)>
0,
a=a(ii
(1)+1);
else,
a=a
(1);
alpha=sqrt((1-Phi_c)/(1+Phi_c));
Zc=alpha*Wc;
Pc=Wc/alpha;
Kc=sqrt((Wc*Wc+Pc*Pc)/(Wc*Wc+Zc*Zc))/Gai;
K1=G_n*Kc*alpha/a;
ifnargin==4,
key=1;
ifPhi_c<
key=2;
else,
ifK1<
Kv,
key=3;
end;
switchkey
case1,
Gc=tf([1Zc]*Kc,[1Pc]);
case2
Kc=1/Gai;
K1=G_n*Kc/a;
Gc=tf([10.1*Wc],[1K1*Gcn
(2)/Kv]);
case3
Zc2=Wc*0.1;
Pc2=K1*Zc2/Kv;
Gcn=Kc*conv([1Zc],[1Zc2]);
Gcd=conv([1Pc],[1Pc2]);
Gc=tf(Gcn,Gcd);
(3)PID控制系统的结构如图所示,
试设计串联补偿器,使系统速度稳态误差小于10%,相角裕量45度,并对系统进行仿真。
分析:
PID校正装置的函数模型为Kp[1+1/(Ti*S)+Td*s];
在此可知Kp=10;
假设Ti=1.50;
Td=0.25;
输入以下程序:
num1=400;
den1=conv([1,0],[1,30,200]);
G1=tf(num1,den1);
step(feedback(G1,1),5);
%原系统的单位阶跃响应(单位负反馈)
bode(G1);
grid;
Kv=10;
%根据误差小于10%得来
Ti=1.50;
%设置参数
Gc=Kv*(Ti*Td*s*s+Ti*s+1)/(Ti*s);
%通分后的PID函数模型;
bode(G1*Gc);
step(feedback(G1*Gc,5),2.5);
G=G1*Gc;
未校正前的单位阶跃响应,可知系统稳定
下图为未校正前的开环系统波特图
校正后的开环系统波特图,可知相位裕度刚好为45(-135+180)度,满足题设要求;
下图为校正后的单位阶跃响应,可知虽然超调量有所增加,但阶跃响应的时间明显变短,系统很快进入稳定状态,这在工程上是有利的。
题目要求速度误差小于10%,即在单位斜坡输入的响应误差为小于10%,通过搭建Simulink模块,观察PID校正器的效果,下图中上部分为校正后的单位负反馈模块,其传递函数的num,den参数通过前面的程序获得,即程序中G的分子与分母;
中间模块为未校正系统的单位负反馈模块;
最下面为通过MUX直接输出单位斜坡的波形,以便与最终结果做比较。
下图中最下面的曲线为为未校正前的单位斜坡输入响应曲线;
上面几乎重合的两条曲线分别为单位斜坡曲线与校正后的响应曲线,可知误差已经很小,几乎与原曲线重合,已经满足题设要求,达到了设计PID的目的。
五、思考题
1、PID控制器参数的意义是什么?
答:
典型的PID控制器由三个部分组成,比例环节,积分环节,微分环节。
其数学表达式为Kp[1+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。