Matlab使用方法和程序设计.docx

上传人:b****1 文档编号:2340411 上传时间:2022-10-28 格式:DOCX 页数:20 大小:846.05KB
下载 相关 举报
Matlab使用方法和程序设计.docx_第1页
第1页 / 共20页
Matlab使用方法和程序设计.docx_第2页
第2页 / 共20页
Matlab使用方法和程序设计.docx_第3页
第3页 / 共20页
Matlab使用方法和程序设计.docx_第4页
第4页 / 共20页
Matlab使用方法和程序设计.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

Matlab使用方法和程序设计.docx

《Matlab使用方法和程序设计.docx》由会员分享,可在线阅读,更多相关《Matlab使用方法和程序设计.docx(20页珍藏版)》请在冰豆网上搜索。

Matlab使用方法和程序设计.docx

Matlab使用方法和程序设计

实验一Matlab使用方法和程序设计

一、实验目的:

1、掌握Matlab软件使用的基本方法

2、熟悉Matlab的基本运算和程序控制语句

3、熟悉Matlab程序设计和基本方法

二、实验内容:

1、求多项式的根:

p(x)=x^4+2x^3+3x^2+5x+4

源程序:

a=[12354];

b=roots(a)

运行结果:

分析:

调用roots(a),求多项式的根

2、已知f=a^4*(b^2-c^2)+b^4*(c^2-a^2)+c^4*(a^2-b^2),试用符号运算的方法对其因式分解

源程序:

symsabc;

f=a^4*(b^2-c^2)+b^4*(c^2-a^2)+c^4*(a^2-b^2);

R=factor(f)

运行结果:

分析:

调用factor(s)对多项式进行因式分解

3、编写一个函数,完成求和:

S=1+3+5+,,,,,,+2i+1

源程序:

sum=0;

fori=1:

2:

1000;

sum=sum+i;

end

sum

运行结果:

分析:

调用for循环完成求和,起始值为1,步长为2,终止值为1000

4、已知一传递函数。

F(s)=,试将其分解部分分式

源程序:

num=[12];

den=[154];

[res,poles,k]=residue(num,den)

运行结果:

分析:

调用residue(num,den)进行分解部分分式,num为传递函数的分子,den为传递函数的分母。

三、实验总结:

本次实验使我掌握了Matlab软件使用的基本方法,熟悉了Matlab的基本运算和程序控制语句,熟悉Matlab程序设计和基本方法,让我将理论与实践相结合增强了自我动手能力,为以后的工作打下一定的基础。

 

实验二Matlab使用方法和程序设计

一、实验目的:

1、掌握如何使用MATLAB进行系统时域分析

2、掌握如何使用MATLAB进行系统频域分析

3、掌握如何使用MATLAB进行系统根轨迹分析

4、掌握如何使用MATLAB进行系统稳定性分析

二、实验内容:

时域分析:

根据传递函数,绘制其单位阶跃响应曲线,并读出超调量。

源程序:

num=[3,15,18];

den=[1,6,10,8];

G=tf(num,den);

time=[0:

0.1:

20];

step(G,time)

[wn,z,p]=damp(G);

wnzp=[wn,z,p]

k=dcgain(G)

 

运行结果截图:

分析:

由响应曲线可知;该传递函数的超调量为7.28%。

2、频域分析:

二阶系统传递函数,当ε=0.7,=6时的Bode图、Nichols图、Nyquist图,并判断其稳定性。

Bode图

源程序:

num=36;

den=[1,8.4,36];

G=tf(num,den);

bode(G)

运行结果截图:

分析:

由bode图可以读出:

当L(w)=0dB时,;当时,L(w)<0;所以该二阶系统稳定。

Nyquist图

源程序:

num=36;

den=[1,8.4,36];

G=tf(num,den);

nyquist(G)

运行结果截图:

分析:

由Nyquist图可以读出:

奈奎斯特曲线未包含(-1,0)点,所以该二阶系统稳定。

 

Nichols图

源程序:

num=36;

den=[1,8.4,36];

G=tf(num,den);

Nichols(G);

运行结果截图:

分析:

由Nichols图可以读出:

幅值裕量为0.0017dB>0dB,相角裕量为164°>0,所以该二阶系统稳定。

 

3.根轨迹分析:

前向通道:

,反馈通道:

,试确定使系统稳定的K值范围。

源程序:

num=k;

den=conv([1,0],conv([3,5],[1,100]));

G=tf(num,den)

rlocus(G);

sgrid;

[k,poles]=rlocfind(G);

k,poles

分析:

调用[k,poles]=rlocfind(G),在图中显示K值和极点,从图中可以读出K值在-13.6≦K≦13.6时,系统稳定。

4.稳定性分析:

已知开环传递函数,

(1)判断其稳定性(根分布);

源程序:

num=6;

den=conv([1,0],conv([1,3],[1,2,2]));

g=tf(num,den);

bode(g,{0.001,100});

grid;

分析:

由图可以看出该开环传递函数的根都落在s复平面虚轴左半轴,所以该系统稳定。

(2)并用Bode图判断其稳定性,及其稳定裕量。

分析:

由Bode图可以看出,当L(w)=0dB时,;当时,L(w)<0;所以该系统稳定。

幅值裕量为2.66,相角裕量为17.6°。

3、实验总结

通过本次试验让我掌握了如何使用MATLAB进行系统时域分析,如何使用MATLAB进行系统频域分析,如何使用MATLAB进行系统根轨迹分析,如何使用MATLAB进行系统稳定性分析,知道如何去读bode图,Nichols图,Nyquist图,如何去通过读图来判断系统的稳定性,也明白了使系统稳定时K值得取值范围,以及用bode图去读出系统的稳定裕量。

让我受益匪浅,为以后的工作打下了一定基础。

 

实验三Matlab使用方法和程序设计

一、实验目的

1.掌握使用串联校正控制系统设计的方法

2.掌握Niegle-Nichols的等幅振荡法PID定参

二、实验内容

1、设一单位负反馈控制系统,如果控制对象的开环传递函数为,试设计一个串联超前校正装置,要求校正后相角裕度γ´≧45º,当系统输入信号是单位斜坡信号时,稳态误差,绘制出校正后系统和未校正系统的Bode图及其闭环系统的单位阶跃响应曲线并对比。

源程序:

num=8000;

den=conv([1,0],conv([1,4],[1,80]));

G=tf(num,den);

[Gm,Pm,Wcg,Wcp]=margin(G);

w=0.1:

0.1:

10000;

[mag,phase]=bode(g,w);

magdb=20*log10(mag);

phim1=45;deta=8;

phim=phim1-Pm+deta;

bita=(1-sin(phim*pi/180))/(1+sin(phim*pi/180));

n=find(magdb+10*log10(1/bita)<=0.0001);

wc=n

(1);

w1=(wc/10)*sqrt(bita);

w2=(wc/10)/sqrt(bita);

numc=[1/w1,1];

denc=[1/w2,1];

Gc=tf(numc,denc);

GmdB=20*log10(Gm);

GcG=Gc*G;

[Gmc,Pmc,wcgc,wcpc]=margin(GcG);

GmcdB=20*log10(Gmc);

disp('未校正系统的开环传递函数和频域响应参数:

h,γ,wc')

G,[GmdB,Pm,Wcp],

disp('校正装置传递函数和校正后系统开环传递函数')

Gc,GcG,

disp('校正后系统的频域响应参数:

h,γ,wc')

[GmcdB,Pmc,wcpc],

disp('校正装置的参数T和β值:

T,β')

T=1/w1;[T,bita],

bode(G,GcG);

figure

(2);margin(GcG)

bode(GcG)

运行结果截图:

校正前:

分析:

由上图及运行结果可以看出,未校正时系统的幅值裕量为3.36,相角裕量为15.8578,穿越频率为17.8885,截止频率为9.5715.

校正后:

分析:

由上图可以看出,校正后系统的幅值裕量,相角裕量有了明显的增大,使系统更加稳定。

2、设一单位负反馈系统的开环传递函数为,请用Ziegle-Nichols第二种方法设计PID参数并绘制单位阶跃响应曲线及系统的性能指标。

源程序:

num=1;

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

G=tf(num,den);

forKm=0:

0.1:

10000

Gc=Km;

GcG=feedback(Gc*G,1);

[num,den]=tfdata(GcG,'v');

p=roots(den);pr=real(p);prm=max(pr);

pr0=find(prm>=-0.001);n=length(pr0);

ifn>=1

break

end

end

step(GcG,0:

0.001:

3);

Km(求Km)

分析:

由运行结果可以看出:

Km=419.1000

分析:

从图中可以计算出:

Tm=(2.15-0.75)s=1.4s

num=1;den=conv([1,0],conv([1,1],[1,20]));G=tf(num,den);

Km=419.1;Tm=1.4;

Kp=0.6*Km;Ti=0.5*Tm;Td=0.125*Tm;

Kp,Ti,Td,s=tf('s');

GcG=Kp*(1+1/(Ti*s)+Td*s);

GcG=feedback(Gc*G,1);step(GcG)

(求Kp,Ti,Td)

分析:

从运行结果可以看出:

Kp=251.46,Ti=0.7,Td=0.175

分析:

从上图可以看出经Ziegle-Nichols第二种方法设计PID参数后,该系统上升时间为0.278,超调量为65.8%,超调量有些大,调整时间为7.7,稳定时间为11.8。

3、实验总结

经过本次试验让我掌握使用串联校正控制系统设计的方法,学会了通过根轨迹法设计串联校正的方法,掌握了Niegle-Nichols的等幅振荡法PID定参的第二种方法,知道了Niegle-Nichols的优点在于系统不需要再在闭环状态下运行,只需在开环状态下就可测得其阶跃响应曲线。

但是缺点是该方法得到的PID控制器的参数,闭环传递函数的超调量比较大。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1