最后6个实验答案.docx
《最后6个实验答案.docx》由会员分享,可在线阅读,更多相关《最后6个实验答案.docx(27页珍藏版)》请在冰豆网上搜索。
![最后6个实验答案.docx](https://file1.bdocx.com/fileroot1/2022-11/20/c01e48c6-2e32-4c63-b8b1-eeca879dbd87/c01e48c6-2e32-4c63-b8b1-eeca879dbd871.gif)
最后6个实验答案
实验一Matlab使用方法和程序设计
一、实验目的
1、掌握Matlab软件使用的基本方法;
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、熟悉Matlab程序设计的基本方法
二、实验内容
1、帮助命令
使用help命令,查找sqrt(开方)函数的使用方法;
>>helpsqrt
2、矩阵运算
(1)矩阵的乘法
已知A=[12;34];B=[55;78];
求A^2*B。
>>A=[12;34];B=[55;78];
>>A^2*B
ans=
105115
229251
(2)矩阵除法
已知A=[112;496;579];
B=[121;324;583];
求A\B,A/B。
>>A=[112;496;579];
B=[121;324;583];
>>A\B
ans=
6.00008.0000-23.0000
-1.0000-2.00004.0000
-2.0000-2.000010.0000
(3)矩阵的转置及共轭转置
已知A=[5+i,2-i,1;6*i,4,9-i];
求A.',A'。
>>A=[5+i,2-i,1;6*i,4,9-i];
>>A.'
ans=
5.0000+1.0000i0+6.0000i
2.0000-1.0000i4.0000
1.00009.0000-1.0000i
>>A'
ans=
5.0000-1.0000i0-6.0000i
2.0000+1.0000i4.0000
1.00009.0000+1.0000i
(4)使用冒号选出指定元素
已知:
A=[123;456;789];
求A中第3列前2个元素;A中所有列第2,3行的元素;
>>A=[123;456;789];
>>A([1,2],3)
ans=
3
6
>>A([2,3],:
)
ans=
456
789
(5)方括号[]
用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列。
>>magic(4)
ans=
162313
511108
97612
414151
>>ans(:
4)=[]
ans=
1623
51110
976
41415
3、多项式
(1)求多项式
的根
(2)已知A=[1.2350.9;51.756;3901;1234]
求矩阵A的特征多项式;
求特征多项式中未知数为20时的值;
把矩阵A作为未知数代入到多项式中;
>>p=[10-2-4]
p=
10-2-4
>>roots(p)
ans=
2.0000
-1.0000+1.0000i
-1.0000-1.0000i
>>A=[1.2350.9;51.756;3901;1234]
A=
1.20003.00005.00000.9000
5.00001.70005.00006.0000
3.00009.000001.0000
1.00002.00003.00004.0000
>>poly(A)
ans=
1.0000-6.9000-77.2600-86.1300604.5500
>>polyval(ans,20)
ans=
7.2778e+004
>>P1=poly(A)
P1=
1.0000-6.9000-77.2600-86.1300604.5500
>>poly2str(P1,'A')
ans=
A^4-6.9A^3-77.26A^2-86.13A+604.55
4、基本绘图命令
(1)绘制余弦曲线y=cos(t),t∈[0,2π]
(2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]
>>t=0:
2*pi/100:
2*pi;
>>y=cos(t);
>>plot(t,y)
>>y1=cos(t-0.25);
>>y2=sin(t-0.5);
>>holdon
>>plot(t,y1,'r--',t,y2,'b-.')
5、基本绘图控制
绘制[0,4π]区间上的x1=10sint曲线,并要求:
(1)线形为点划线、颜色为红色、数据点标记为加号;
(2)坐标轴控制:
显示范围、刻度线;
(3)标注控制:
坐标轴名称、标题、相应文本;
>>t=0:
4*pi/200:
4*pi;
>>x1=10*sin(t);
>>plot(t,x1,'r-.+')
>>axis([0,14,-10,10])
>>title('x1=10*sin(t)')
>>xlabel('x','FontSize',18)
>>ylabel('t','FontSize',18)
6、基本程序设计
(1)编写命令文件:
计算1+2+…+n<2000时的最大n值;
>>m=0;n=0;
>>while(m<2000)
n=n+1;
m=m+n;
end
>>n=n-1
n=
62
(2)编写函数文件:
分别用for和while循环结构编写程序,求2的0到n次幂的和。
1)新建sy162.m文件,然后输入以下内容并保存在work目录下。
sum=0;
fori=0:
1:
7
sum=sum+2^i;
end
2)新建sy162w.m文件,然后输入以下内容并保存在work目录下。
a=0;
i=0;
while(i<=10)
a=a+2^i;
i=i+1;
end
(3)如果想对一个变量x自动赋值。
当从键盘输入y或Y时(表示是),x自动赋为1;当从键盘输入n或N时(表示否),x自动赋为0;输入其他字符时终止程序。
在程序编辑器中输入以下内容,并按默认设置保存为函数文件。
function[x]=abcd()
a=input('','s');
switcha
case'y',x=1;
case'Y',x=1;
case'n',x=0;
case'N',x=0;
otherwise
end
end
实验二控制系统分析
(一)
一、实验目的
1、掌握如何使用Matlab进行系统的时域分析
2、掌握如何使用Matlab进行系统的频域分析
3、掌握如何使用Matlab进行系统的根轨迹分析
二、实验内容
1、时域分析
(1)根据下面传递函数模型:
绘制其单位阶跃响应曲线并从图上读取最大超调量,绘制系统的单位脉冲响应、零输入响应曲线。
>>num=5*[156];
>>den=[16108];
>>sys=tf(num,den);
>>step(sys)
>>grid
>>ymax=max(y)
>>impulse(sys)
>>sys1=ss(sys)
>>x0=[3;1;2]
>>initial(sys1,x0)
(2)典型二阶系统传递函数为:
当ζ=0.7,ωn取2、4、6、8、10、12的单位阶跃响应。
建立命令文件,输入以下内容,保存在默认目录中。
wn=[2:
2:
12];z=0.7;t=0:
0.1:
12;
holdon
fori=1:
length(wn)
Gc=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]);
step(Gc,t)
end
gridon,holdoff
(3)典型二阶系统传递函数为:
当ωn=6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0的单位阶跃响应。
建立命令文件,输入以下内容,保存在默认目录中。
wn=6;zetas=[0.20.40.60.81.01.52.0];t=0:
0.1:
12;
holdon
fori=1:
length(zetas)
Gc=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);
step(Gc,t)
end
gridon,holdoff
2、频域分析
(1)典型二阶系统传递函数为:
当ζ=0.7,ωn取2、4、6、8、10、12的伯德图。
建立命令文件,输入以下内容,保存在默认目录中。
wn=[2:
2:
12];z=0.7;t=0:
0.1:
12;
holdon
fori=1:
length(wn)
Gc=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]);
bode(Gc,t)
end
gridon,holdoff
(2)典型二阶系统传递函数为:
当ωn=6,ζ取0.2、0.4、0.6、0.8、1.0、1.5、2.0的伯德图。
建立命令文件,输入以下内容,保存在默认目录中。
wn=6;zetas=[0.20.40.60.81.01.52.0];t=0:
0.1:
12;
holdon
fori=1:
length(zetas)
Gc=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);
bode(Gc,t)
end
gridon,holdoff
3、根轨迹分析
根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析系统稳定的K值范围。
sys=tf(1,[1320])
rlocus(sys)
[x,y]=ginput
(1)
p=x+i*y;
K=rlocfind(sys,p)
运行结果p=0+1.4037iK=5.9115在0
实验三控制系统分析
(二)
一、实验目的
1、掌握如何使用Matlab进行系统的稳定性分析
2、掌握如何使用Matlab进行系统的能观测性、能控性分析
3、掌握如何使用Matlab进行离散系统分析
二、实验内容
1、系统稳定性分析
(1)代数法稳定性判据:
(用求分母多项式的根和routh函数两种方法来判定)
已知系统的开环传递函数为:
试对系统闭环判别其稳定性
1)>>clear
k=100;z=-2;p=[0-1-20];
[num,den]=zp2tf(z,p,k);
sys=tf(num,den);
p=num+den;
roots(p)
ans=
-12.8990
-5.0000
-3.1010
因为闭环特征方程的根全部为负值,所以系统是稳定的。
2)先在work目录下建立routh.m,具体函数内容请见课本附录。
然后建立.m文件,输入以下内容。
s=tf('s');
sys=100*(s+2)/(s*(s+1)*(s+20))
close_sys=feedback(sys,1)
den=close_sys.den{1}
[rtab,msg]=routh(den)
Transferfunction:
100s+200
-------------------
s^3+21s^2+20s
Transferfunction:
100s+200
--------------------------
s^3+21s^2+120s+200
den=
121120200
rtab=
1120
210
1200
00
msg=
Allelementsinrow4arezeros;
劳斯表第一列全部为正,不变号,所以系统稳定。
(2)根轨迹法判断系统稳定性:
已知一个单位负反馈系统开环传递函数为:
试在系统的闭环根轨迹图上选择一点,求出该点的增益及其系统的闭环极点位置,并判断在该点系统闭环的稳定性。
s=tf('s');
g=(s+3)/(s*(s+5)*(s+6)*(s^2+2*s+2));
gh=feedback(g,1);
rlocus(gh)
[K,poles]=rlocfind(gh)
运行结果:
Selectapointinthegraphicswindow
selected_point=
-6.3803+2.7640i
K=
509.3252
poles=
-6.4319+2.7310i
-6.4319-2.7310i
1.3488+3.0406i
1.3488-3.0406i
-2.8338
有2个闭环极点在S右半平面,系统在该点不稳定。
(3)Bode图法判断系统稳定性:
已知两个单位负反馈系统的开环传递函数分别为:
用Bode图法判断系统闭环的稳定性。
s=tf('s');
g1=2.7/(s^3+5*s^2+4*s);
g2=2.7/(s^3+5*s^2-4*s);
bode(g1)
[Gm1,Pm1,Wcg1,Wcp1]=margin(g1)
grid
figure
(2)
bode(g2)
[Gm2,Pm2,Wcg2,Wcp2]=margin(g2)
grid
2、系统能控性、能观性分析
已知连续系统的传递函数模型,
当α分别取-1,0,+1时,判别系统的能控性与能观性
当α=-1时,
num=[1-1];
den=[1102718];
[A,B,C,D]=tf2ss(num,den);
Tc=ctrb(A,B);
rank(Tc)
To=obsv(A,C);
rank(To)
运行结果
ans=
3
ans=
3
能控与能观矩阵都满秩,系统能控且能观。
当α=0,1时,与上类似。
实验十一古典控制系统设计---根轨迹法
一、实验目的
掌握使用根轨迹法进行控制系统设计的方法
二、实验内容
1、根据二阶系统如图所示,其中ζ=0.6,ωn=5rad/s,当有一阶跃信号作用于系统时,试计算特征量tr、tp、ts、σp。
zet=0.6;wn=5;
num=wn^2;den=[12*zet*wn0];
sys=tf(num,den)
sys_close=feedback(sys,1)
[pos,tr,ts,tp]=stepchar(sys_close,0.02)
2、根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析系统稳定的k值范围和使系统无超调的K值范围。
sys=tf(1,[1,4,5,0])
rlocus(sys)
[x,y]=ginput(3);
p=x+i*y
K=rlocfind(s,p)
3、设单位负反馈系统的开环传递函数为:
试确定带惯的PD控制器的串联超前校正参数,使之满足:
(1)阶跃响应的超调量:
σ≤30%;
(2)阶跃响应的超调时间:
ts≤0.8s(Δ=0.02)。
KK=5;bp=0.30;ts=0.8;delta=0.02;
ng0=[256];dg0=conv([1,0],conv([1,8],[1,16]));
g0=tf(ng0,dg0);
s=bpts2s(bp,ts,delta);
[ngc,dgc]=rg_lead(ng0,dg0,s);
gc=tf(ngc,dgc)
g0c=tf(g0*gc);
b1=feedback(g0,1);
b2=feedback(5*g0c,1);
figure(4);
step(b1,'r--',b2,'b');gridon
[pos,tr,ts,tp]=stepchar(b2,delta)
实验十二古典控制系统设计——Bode图法
一、实验目的
掌握使用Bode图法进行控制系统设计的方法
二、实验内容
1、设单位负被控对象的传递函数为:
其设计要求:
KK=25;Pm=40;wc=2.5;
ng0=KK*[1];dg0=conv([1,0],conv([0.05,1],[0.25,1]));g0=tf(ng0,dg0);
t=[0:
0.01:
5];w=logspace(-2,2);
[ngc,dgc]=fg_lag_wc(ng0,dg0,w,wc);
gc=tf(ngc,dgc),g0c=tf(g0*gc);
b1=feedback(g0,1);b2=feedback(g0c,1);
step(b1,'r--',b2,'b',t);axis([0,5,-0.5,1.5]);gridon
figure,bode(g0,'r--',g0c,'b',w);gridon,
[gm,pm,wcg,wcp]=margin(g0c)
2、设有单位负反馈系统,其开环传递函数为:
其设计要求:
,相角裕度为50度,幅值裕度为10dB,试确定超前—滞后串联校正装置,以满足性能指标。
KK=10;delta=0.05;
ng0=[1];dg0=conv([1,0],conv([1,1],[0.5,1]));
t=[0:
0.01:
5];w=logspace(-2,2);
g0=tf(ng0,dg0);b1=feedback(KK*g0,1);
[gm,pm,wcg,wcp]=margin(KK*g0)
roots(b1.den{1})
Pm=45;wc=2.5;
[ng1,dg1]=fg_lead_pm_wc(ng0,dg0,Pm,wc,w);
gc1=tf(ng1,dg1)%超前校正控制器
g01=KK*g0*gc1;
[ng2,dg2]=fg_lag_pm(g01.num{1},g01.den{1},w,Pm);
gc2=tf(ng2,dg2)%滞后校正控制器
g02=g01*gc2;b2=feedback(g02,1);
bode(KK*g0,'r--',g02,'b',w),gridon;
[gm,pm,wcg,wcp]=margin(g02)
figure,step(b1,'r--',b2,'b',t);gridon;
[pos,tr,ts,tp]=stepchar(b2,delta)
gc=zpk(KK*gc1*gc2)
实验十三控制系统SIMULINK仿真
一、实验目的
学习使用SIMULINK进行系统仿真的方法
二、实验内容
1、Simulink的基本操作
(1)运行Simulink
(2)常用的标准模块和模块的操作
2、系统仿真及参数设置
(1)算法设置(Solver)
(2)工作空间设置(WorkspaceI/O)
3、使用Simulink创建系统,求解非线性微分方程
其初始值为
绘制函数的波形。
第一个积分环节initialcondition为0,第二个积分环节为2。
4、已知系统结构图如下:
图1含饱和非线性环节系统方框图
已知输入为信号电平从1~6,非线性环节的上下限为±1,仿真时间为10秒,试绘制系统的响应曲线。
5、PID控制系统的结构如图所示,试设计串联补偿器,使系统速度稳态误差小于10%,相角裕量PM=45º,并对系统进行仿真。
图2典型PID控制系统结构图
%PID校正装置的函数模型为Kp*[1+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;
Kv=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;
要求速度误差小于10%,即在单位斜坡输入的响应误差小于10%。
TransferFcn
TransferFcn1
上面几乎重合的两条曲线分别为单位斜坡曲线与校正后的响应曲线,可看出误差已经很小,几乎与原曲线重合,已经满足题设要求,达到了设计PID的目的。
进一步可绘制系统波特图,验证相角裕量PM>45º。