matlab南昌大学实验报告.docx
- 文档编号:11365307
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:40
- 大小:868.61KB
matlab南昌大学实验报告.docx
《matlab南昌大学实验报告.docx》由会员分享,可在线阅读,更多相关《matlab南昌大学实验报告.docx(40页珍藏版)》请在冰点文库上搜索。
matlab南昌大学实验报告
实验报告
实验课程:
matlab程序设计与应用
学生姓名:
吴样洋
学号:
5901109126
专业班级:
机械设计制造及其自动化
2011-11-13
一、实验一傅立叶变换及图象的频域处理……………………………
二、实验二求六面体体积…………………………
三、实验三求函数的驻点
四、实验四求余弦的积分并绘出图像
五、实验五用plot函数画出函数图像
六、实验六求解多项式
七、实验七GUI程序设计
八、实验八SimuLink与控制系统建模
九、实验九控制系统性能分析
10、实验十图形方式下控制系统分析及调节器设计
实验一傅立叶变换及图象的频域处理
一、实验目的
1、了解离散傅立叶变换的基本原理;
2、掌握应用MATLAB语言进行FFT及逆变换的方法;
3、了解图象在频域中处理方法,应用MATLAB语言作简单的低通滤波器。
二、实验要求
1、读取图象girl.bmp,显示这幅图象,对图象作傅立叶变换,显示频域振幅图象。
作傅立叶逆变换,显示图象,看是否与原图象相同。
2、设计一个低通滤波器,截止频率自选,对图象作低通滤波,再作反变换,观察不同的截止频率下反变换后的图象与原图象的区别。
2、选做:
显示一幅频域图象的相位分布图,分别对振幅分布和相位分布作傅立叶逆变换,观察两幅图象,体会频域图象中振幅与位相的作用。
解:
实验二求六面体体积
一、实验目的
与本实验有关的函数
二.实验要求
解:
a=[10-2];b=[225];c=[631];
A=[a;b;c];
v=abs(det(A))
V=1.0
实验三求函数的驻点
一、实验目的
1、了解如何查找MATLAB中已有的函数对问题进行求解。
二、实验要求(选作下列习题)
1.求
的极值,并对图形进行观测。
解:
clear;symsxy;
z=x^4+y^4-4*x*y+1;
diff(z,x)
diff(z,y)
clear
[x,y]=solve('4*x^3-4*y=0','4*y^3-4*x','x','y')
clear;symsxy;
z=x^4+y^4-4*x*y+1;
A=diff(z,x,2)
B=diff(diff(z,x),y)
C=diff(z,y,2)
clear;
x=-5:
0.2:
5;y=-5:
0.2:
5;
[X,Y]=meshgrid(x,y);
Z=X.^4+Y.^4-4*X*Y+1;
mesh(X,Y,Z)
xlabel('X'),ylabel('Y'),zlabel('Z')
ans=4*x^3-4*y
ans=4*y^3-4*x
x=0
i
-i
-1
1
(1/2-1/2*i)*2^(1/2)
(-1/2+1/2*i)*2^(1/2)
(1/2+1/2*i)*2^(1/2)
(-1/2-1/2*i)*2^(1/2)
y=
0
-i
i
-1
1
-1/2*2^(1/2)-1/2*i*2^(1/2)
1/2*2^(1/2)+1/2*i*2^(1/2)
-1/2*2^(1/2)+1/2*i*2^(1/2)
1/2*2^(1/2)-1/2*i*2^(1/2)
A=12*x^2
B=-4
C=12*y^2
此时极值点(0,0)y=1
2.求函数
在圆周
的最大值和最小值。
解:
clear;symsaxy;
a=0:
pi/1000:
2*pi;
x=sin(a);y=cos(a);
f=x.^2+2*y.^2;
Minf=min(min(f))
Maxf=max(max(f))
Minf=1
Maxf=2
3.在球面
求出与点(3,1,-1)距离最近和最远点。
解:
clear;symsxyz;
F=x.^2+y.^2+z.^2-1;
p=[31-1];
a=p/norm(p)
b=-p/norm(p)
a=
0.90450.3015-0.3015
b=
-0.9045-0.30150.3015
实验四求余弦的积分并绘出图像
一、实验目的
1、了解绘图工具的使用。
二、实验要求(选作下列习题)
1.(不定积分)用int计算下列不定积分,并用diff验证
,
,
,
,
解:
clear;symsxy;
int(x*sin(x^2))
ans=
-1/2*cos(x^2)
2.(定积分)用trapz,int计算下列定积分
解:
clear;symsxy;
int(sin(x)/x,x,0,1)
ans=
sinint
(1)
3.(椭圆的周长)用定积分的方法计算椭圆
的周长
解:
>>symsx
y=3*(1-x^2/4)^(1/2);
y1=diff(y,x);
f=(1+y1^2)^(1/2)
f=
(1-(9*x^2)/(16*(x^2/4-1)))^(1/2)
>>ss=@(x)(1-(9*x.^2)./(16*(x.^2/4-1))).^(1/2)
ss=
@(x)(1-(9*x.^2)./(16*(x.^2/4-1))).^(1/2)
>>S=2*quad(ss,-2,2)
S=
15.8655
4.(二重积分)计算积分
解:
>>clear;symsxy;
iy=int(1+x+y,y,1-sqrt(1-x^2),1+sqrt(1-x^2));
int(iy,x,-1,1)
ans=
2*pi
5.(广义积分)计算广义积分
解:
clear;symsxy;
clear;symsx;
y=int(exp(-x^2)/(1+x^4),x,-inf,inf);
vpa(y,10)
ans=
1.434846558
实验五 用matlab求解多项式(常微分方程)
一、实验目的
1、了解MATLAB中主要用dsolve求符号解析解,ode45,ode23,ode15s求数值解。
s=dsolve(‘方程1’,‘方程2’,…,’初始条件1’,’初始条件2’…,’自变量’)
用字符串方程表示,自变量缺省值为t。
导数用D表示,2阶导数用D2表示,以此类推。
S返回解析解。
在方程组情形,s为一个符号结构。
[tout,yout]=ode45(‘yprime’,[t0,tf],y0)采用变步长四阶Runge-Kutta法和五阶Runge-Kutta-Felhberg法求数值解,yprime是用以表示f(t,y)的M文件名,t0表示自变量的初始值,tf表示自变量的终值,y0表示初始向量值。
输出向量tout表示节点(t0,t1,…,tn)T,输出矩阵yout表示数值解,每一列对应y的一个分量。
若无输出参数,则自动作出图形。
ode45是最常用的求解微分方程数值解的命令,对于刚性方程组不宜采用。
ode23与ode45类似,只是精度低一些。
ode12s用来求解刚性方程组,是用格式同ode45。
可以用helpdsolve,helpode45查阅有关这些命令的详细信息.
二、实验要求(选作下列习题)
1.求下列微分方程的解析解
解:
选做
(1)和(6)
(1)>>clear;
s=dsolve('D2y=3*y-2*Dy+e^(-3*x)')
simplify(s)
s=
exp(-3*t)*C2+exp(t)*C1-1/3*e^(-3*x)
ans=
exp(-3*t)*C2+exp(t)*C1-1/3*e^(-3*x)
(6)>>clear;
s=dsolve('D2y=cos(x)-y-Dy','Dy(0)=1.5')
simplify(s)
s=
exp(-1/2*t)*sin(1/2*3^(1/2)*t)*C2+exp(-1/2*t)*cos(1/2*3^(1/2)*t)*(3^(1/2)*C2-3)+cos(x)
ans=
exp(-1/2*t)*sin(1/2*3^(1/2)*t)*C2+exp(-1/2*t)*cos(1/2*3^(1/2)*t)*3^(1/2)*C2-3*exp(-1/2*t)*cos(1/2*3^(1/2)*t)+cos(x)
2.求方程
的解析解和数值解,并进行比较
解:
fun8:
functionf=fun8(x,y)
f=y-x^3+3*x^2-3*x+2
clear;
close;x=0:
0.1:
1;
y=1+x.^3+3*x;plot(x,y)
holdon;
[x,y]=ode45('fun8',[0,1],1);plot(x,y,'ro')
3.分别用ode45和ode15s求解Van-del-Pol方程
的数值解,并进行比较.
实验七GUI程序设计
1、实验目的
掌握MATLABGUI及回调程序设计。
2、实验要求
(1)设计如图1所示界面
图1
要求可用点或钩选中函数,按PLOT按钮,在右边同时绘制选中曲线,没有选中的曲线则不需要绘制。
(2)设计如图2所示界面
图2
要求输入X,Y坐标点后,按APPEND按钮,在右上图绘制已输入点;按PLOFIT按钮后,用3次曲线拟合输入点,并在右上图绘制该曲线;按ROOT按钮后,在右下图绘3次多项式对应根(虚跟用Y坐标表示)。
3、实验报告
写出题
(1)、
(2)求解过程及相应程序。
一、解:
(1)实验七的M文件:
clear;
k=figure('name','ʵÑé7-1','numbertitle','off','menubar','none');
axes('position',[0.3,0.05,0.65,0.9])
axisoff
h1=0;h2=0;h3=0;
x=0:
0.01:
10;
hf1=uicontrol(gcf,'style','check','position',[20,350,50,20],'string','sin(x)',...
'callback','plotsin');
holdon
hf2=uicontrol(gcf,'style','radio','position',[20,250,60,20],'string','cos(x/2)',...
'callback','plotcos');
holdon
hf3=uicontrol(gcf,'style','check','position',[20,150,120,20],'string','0.05*x+log(2+10*x)',...
'callback','plotlog');
hf4=uicontrol(gcf,'style','push','position',[20,50,50,20],'string','plot',...
'callback','myplot');
二、MATLAB程序如下:
y3=0.05*x+log(2+10*x);
h3=plot(x,y3,'g');
set(h3,'visible','off')
y2=cos(x/2);
h2=plot(x,y2,'m');
set(h2,'visible','off')
y1=sin(x);
h1=plot(x,y1,'b');
set(h1,'visible','off')
axison
set(h1,'visible','on')
set(h2,'visible','on')
set(h3,'visible','on')
holdoff
title('按键后继续');
pause();
close(k);
shiyan7;
shiyan7
实验效果图如下:
(2)clear;
k=figure('name','实验7-2','numbertitle','off','menubar','none');
hf1=uicontrol(k,'style','text','position',[20,350,30,20],'fontsize',14,'string','X','back',[101]);
hf2=uicontrol(k,'style','text','position',[20,300,30,20],'fontsize',14,'string','Y','back',[101]);
h1=uicontrol(k,'style','edit','position',[65,350,80,20],'back',[010]);
h2=uicontrol(k,'style','edit','position',[65,300,80,20],'back',[010]);
axes('position',[0.350.350.60.53]);
axes('position',[0.350.060.60.2]);
hf3=uicontrol(k,'style','push','position',[20,200,120,40],'fontsize',14,'string','Append','call','Append');
hf4=uicontrol(k,'style','push','position',[20,120,120,40],'fontsize',14,'string','Ployfit','call','Ployfit');
hf5=uicontrol(k,'style','push','position',[20,40,120,40],'fontsize',14,'string','root','call','root');
分别建立Append/ployfit/root的M文件:
1Append.m文件:
x=str2num(get(h1,'string'));y=str2num(get(h2,'string'));
axes('position',[0.350.350.60.53]);axisoff
plot(x,y,'b');axisoff
2ployfit.m文件:
x=str2num(get(h1,'string'));y=str2num(get(h2,'string'));
axes('position',[0.350.350.60.53]);axisoff
p=polyfit(x,y,3);y1=polyval(p,x);
holdon
plot(x,y1,'m-*')
axisoff;holdoff
3root.m文件:
x=str2num(get(h1,'string'));y=str2num(get(h2,'string'));
axes('position',[0.350.060.60.2]);axisoff
p=polyfit(x,y,3);x=roots(p);plot(x,'b*')
axisoff;holdoff
实验八SimuLink与控制系统建模
1、实验目的
掌握利用Simulink进行复杂系统动态仿真计算、以及控制系统建模
2、实验要求
(1)求下列系统的动态响应,要求计算时间为15秒,等步长计算,并将计算结果绘制成曲线。
(2)已知直流电机控制系统模型为:
用状态方程建立系统求解模型,求系统的动态响应,要求计算时间为20秒,计算时间点为3000个。
3、实验报告
写出求解题
(1)、
(2)、(3)MATLB命令,并给出计算或分析结果,如果计算动态响应值,用曲线绘制计算结果。
解:
(1)如下曲线
(2)将上述系统转化成子系统。
子系统内部系统
(3)计算得出:
得到如下图像
不知道怎么用状态方程解答,只好如此啦!
实验九控制系统性能分析
1、实验目的
掌握控制系统模型建立函数tf(),zpk(),ss(),及控制系统零点极点求解函数zero(),pole()函数使用,以及根轨迹绘图函数rlocus(),Bode图函数bode(),Nyquist图绘制函数nyquist()的使用,控制系统设计工具ltiview,sisotool的使用。
2、实验要求
(1)建立下列图中的控制系统模型,求闭环系统的零点,极点。
(2)绘制上图中控制系统的开环传递函数根轨迹、伯德图。
(3)使用ltiview工具,在输入为阶跃函数时,从绘制图中读系统的稳态值、超调量、上升时间、回复时间。
.
(4)用SISOTOOL设计工具,在图中设计一个超前调节器,求输入为阶跃函数时,系统的回复时间及超调量,如果超调量小于20%,系统回复时间小于1秒,调节器参数是多少?
3、实验报告
写出题
(1)、
(2)、(3)、(4)的MATLAB求解程序(命令)及计算结果。
解:
所得传递函数为y=(4*s+3)(s+1)/(6*s^3+13*s*s+12*s+4)
(1)>>numG=[473];
>>denG=[613124];
>>[pz]=pzmap(numG,denG)
p=
-0.7500+0.6614i
-0.7500-0.6614i
-0.6667
z=
-1.0000
-0.7500
(2)伯德图
num=[43];
den=[61381];
w=logspace(-1,10,100);
[GmPmw]=bode(num,den,w);
[Mr,k]=max(Gm);
Mr=20*log10(Mr);
Wr=w(k);
figure;
bode(num,den,w);
title('bode')
根的轨迹程序
num=[43];
den=[61381];
rlocus(num,den);
holdon;
v=[-1010-3535];
axis(v);
xlabel('Re')
ylabel('Im')
title('SystemRootsLocus');
(3)
Matlab命令
>>num=[43];
>>den=[613124];
>>sys=tf(num,den)
>>ltiview
出现一张图
可知
稳态值:
0.75
超调量:
1.33%
上升时间:
2.52
回复时间:
3.83
(4)>>num=[86];
den=[61381];
sys=tf(num,den);
sisotool(sys)
出现图形:
(一)在matlab命令窗口输入sisotool
(二)进入界面之后,挑选与所给题目类型相同的类型,然后进行设置
Edit_RootLocus_DesignConstraints_New中设置超调量为20%,回复时间小于1sec;
选择Compensators_Format_options_zero/pole/gain;
确定返回
(三)先点击窗口
按钮,把鼠标放在线旁边,等到变成“手形”,然后移动根轨迹过使得等频率线和等阻尼线的交点,即可得到得到调节器参数C=
实验十图形方式下控制系统分析及调节器设计
1、实验目的
掌握simulink方式下控制系统分析、进一步掌握ltiview,sisotool的使用,以及超前调节器、PID调节器参数整定方法。
2、实验要求
(1)用simulink建立下列图中的控制系统模型,求闭环系统的零点,极点。
(2)绘制上图中控制系统的开环传递函数根轨迹、伯德图。
(3)输入为阶跃函数时,从绘制图中读系统的稳态值、超调量、上升时间、回复时间。
.
(4)在图中所示位置设计一个PID调节器,要求超调量小于20%,系统回复时间小于1秒;如果是设计超前调节器,调节器参数又是多少?
3、实验报告
写出题
(1)、
(2)、(3)、(4)的MATLAB求解程序(命令)及计算结果。
解
(1)这个控制系统模型
>>num=[16];
den=[110293213];
[p,z]=pzmap(num,den)
p=
-5.9899
-2.1863
-0.9119+0.4015i
-0.9119-0.4015i
z=
-6
(2)函数根的轨迹;
>>num=[1];
den=[110293213];
rlocus(num,den);
holdon;
v=[-1010-3535];
axis(v);
xlabel('Re')
ylabel('Im')
title('SystemRootsLocus');
以下是图形
伯德图:
num=[1];
den=[110293212];
w=logspace(-1,10,100);
[GmPmw]=bode(num,den,w);
[Mr,k]=max(Gm);
Mr=20*log10(Mr);
Wr=w(k);
figure;
bode(num,den,w);
title('bode')
以下是图片。
(3)运用ltiview工具
>>num=[16];
den=[110293213];
sys=tf(num,den)
ltiview出现图片
稳态值:
0.462
超调量:
0.0651%
上升时间:
3.19
回复时间:
5.49
(4)以下是程序
>>num=[1];
den=[110293212];
sys=tf(num,den);
sisotool(sys)
程序运行图,运用SISOTOOL工具
以下是
(一)在matlab命令窗口输入sisotool
(二)进入界面之后,挑选与所给题目类型相同的类型,然后进行设置
Edit_RootLocus_DesignConstraints_New中设置超调量为20%,回复时间小于1sec;
选择Compensators_Format_options_zero/pole/gain;
确定返回
(三)先点击窗口
按钮,把鼠标放在线旁边,等到变成“手形”,然后移动根轨迹过使得等频率线和等阻尼线的交点,即可得到得到调节器参数
经过调试:
出现图片
C=49.5
大作业
班级机制设计制造及其自动化学号5901109108姓名黄智诚
(1)
解学号末尾数:
08所以令x=8
>>s=(8+pi)^(1/2)/(2*8+sin(8))^(1/2)
formatlong
s=
0.80981375845866
(2)将题
(1)中的计算结果表示成小数形式,然后去掉所有
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 南昌大学 实验 报告