MATLAB实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、特点 :高性能的技术计算语言
强大的数值计算和工程运算功能 符号计算功能 强大的科学数据可视化能力 多种工具箱
3、功能
数学计算、算法开发、数据采集 建模、仿真、原型 数据分析、开发和可视化 科学和工程图形应用程序的开发, 包括图形用户界面的创建。
4、应用
数值计算、图形处理、 符号运算、数学建模、 系统辨识、小波分析、 实时控制、动态仿真等领域。
单位阶跃响应
例 求系统传递函数为
1 G( s) 2 s 0.5s 1 >>num=[1]; den=[1,0.5,1]; >>t=[0:0.1:10]; >>[y,x,t]=step(num,den,t); >>plot(t,y);grid; >>xlabel(‘Time [sec] t’); >>ylabel(‘y’)
在所画图形的最上端显示说明该图形标题的字符串。 xlabel(‘字符串’),ylabel(‘字符串’) 设置x,y坐标轴的名称。 输入特殊的文字需要用反斜杠(\)开头。 7)legend(‘字符串1’,‘字符串2’,…,‘字符串n’) 在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用 对应的字符串区分图形上的线。
G 系统二: (s) 24(0.25s 0.5) / s(5s 2)(0.05s 2)
系统三: (s) 24(0.25s 0.5) / s * S (5s 2)(0.05s 2) G
以上系统的乃氏图和伯德图
参考程序2
k1=1;numG1=k1*[0.25 0.5];
[ymax3,tp3]=max(y3);tp3=(tp3-1)*0.001;
mp3=(ymax3-yss)/yss; s=30001;while y3(s)>1-dta&y3(s)<1+dta;s=s-1;end ts3=(s-1)*0.001; [tr1 tp1 mp1 ts1;tr2 tp2 mp2 ts2;tr3 tp3 mp3 ts3]
例2 系统传递函数为
G( s) 1 s2 s 1 t 0,10
求取其单位脉冲响应 的MATLAB命令为 >>t=[0:0.1:10];num=[1]; >>den=[1,1,1]; >>[y,x,t]=impulse(num,den,t) >>plot(t,y);grid >>xlabel(‘t’); ylable(‘y’); 其响应结果如图所示。
%生成单位脉冲响应函数 %生成单位阶跃响应函数
[y2a,T]=impulse(G2,t);[y2,T]=step(G2,t);
[y3a,T]=impulse(G3,t);[y3,T]=step(G3,t); subplot(2,1,1),plot(T,y1,'--',T,y2,'-.',T,y3,'-') %在一个图象窗口中显示多个图形 legend('zeta=0.9','zeta=0.2','zeta=0.7') xlabel('t(sec)');ylabel(‘y(t)');grid on;
%在同一个图中画三个系统的bode图
w=logspace(-1,1.5,1000); [Gm1,Pm1,w]=bode(numG1,denG1,w); [Gm2,Pm2,w]=bode(numG2,denG2,w); [Gm3,Pm3,w]=bode(numG3,denG3,w); Lw1=20*log(Gm1); Lw2=20*log(Gm2); Lw3=20*log(Gm3); figure(2); subplot(2,1,1),plot(w,Lw1,'--',w,Lw2,'-.',w,Lw3,'-') legend('系统1','系统2','系统3') subplot(2,1,2),plot(w,Pm1,'--',w,Pm2,'-.',w,Pm3,'-') legend('系统1','系统2','系统3') grid on;
机械控制工程基础实验
MATLAB软件 在时域和频率分析中的应用
实验内容
一、MATLAB简介 二、MATLAB在时域分析中的应用 三、 MATLAB在频域分析中的应用
一、MATLAB简介
1 .MATLAB 代表 MATrix LABoratory
首创者:美国新墨西哥大学
计算机系的 Cleve Moler博士 1984年,创建MathWorks公司,专门开发MATLAB。 1993年,出现了微机版; 2003年,6.5版
denG1=conv([5 2],[0.05 2]); on;grid on; denG2=conv([5 2 0],[0 0.05 2]); on;grid on; denG3=conv([5 2 0 0],[0 0 0.05 2]); [re3,im3]=nyquist(numG1,denG3);figure(7); plot(re3,im3);hold on;grid on; [re2,im2]=nyquist(numG1,denG2);figure(6); plot(re2,im2);hold [re1,im1]=nyquist(numG1,denG1);figure(5); plot(re1,im1);hold
plot([1,2,4,9,16],[1,2,3,4,5])
MATLAB 画出图形:
3)编辑窗口
用来创建和修改M-files (MATLAB 脚本)
4)帮助窗口
6、MATLAB的程序构成
程序 •M文件与m函数 •流程控制 •函数 •语句 变量 •各种运算符 •图形显示 其它输出
7、Graphics
2、 单位阶跃响应
当输入为单位阶跃信号时,系统的输出为单位阶跃响应,
在MATLAB中可用step( )函数实现,其调用格式为 [y, x, t]=step(num, den, t) 或 step(num, den)
例 求系统传递函数为 1 G( s) 2 s 0.5s 1 >>num=[1]; den=[1,0.5,1]; >>t=[0:0.1:10]; >>[y,x,t]=step(num,den,t); >>plot(t,y);grid; >>xlabel(‘Time [sec] t’); >>ylabel(‘y’) 响应曲线如图所示
二、时域分析常用的函数
1、单位脉冲响应
当输入信号为单位脉冲函数δ(t)时,
系统输出为单位脉冲响应, MATLAB中求取脉冲响应的函数为impulse( ), 其调用格式为 [y,x,t]=impulse(num,den,t)

impulse(num,den)
式中G(s)=num/den; t为仿真时间; y为时间t的输出响应;x为时间t的状态响应。
三、 MATLAB在频域分析中的应用
1、nyquist函数
[re,im]=nyquist(numG,denG);
figure(1); plot(re,im); 2、Bode函数 w=logspace(-2,3,10); bode(numG,denG,w);
3、实验内容
系统一:G(s) 24(0.25s 0.5) /(5s 2)(0.05s 2)
在实际应用中可以根据需要进行简化。比如:plot(x,y);plot(x,y,option)
选项参数option定义了图形曲线的颜色、线型及标示符号, 它由一对单引号括起来。
plot(T,y1,'--',T,y2,'-.',T,y3,'-')
2)选择图像 figure(1);figure(2);…;figure(n) 打开不同的图形窗口,以便绘制不同的图形。 3)grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格 4)hold on:把当前图形保持在屏幕上不变, 同时允许在这个坐标内绘制另外一个图形。
%计算调整时间
[ymax2,tp2]=max(y2);tp2=(tp2-1)*0.001; mp2=(ymax2-yss)/yss;
s=30001;while y2(s)>1-dta&y2(s)<1+dta;s=s-1;end
ts2=(s-1)*0.001; r=1;while y3(r)<yss;r=r+1;end tr3=(r-1)*0.001;
MATLAB提供了丰富的绘图功能
help graph2d可得到所有画二维图形的命令
help graph3d可得到所有画三维图形的命令
1)基本的绘图命令
plot(x1,y1,option1,x2,y2,option2,…)
x1,y1给出的数据分别为x,y轴坐标值,
option1为选项参数,以逐点连折线的方式绘制1个二维图形; 同时类似地绘制第二个二维图形。
subplot(2,1,2),plot(T,y1a,'--',T,y2a,'-.',T,y3a,'-')
legend('zeta=0.9','zeta=0.2','zeta=0.7')
grid on; xlabel('t(sec)');
ylabel(‘y(t)');
yss=1; r=1;while y1(r)<yss;r=r+1;end %计算上升时间
hold off:使新图覆盖旧的图形
5)设定轴的范围 axis([xmin xmax ymin ymax])
axis(‘equal’):将x坐标轴和y坐标轴的单位刻度大小
调整为一样。
6)文字标示
text(x,y,’字符串’) 在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。
title(‘字符串’)
5、开发环境
包括:命令窗口、图形窗口、 编辑窗口、帮助窗口。
Hale Waihona Puke Baidu
1)命令窗口
可在提示符后输入交互式命令 结果会自动的产生
command (typed at prompt)
MATLAB output
MATLAB prompt (>>) and cursor (|)
2)图形窗口
在命令窗口中输入:
tr1=(r-1)*0.001;
[ymax1,tp1]=max(y1);tp1=(tp1-1)*0.001; mp1=(ymax1-yss)/yss; %计算峰值时间
%计算超调量
s=30001;while y1(s)>1-dta&y1(s)<1+dta;s=s-1;end
ts1=(s-1)*0.001; r=1;while y2(r)<yss;r=r+1;end tr2=(r-1)*0.001;
例1 试求下列系统的单位脉冲响应
C ( s) 1 G( s) 2 R( s ) s 0.3s 1
MATLAB命令为: >> t=[0:0.1:40]; >>num=[1]; >>den=[1,0.3,1]; >>impulse(num,den,t); >>grid; >>title('Unit-impulse Response of G(s)=1/(s^2+0.3s+1)') 其响应结果如图所示。
xlabel('re'); ylabel('im');
grid on;
%画bode图
w=logspace(-1,6,1000);
figure(2); bode(numG1,denG1,w);hold on;xlabel('w(hudu)');ylabel('20lg(dec)');grid on; figure(3); bode(numG1,denG2,w);hold on;xlabel('w(hudu)');ylabel('20lg(dec)');grid on; figure(4); bode(numG1,denG3,w);hold on;xlabel('w(hudu)');ylabel('20lg(dec)');grid on;
响应曲线如图所示
单位阶跃响应
实验内容
编写系统的MATLAB仿真程序, 输出系统仿真曲线及计算结果
参考程序
t=[0:0.001:30]; nG=[1]; dta=0.002; %仿真时间区段 %设置传递函数的分子 %生成传递函数模型
zeta=0.9;dG1=[1 1.8 1];G1=tf(nG,dG1); zeta=0.2;dG2=[1 0.4 1];G2=tf(nG,dG2); zeta=0.7;dG3=[1 1.4 1];G3=tf(nG,dG3); [y1a,T]=impulse(G1,t); [y1,T]=step(G1,t);
相关文档
最新文档