预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共36页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验三MATLAB控制系统仿真MATLAB语言由于使用极其方便、且提供了丰富的矩阵处理功能,目前它已成为国际控制界最流行的仿真语言。 MATLAB不仅流行于控制界,在生物医学工程、语言处理、图像信号处理、雷达工程、信号分析、计算机技术等各行各业中都有极广泛的应用。 设计控制系统MATLAB已不仅是一般的编程工具,而是作为一种控制系统的设计平台出现的。二、MATLAB操作界面1.MATLAB的工作窗口 在默认状态下,MATLAB的工作窗口由命令窗口(CommandWindow)、历史命令(CommandHistory)窗口、工作空间(Workspace)浏览器窗口和当前工作目录(CurrentDirectory)窗口等组成。 在MATLAB命令窗口中的“>>”标志为MATLAB的命令提示符,MATLAB命令语句能即时执行,它不是输入完全部MATLAB命令语句经过编译、连接形成可执行文件后才开始执行,而是每输入完一条命令,MATLAB就立即对其处理,并得出中间结果,完成了MATLAB所有命令语句的输入,也就完成了它的执行,直接便可得到最终结果。从这一点来说,MATLAB清晰地体现了类似“演算纸”的功能。例如 >>a=5; >>b=6; >>c=a*b,MATLAB语句既可由分号结束,也可由逗号或换行号结束,但它们的含义是不同的。如果用分号“;”结束,则说明除了这一条命令外还有下一条命令等待输入,MATLAB这时将不立即显示运行的中间结果,而等待下一条命令的输入,如以上前两条命令;如果以逗号“,”或回车结束,则将把左边返回的内容全部显示出来,如以上后两条命令。 MATLAB中实现仿真,可采用两种方法: (1)用MATLAB语言编程来实现: 命令行方式; 可通过直接在命令窗口中输入命令来实现计算或作图功能。一般命令格式: [输出参数1,输出参数2,…]=命令名(输入参数1,输入参数2,…) m文件的形式; 在MATLAB菜单中选择:filenewM-file,可以在窗口中编辑,进行调试和运行。 (2)在Simulink环境下,用图形的方法来描述系统的动态结构。MATLAB的基本数据单元是不需要指定维数的复数矩阵,它提供了各种矩阵的运算与操作,在MATLAB环境下矩阵的操作同数的操作一样简单。(1)简单矩阵的输入 比较小的简单矩阵可以使用直接排列的形式输入,把矩阵的元素直接排列到方括号中,每行内的元素间用空格或逗号分开,行与行的内容用分号隔开。 在MATLAB下的输入方式为 >>A=[1,2,3;4,5,6;7,8,9] 或>>A=[123;456;789] 都将得相同的结果 (2)利用语句或函数产生矩阵 在MATLAB中,矩阵也可利用下例语句来产生 s1:s2:s3 其中,s1为起始值;s3为终止值;s2为步矩。使用这样的命令就可以产生一个由s1开始,以步距s2自增,并终止于s3的行向量,如 传递函数在MATLAB下可以方便的由其分子和分母多项式系数所构成的两个向量唯一确定出来。即 num=[b0b1…bm];den=[1a1a2…an] 例2-1若给定系统的传递函数为 解可以将其用下列MATLAB语句表示 >>num=[612610];den=[12311]; >>g=tf(num,den) 执行结果为 num/den=当传递函数的分子或分母由若干个多项式乘积表示时,它可由MATLAB提供的多项式乘法运算函数conv()来处理,此函数的调用格式为 c=conv(a,b) 其中a和b分别为由两个多项式系数构成的向量,而c为a和b多项式的乘积多项式系数向量。conv()函数的调用是允许多级嵌套的。例2-2若给定系统的传递函数为 解则可以将其用下列MATLAB语句表示 >>num=4*conv([12],[166]) >>den=conv([10],conv([11],[1325]))2.连续系统的单位阶跃响应 单位阶跃响应函数step()的调用格式为 [y,x,t]=step(num,den,t) 或y=step(num,den,t) 式中t为选定的仿真时间向量,一般可由t=0:step:end等步长地产生;函数返回值y为系统在各个仿真时刻的输出所组成的矩阵;而x为空矩阵。 如只想绘制出系统的阶跃响应曲线,则可以由如下的格式调用此函数 step(num,den,t) 或者:y=step(num,den,t) plot(t,y); 假设系统的开环传递函数为 求该系统在单位负反馈下的阶跃响应曲线.2.系统的伯德图(Bode图)有了这些数据就可以利用下面的MATLAB命令 >>subplot(2,1,1);semilogx(w,20*log10(mag)) >>subplot(2,1,2);semilogx(w,phase) 在