matlab控制系统仿真绘图
matlab-simlink仿真波形画图技巧
相信很多同学,特别是硕士和博士同学在写期刊论文或学位论文时需要使用matlab/simulink仿真,而且需要将波形导出来写入论文。
本文将介绍一种导出波形的方法,不一定是最快捷的,但是一定能够达到清晰的效果。
1.建立仿真模型:建立好仿真模型后,放置“示波器(scope)”(你想看的波形),双击“示波器”,看到类似下图对话框,上方有工具栏,第一个是“打印”,第二个是“参数”,单击参数按钮,弹出下图中间“参数”对话框,“参数”对话框的第二个选项卡下去掉“限制至结束的数据点数”前的复选框,勾选“保存到工作空间(Save data to workspace)”,并对要保存的数据命名(图中为“ULoad”)数据的格式(format)下拉列表就选择默认的(Structure with time),就是含有时间的结构体。
有些老师在授课的时候说选择Array(即只有数据的数组),想想matlab也是大公司,默认肯定是有道理的。
2.仿真:本文不讲。
3.查看:仿真完成后,会在工作空间(workspace)出现下图所示结构体变量ULoad,双击该结构体变量,会出现右侧Variable Editor窗口,可以清楚地看到ULoad内部有些什么变量,可以继续双击其中的元素,可以查看所有内容。
该步骤可省略,只是查看功能。
4.画图:这是关键的一步,请用simplot函数,而不是plot函数,而simplot函数对应的变量形式就是“Structure with time”,也就是说matlab公司希望用户直接用这个函数。
例如:simplot(ULoad);出现下图所示与示波器一模一样的图形。
单击工具栏“属性”按钮,如图中红色圆圈中所示。
5.属性编辑:这一步也很重要,单击属性按钮后,如下图所示属性面板好像啥也没有,不捉急,你想修改什么就单击什么,比如背景肯定不希望是黑色的吧,单击背景,或者坐标轴(因为背景和坐标是属于坐标轴的),如下图所示左下方红色框内改变背景填充色和网各色,也可以去掉网格,左上方为添加标题,中间为xy坐标范围和标签,后面都有个Ticks按钮,还有more properties按钮,点开看看呗。
利用MATLAB编程实现动态画图功能
自动化专业综合设计报告设计题目:利用MATLAB编程实现动态画图功能所在实验室:自动化系统仿真实验室指导教师:学生姓名班级计082-2 班学号200825502210撰写时间:2012-3-1 成绩评定:一.设计目的a)进一步熟悉Matlab的界面及基本操作;b)了解并掌握Matlab中一些函数的作用与使用;c)学会如何利用Matlab实现绘图功能,并可使坐标系动态设置。
二.设计要求外部输入数据动态设置坐标系,然后绘制图形,并举例演示。
三.设计内容Matlab用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
我设计的题目是利用matlab的GUI编程实现动态的画图功能。
GUI运行时主界面如下:在文本输入框中分别输入x、y、z的值,其中y的值可以是包含x的表达式,z的值可以是包含x和y的表达式。
当y和z的值均为0时,绘制x的曲线;当z的值为0时,绘制二维图形;当z的值不为0时,可以绘制三维图形和三维曲面图。
设计步骤如下:1:打开matlab软件2:建立一个GUI文件,保存到work中3:添加控件主界面,包含的控件有:EditText,StaticText,Axes,PushButton。
其中EditText用于xyz值的输入,StaticText用于显示提示,Axes用于显示绘制的图形,PushButton作为绘图按钮。
4:编写程序程序的编写主要分为两个部分,一个是数据的采集,一个是绘图。
数据采集部分用到的函数主要是str2num、eval函数,具体程序如下: X值输入:function editX_Callback(hObject, eventdata, handles)clchandles.x=str2num(get(hObject,'string'))handles.xhandles=gcboguidata(hObject, handles);Y值输入:function edit2_Callback(hObject, eventdata, handles)clcx=handles.x;handles.y=eval(get(hObject,'string'))handles.yhandles=gcboguidata(hObject, handles);Z值输入:function edit3_Callback(hObject, eventdata, handles)clcx=handles.x;y=handles.y;handles.z=eval(get(hObject,'string'));if handles.z==0set(handles.pushbutton1,'Visible','on');set(handles.pushbutton4,'Visible','off');set(handles.pushbutton5,'Visible','off');elseset(handles.pushbutton1,'Visible','off');set(handles.pushbutton4,'Visible','on');set(handles.pushbutton5,'Visible','on');endhandles.zhandles=gcboguidata(hObject, handles);handles.zhandles=gcboguidata(hObject, handles);绘图部分用到的函数主要有axis(),plot(),plot3(),具体程序如下:绘制二维图形:clcx=handles.x;y=handles.y;handles.x=str2num(get(handles.xhandles,'string'))handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;if y==0q=plot(handles.x)elsev=[xmin xmax ymin ymax]; axis(v);q=plot(handles.x,handles.y);endxlabel('X Öá');ylabel('YÖá');绘制三维图形:function pushbutton4_Callback(hObject, eventdata, handles) clcx=handles.x;y=handles.y;handles.y=eval(get(handles.yhandles,'string'))handles.z=eval(get(handles.zhandles,'string'));xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);q=plot3(handles.x,handles.y,handles.z);绘制三维曲面图:function pushbutton5_Callback(hObject, eventdata, handles) clcx=handles.xy=handles.yhandles.x=eval(get(handles.editX,'string'));handles.y=eval(get(handles.yhandles,'string'))xmin=min(handles.x)-min(handles.x)/10;xmax=max(handles.x)+min(handles.x)/10;ymin=min(handles.y)-min(handles.y)/10;ymax=max(handles.y)+min(handles.y)/10;zmin=min(handles.z)-min(handles.z)/10;zmax=max(handles.z)+min(handles.z)/10;v=[xmin xmax ymin ymax zmin zmax];axis(v);x1=ones(size(handles.y))*handles.x;y1=handles.y*ones(size(handles.x));r=sqrt(x1.^2+ y1.^2)+eps;z=sin(r)./rq=mesh(z);四.设计实验结果及分析当x=-10:0.01:100,y=sin(x),z=0时,得到的图形如下:当x=-10:0.01:10,y=sin(x),z=sin(x)+cos(y)时,得到的图形如下(三维图形):当x=-10:0.1:10,y=x’,z=1时,得到的图形如下(三维曲面图):五.设计感受我之前对于matlab编程的认识只是局限于M文件编程以及命令窗口编程。
应用MATLAB控制系统仿真
01
根据系统性能要求,设计比例、积分、微分控制器参数,优化
系统性能。
状态反馈控制器设计
02
通过状态反馈控制器设计,实现系统的最优控制。
鲁棒控制器设计
03
针对不确定性系统,设计鲁棒控制器,提高系统对参数变化的
适应性。
04
控制系统仿真的动态行为,通过建立和求解微 分方程来模拟系统的动态响应。
性能等。
05
Matlab控制系统仿真实 例
一阶系统仿真
总结词:简单模拟
详细描述:一阶系统是最简 单的控制系统,其动态行为 可以用一个一阶微分方程描 述。在Matlab中,可以使用 `tf`函数创建一个一阶传递函 数模型,然后使用`step`函 数进行仿真。
总结词:性能分析
详细描述:通过仿真,可以 观察一阶系统的响应曲线, 包括超调和调节时间等性能 指标。使用Matlab的绘图功 能,可以直观地展示系统的 动态行为。
THANKS FOR WATCHING
感谢您的观看
适用于模拟数字控制系统、采样控制系统等。
实时仿真
01
在实际硬件上实时模拟控制系统的动态行为,通过将
控制算法嵌入到实际控制系统中进行实时仿真。
02
使用Matlab中的`real-time workshop`等工具箱进
行建模和仿真,可以方便地实现实时仿真。
03
适用于模拟实际控制系统、验证控制算法的正确性和
实时仿真
Matlab支持实时仿真,可以在实 际硬件上运行控制算法,进行系 统测试。
02
控制系统数学模型
线性时不变系统
线性时不变系统(LTI)是指系统的输出与输入之间的关系 可以用线性常数来描述的系统。在控制系统中,LTI系统是 最常见的系统类型之一。
MATLAB数值计算绘图模拟仿真以及使用总结
1-11-21-31-4 Work22-12-1-〔1〕2-22-32-3-(1)2-42-4-(1)2-52-6和2-7 Work33-13-1-〔1〕Work 44-14-24-2-〔2〕Work55-1-〔1〕5-1-25-1-〔3〕5-2简述MATLAB命令窗的主要作用.〔1〕命令窗口(mand Window)位于MATLAB 操作桌面的右方,用于输入命令并显示除图形以外的所有执行结果,是MATLAB 的主要交互窗口。
〔2〕Matlab既可以运行命令也可以执行程序,在命令窗口中可以运行单独的命令也可以调用程序,相当方便,而编辑调试窗口和图像窗口都是程序运行结果展示窗口,可以很直观的对程序运行过程中出现的矩阵或者是变量等等进展监视。
〔3〕在MATLAB 命令窗口中可以看到有一个“>>〞,该符号为命令提示符,表示MATLAB 正在处于准备状态。
在命令提示符后输入命令并按回车键后,MATLAB 就会解释执行所输入的命令,并在命令后面给出计算结果。
5-3简述MATLAB绘制二维图形的一般步骤MATLAB绘制图形一般采取以下7个步骤:(1)准备数据(2)设置当前绘图区(3)绘制图形(4)设置图形中曲线和标记点格式(5)设置坐标轴和网格线(6)标注图形(7)保存和导出图形5-4启动Simulink的方式有几种.1.启动Simulink启动Simulink通常有三种方式:1)直接从Matlab指令窗口选取菜单File|New|Modal命令,Matlab将会翻开Simulink 库浏览器和名为untitled的模型窗口。
2)在Matlab命令窗口中键人Simulink命令,Matlab将会翻开Simulink库浏览器。
3)点击Matlab命令窗口工具条的图标,启动Simulink库浏览器。
由启动Simulink的三种方式,要新建一个模型文件,至少可以采用两种方式:1)直接从Matlab指令窗口选取菜单File|New|Modal命令。
模糊控制的Matlab仿真实例
其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿
真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系
统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿
为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊度示 波器
冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF…AND…THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果
模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。
这样的结果与实际情况还是有些不符。通常顾客都是给15%的 小费,只有服务特别好或特别不好的时候才有改变,也就是说, 希望在图形中间部分的响应平坦些,而在两端(服务好或坏) 有凸起或凹陷。这时服务与小费是分段线性的关系。例如,用 下面 MATLAB 语句绘出的下图的情况。
自动控制原理基础-项目4-MATLAB绘制系统的Bode图和Nyquist图
MATLAB draws the Bode diagram and Nyquist diagram of the system
MATLAB R2020a基本操作
1. 鼠标双击MATLAB R2020a 图标,打开MATLAB软件。
2. 获得系统默认频率范围的Nyquist图
案例1
3. 在MATLAB软件命令框中输入如下命令
4. 获得系统自定义频率范围的Nyquist图
说明:除了在MATLAB软件命令框中直接输入命 令外,还可以利用脚本编辑器编写M文件,通过 运行M文件来绘图。
2. 等待MATLAB启动完毕。
MATLAB 绘制系统Bode图
案例1
1. 在MATLAB软件命令框中输入如下命令
2. 获得系统默认频率范围的Bode图
案例1
3. 在MATLAB软件命令框中输入如下命令
4. 获得系统自定义频率范围的Bode图
MATLAB 绘制系统Nyquist图
案例1ቤተ መጻሕፍቲ ባይዱ
1. 在MATLAB软件命令框中输入如下命令
MATLAB的SIMULINK仿真scope绘图总结
Simulink仿真绘图总结:建议使用方法4,方法1,2不宜使用。
1.运行仿真模型,用Scope观察结果,用ALT+PrintScreen抓取图形,Ctrl+V粘贴到Word。
2.使用Scope打印功能,在Word中插入图形来自文件。
3.在Scope中参数设置如下:
在MATLAB命令窗口输入:plot(x(:,1),x(:,2:4));%%%%此处有三个输出。
(此处按原文输入,会报错“??? Index exceeds matrix dimensions.”,后改为plot(x(:,2)),成功!——hw注)在figure/Edit菜单下选择Copy Options…,在打开得对话框中设置如下:
然后在figure/Edit菜单下选择Copy Figure,Ctrl+V粘贴到Word。
这时还可再用绘图命令修改完善,如下:
4.用out模块替代Scope模块,仿真结束后用绘图命令:plot(tout,yout); 在figure/Edit菜单下选择Copy Figure,Ctrl+V粘贴到Word。
5.使用plot(tout,yout); saveas(gcf,'myfigure','emf');在Word中插入图片来自文件myfigure.emf。
基于MATLAB控制系统仿真实验报告
tf 4
y0
0 1
6、求出 G1(s)
2 (s2 2s 1) 与 G2 (s)
1 (2s3
3s2
1)
的单位阶跃响应,并分别
求出状态空间模型。
解:(1) G1(s) 2 (s2 2s 1) 的状态空间模型求解如下:
function shiyan2 b1=[2];
D(z)
0.62(1 0.136z 1)(1 0.183z (1 0.045z 1)(1 0.53z 1)
1 )
分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输
入是的输出响应。
解:(1)首先将 W1(s)转换为 W1(z),采样周期 T=0.2s,程序清单如下: function shiyan42 num=[10];den=[0.005 0.15 1 0]; ts=0.2;[nc,dc]=c2dm(num,den,ts)
INTRO(注意:intro 为一个用 MATLAB 语言编写的幻灯片程序,主要演示
常用的 MATLAB 语句运行结果。)
然后,根据现实出来的幻灯片右面按钮进行操作,可按 START——NEXT—
—NEXT 按钮一步步运行,观察。
3、自编程序并完成上机编辑,调试,运行,存盘:
(1)用 MATLAB 命令完成矩阵的各种运算,例如:
5、利用 ode23 或 ode45 求解线性时不变系统微分方程 y(t) Ay(t) ,并绘制出 y(t)
曲线,式中
A
0.5
1
1 0.5
t t0 t 如下: function xdot=fun21(t,x) A=[-0.5 1;-1 -0.5]; xdot=A*x; function fzsy22 t0=0;tf=4;tol=1e-6; x0=[0;1];trace=1; [t,x]=ode23('fun21',t0,tf,x0,tol,trace); plot(t,x) 得到的实验结果如下图所示:
控制系统Matlab仿真 (传递函数)
控制系统仿真[教学目的]掌握数字仿真基本原理控制系统的数学模型建立掌握控制系统分析[教学内容]一、控制系统的数学模型sys=tf(num,den) %多项式模型,num为分子多项式的系数向量,den为分母多项式的系%数向量,函数tf()创建一个TF模型对象。
sys=zpk(z,p,k) %z为系统的零点向量,p为系统的极点向量,k为增益值,函数zpk()创建一个ZPK模型对象。
(一)控制系统的参数模型1、TF模型传递函数num=[b m b m-1 b m-2…b1 b0]den=[a m a m-1 a m-2…a1 a0]sys=tf(num,den)【例1】系统的传递函数为。
>>num=[0 1 12 44 48];>>den=[1 16 86 176 105];>>sys=tf(num,den);>>sysTransfer function:s^3 + 12 s^2 + 44 s + 48-------------------------------------s^4 + 16 s^3 + 86 s^2 + 176 s + 105>>get(sys)>>set(sys)>>set(sys,'num',[2 1 2])>> sysTransfer function:2 s^2 + s + 2-------------------------------------s^4 + 16 s^3 + 86 s^2 + 176 s + 105【例2】系统的传递函数为。
>>num=conv([20],[1 1]);>>numnum =20 20>>den=conv([1 0 0],conv([1 2],[1 6 10]));>>sys=tf(num,den)Transfer function:20 s + 20-------------------------------s^5 + 8 s^4 + 22 s^3 + 20 s^2【例3】系统的开环传递函数为,写出单位负反馈时闭环传递函数的TF模型。
控制系统仿真_薛定宇第二章_MATLAB语言程序设计基础
控制系统仿真与CAD 国家级精品课程
2014-12-31
24/70 24
2.4.4 匿名函数与inline函数
不用编写*.m,定义函数的方法
可以动态地定义函数,在科学运算中有用 二者功能重复,后者远差于前者,不再使用
匿名函数: 举例
控制系统仿真与CAD 国家级精品课程
2014-12-31
控制系统仿真与CAD 国家级精品课程
2014-12-31
3/70 3
2.1.1 常量与变量
常量(保留字符串)
eps: 机器的浮点运算误差限,默认值 i和j:虚数单位,-1的平方根,i=sqrt(-1) Inf: 无穷大量,-Inf为负无穷大 NaN:不定式(Not a Number) pi:圆周率p的双精度浮点表示
25/70 25
2.5 二维图形绘制
可以绘制出各种二维曲线 可以由数据绘图,也可以由格式绘图 本节主要内容
基本二维图形绘制语句 带有其他选项的绘图函数 二维曲线的标注方法 在MATLAB图形上添加文字标注 特殊图形绘制函数及举例 隐函数的曲线绘制
控制系统仿真与CAD 国家级精品课程
符号型数据结构
syms 命令申明符号变量
控制系统仿真与CAD 国家级精品课程
2014-12-31
5/70 5
vpa(A) 显示符号变量
例2-1 显示e的前300位 其他数据结构
int8() 、int16() 、int32() 、uint16() 和 uint32() 字符串型数据:MATLAB字符串是用单引号括起来的 多维数组:三维数组是一般矩阵的直接拓展。 单元数组:多变量系统的频域响应数据存储 类与对象:传递函数对象、状态方程对象
matlab 控制系统仿真
摘要MATLAB语言是一种十分有效的工具,能容易地解决在系统仿真及控制系统计算机辅助设计领域的教学与研究中遇到的问题,它可以将使用者从繁琐的底层编程中解放出来,把有限的宝贵时间更多地花在解决科学问题上。
MATLAB GUI 是MATLAB的人机交互界面。
由于GUI本身提供了windows基本控件的支持,并且具有良好的事件驱动机制,同时提供了MATLAB数学库的接口,所以GUI 对于控制系统仿真的平台设计显得十分合适。
GUI对于每个用户窗口生成.fig和.m 文件。
前者负责界面的设计信息,后者负责后台代码的设计。
本文所做的研究主要是基于MATLAB GUI平台,结合控制系统基础理论和MATLAB控制系统工具箱,实现了用于控制系统计算机辅助分析与设计的软件。
本软件主要功能:实现传递函数模型输入、状态方程模型输入、模型装换、控制系统稳定性分析、系统可观性可控性判断,绘制系统奈奎斯特图、波特图、根轨迹图以及零极点分布图。
在继续完善的基础上能够用于本科自动控制原理教程的教学实验和一般的科学研究。
关键词:控制系统;MATLAB GUI;计算机辅助设计AbstractMATLAB language is a very effective tool,and can be easily resolved in the system simulation and control system of teaching in the field of computer-aided design and research problems,it could be the bottom of the user from tedious programming liberate the limited spend more valuable time to solve scientific problems.The MATLAB GUI is the interactive interface.As the GUI itself provides the basic control windows support,and has a good mechanism for event-driven,while providing the MATLAB Math Library interface,the GUI for control system simulation platform for the design of it is suitable. GUI window generated for each user. Fig and.M file. The former is responsible for the design of the interface information,which is responsible for the design of the background code.Research done in this article is mainly based on MATLAB GUI platform,the basis of combination of control system theory and MATLAB Control System Toolbox,the realization of control systems for computer-aided analysis and design software. The main functions of the software: the realization of transfer function model input,the state equation model input,the model fitted for the control system stability analysis,system observability controllability judgments、rendering the system Nyquist diagram、Bode plots、root locus and Pole-zero distribution. While continuing to improve based on the principle of automatic control can be used for undergraduate teaching course experiments and scientific research in general.Key words:Control System;MATLAB GUI; Computer-assistant design目录第1章概述 (1)1.1 论文选题背景和意义 (1)1.2 计算机辅助分析与设计在控制系统仿真中的发展现状 (1)1.3 本文主要内容 (3)第2章控制系统与MATLAB语言 (4)2.1 控制系统理论基础 (4)2.2 MATLAB语言与控制系统工具箱 (5)第3章 MATLAB GUI简介及应用 (9)3.1 MATLAB GUI (9)3.2 软件设计步骤 (10)第4章仿真系统测试与演示 (16)4.1 控制系统的模型输入 (16)4.2 控制系统的稳定性分析 (19)4.3 控制系统可控可观性分析 (20)4.4 控制系统频率响应 (23)4.5 控制系统时域响应 (27)4.6 控制系统根轨迹绘制 (28)结论 (31)参考文献 (32)致谢 (33)第1章概述1.1 论文选题背景和意义自动控制原理是自动控制专业和自动化专业的主要课程之一,是研究自动控制技术的基础理论课,是必修的专业基础课程。
控制系统仿真 实验二
实验二Matlab的数值运算及绘图1.试验目的(1)学习Matlab语言的基本矩阵运算;(2)学习Matlab语言的点运算;(3)学习多项式运算;(4)学习Matlab语言的各种二维绘图;2.试验内容在下面的试验操作中,认真记录每项操作的作用和目的;(1)基本矩阵运算1)创建数值矩阵。
键入a=[1 2 3;4 5 6;7 8 9];观察aa(3,2)a(:,1)键入t=0:10u=0:0.1:10观察矩阵变量t,u的值。
键入a(:,3)=[2;3;4]a观察矩阵a的变化。
键入b=[1 1+2i ;3+4i 3]观察复数矩阵。
2)创建特殊矩阵;键入a=ones(3,3)b=zeros(2,2)c=eye(4)观察特殊矩阵。
3)练习矩阵运算;键入a=[0 1 0;0 0 1;-6 -11 -6]; b=[1 2;3 4;5 6];c=[1 1 0;0 1 1];作矩阵乘运算v1=c*av2=a*bv3=c*a*bv4=b*cv5=c*b矩阵乘方运算a^2a^(1/2)矩阵加减运算a1=a+b*ca2=c*b-a(1:2,1:2)a3=a(1:2,2:3)+c*b矩阵右除(矩阵右除为四则运算的除运算,必须满足矩阵维数的要求)ar=c/a矩阵左除(矩阵左除等价于逆乘运算a\c=a-1*c,a-1为矩阵a的逆运算)al=a\b4)练习矩阵特征运算完成以下矩阵特征运算。
a'inv(a)rank(a)det(a)eig(a)(2)Matlab语言的点运算1)练习点乘与点除。
a1=[1 2;3 4]a2=0.2*a1观察[a1 a2][a1.*a2 a1./a2]2)由点运算完成标量函数运算与作图。
正、余弦函数的点运算。
t=0:2*pi/180:2*pi;y1=sin(t);y2=cos(t);y=y1.*y2;plot(t,[y' y1' y2']);(3)多项式运算1)建立多项式向量;ap=[1 3 3 1];b=[-1 -2 -3];bp=poly(b)2)练习多项式乘与求根。
MATLAB语言与控制系统仿真_参考题答案_第3章
3.5 MATLAB 绘图实训3.5.1 实训目的1.学会MATLAB 绘图的基本知识;2.掌握MATLAB 子图绘制、图形注释、图形编辑等基本方法;3.学会通过MATLAB 绘图解决一些实际问题;4.练习二维、三维绘图的多种绘图方式,了解图形的修饰方法;5.学会制作简单的MATLAB 动画。
图3-46 炮弹发射示意图3.5.2 实训内容1. 炮弹发射问题〔1炮弹发射的基础知识炮弹以角度α射出的行程是时间的函数,可以分解为水平距离)(t x 和垂直距离)(t y 。
)cos()(0αtv t x = %水平方向的行程; 205.0)sin()(gt tv t y -=α %垂直方向的行程;其中,0v 是初速度;g 是重力加速度,为9.82m/s ;t 是时间。
〔2炮弹发射程序举例:分析以下程序以及图3-47各个图形的实际意义。
a=pi/4; v0=300; g=9.8;t=0:0.01:50; x=t*v0*cos<a>;y=t*v0*sin<a>-0.5*g*t.^2;subplot<221>;plot<t,x>;grid;title<‘时间-水平位移曲线'>; subplot<222>;plot<t,y>;grid;title<‘时间-垂直位移曲线'>; subplot<223>;plot<x,y>;grid;title<‘水平位移-垂直位移曲线'>; subplot<224>;plot<y,x>;grid;title<‘垂直位移-水平位移曲线'>; 图3-4745角发射曲线 〔3编程解决炮弹发射问题①假设在水平地面上以垂直于水平面的角度向上发射炮弹,即发射角90=α,假设初速度分别为[310,290,270]m/s,试绘制时间-垂直位移曲线,编程求取最高射程;绘图要求:◆ 标题设为"炮弹垂直发射问题";◆ 在图上通过添加文本的方式表明初速度; ◆ 在x 轴标注"时间";◆ 在y 轴上标注"垂直距离"; ◆ 添加网格线;◆ 将310m/s 的曲线改为线粗为2的红色实线; ◆ 将290m/s 的曲线改为线粗为3的绿色点划线;◆ 将270m/s 的曲线改为线粗为2的蓝色长点划线;a=pi/2; v1=310; g=9.8;t=0:0.01:50; x1=t*v1*cos<a>;y1=t*v1*sin<a>-0.5*g*t.^2;plot<t,y1>;grid; title<'炮弹垂直发射问题'>; xlabel<'时间'>; ylabel<'垂直距离'>; hold on; v2=290;x2=t*v2*cos<a>;y2=t*v2*sin<a>-0.5*g*t.^2; plot<t,y2>; v3=270;x3=t*v3*cos<a>;y3=t*v3*sin<a>-0.5*g*t.^2; plot<t,y3>;zgsc=[max<y1>; max<y2>; max<y3>] %三次发射的最高射程 运行结果如下: zgsc =1.0e+003 * 4.9031 4.29083.7194最高射程分别为:4903.1米,4290.8米,3719.4米。
Matlab技术控制系统设计与仿真
Mat1ab技术控制系统设计与仿真一、引言在现代科技领域中,控制系统是一个至关重要的概念。
在各种领域,如机械工程、电子工程、化工工程等,控制系统的设计和仿真是实现目标的关键。
而Mat1ab作为一种功能强大的数值计算软件,被广泛应用于控制系统设计和仿真。
本文将探讨MaHab技术在控制系统设计和仿真中的应用。
二、MatIab基础知识在开始探讨MatIab技术在控制系统设计和仿真中的应用之前,有必要先了解一些Mat1ab的基础知识。
Mat1ab是由MathWorks公司开发的一款用于数值计算和科学绘图的软件。
它提供了丰富的函数库和工具箱,能够满足各种数学和工程领域的需求。
Mauab的核心功能包括数值计算、数据分析、图形绘制和算法开发等。
通过Mat1ab,用户可以进行复杂的矩阵运算、符号计算、非线性优化和差分方程求解等操作。
此外,MaUab还具有强大的数据分析功能,能够进行统计分析、数据可视化和模型拟合等操作。
三、控制系统设计控制系统设计是指通过控制器和执行器对系统进行控制的过程。
Mat1ab提供了一系列用于控制系统设计的工具箱,如Contro1SystemToo1box和Simu1ink等。
Contro1SystemToo1box是Mat1ab中用于控制系统分析和设计的工具箱。
它包含了各种用于系统建模、控制器设计和仿真的函数和工具。
例如,用户可以使用TransferFunction对象来描述系统的传输函数,并使用该对象进行稳定性分析和控制器设计。
此外,COntrOISyStemTOOIbOX还提供了多种控制器设计方法,如根轨迹法、频域法和状态空间法等,可以满足不同系统的设计需求。
SimUIink是MatIab中的一个仿真工具,用于建立动态系统的模型和仿真。
通过Simu1ink,用户可以使用图形界面建立系统的模型,并使用各种模块来描述系统的构成和行为。
SimU1ink提供了广泛的预定义模块,包括传感器、执行器、控制器等。
Matlab绘图-很详细,很全面
Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础.一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 ,2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令〉〉x=0:pi/100:2*pi;>〉y=2*exp(-0。
5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:〉〉t=-pi:pi/100:pi;〉> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>〉plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
MATLAB与控制系统的数字仿真及CAD课程设计
MATLAB与控制系统的数字仿真及CAD课程设计引言MATLAB是一种高性能计算软件,广泛应用于科学计算、信号处理、图像处理、数据分析、控制工程等领域。
控制系统是MATLAB中应用广泛的一类工程实践。
数字仿真是利用计算机对各类物理、化学、机械、电气、通信等各类系统进行模拟,以求得对系统性能的认识和分析的一种有效方法。
此文档旨在介绍MATLAB与控制系统的数字仿真及CAD课程设计。
MATLAB数字仿真MATLAB数字仿真是一种基于MATLAB软件平台的模拟方法,可以有效模拟和分析电子系统、传感器、组装等各类系统的工作性能。
MATLAB软件有强大的数值计算和可视化工具,使得控制系统的数字仿真具有高精度的仿真结果和优秀的用户体验。
仿真工具箱MATLAB提供了很多工具箱,包括信号处理工具箱、图像处理工具箱等,控制系统仿真工具箱也是其中之一。
控制系统仿真工具箱提供了包括连续时间系统、离散时间系统、多变量系统、无线系统在内的多种控制系统模型,并提供了丰富的仿真方法,例如最小二乘法、维纳滤波等。
用户可以通过编写脚本或使用图形化界面操作控制系统仿真工具箱,实现自己想要的仿真结果。
建立仿真模型在进行数字仿真前,需要先建立仿真模型。
对于控制系统而言,建立仿真模型需要明确系统的输入、输出、各组件之间的关系以及系统的初始条件等。
建立好仿真模型后,可以对系统的工作过程进行仿真和分析。
以温度控制系统为例,建立仿真模型。
该温度控制系统包含温度感应器作为输入,控制器和加热器作为输出。
建立好模型后,系统可以对不同的工作条件下进行仿真和分析,例如调节感应器灵敏度、控制器输出功率等。
控制系统CAD设计控制系统的CAD设计是指利用计算机辅助设计软件(Computer-ded Design,简称CAD)进行控制系统的三维模型设计、仿真、优化等工作。
控制系统CAD设计可以有效降低设计成本,提高设计效率和质量。
CAD软件常用的CAD软件有AutoCAD和SolidWorks。
MATLAB绘制自控图像及分析
常用频域分析函数
nyquist a,b,c,d,iu :可得到从系统第iu个输入到所有输出的极坐标图。
nyquist num,den :可绘制出以连续时间多项式传递函数表示的系统的极 坐标图。
nyquist a,b,c,d,iu,w 或nyquist num,den,w :可利用指定的角频率矢量绘制 出系统的极坐标图。
2、奈奎斯特图 幅相频率特性图
对于频率特性函数G jw ,给出w从负无穷到正无穷的一系列数值,分别求 出Im G jw 和Re G jw 。以Re G jw 为横坐标, Im G jw 为纵坐标绘制成 为极坐标频率特性图。
MATLAB提供了函数nyquist 来绘制系统的极坐标图,其用法如下:
nyquist a,b,c,d :绘制出系统的一组Nyquist曲线,每条曲线相应于连续状 态空间系统 a,b,c,d 的输入/输出组合对。其中频率范围由函数自动选取,而 且在响应快速变化的位置会自动采用更多取样点。
freqs 函数
freqs用于计算由矢量a和b构成的模拟滤波器H s =B s /A s 的幅频响
应。
H (s)B A ( (s s) ) b 1 (1 )s s n m a b (( 2 2 )) s s n m 1 1 ... . a .b .(( n m 1 ) 1 )
h=freqs b,a,w 用于ቤተ መጻሕፍቲ ባይዱ算模拟滤波器的幅频响应,其中实矢量w用于指 定频率值,返回值h为一个复数行向量,要得到幅值必须对它取绝对值, 即求模。
Matlab绘图教程大量实例
例7 在0≤x≤2区间内,绘制曲线y1=2e-0.5x和 y2=cos(4πx),并给图形添加图形标注。
程序如下:
x=0:pi/100:2*pi;
极坐标图
polar函数用来绘制极坐标图,其调用格式为: polar(theta,rho,选项) 其中theta为极坐标极角,rho为极坐标矢径,选项
旳内容与plot函数相同。 例12 绘制r=sin(t)cos(t)旳极坐标图,并标识数据点。 程序如下: t=0:pi/50:2*pi; r=sin(t).*cos(t); polar(t,r,'-*');
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)
例6 在同一坐标内,分别用不同线型和颜色绘制曲 线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标识两 曲线交叉点。
程序如下:
x=linspace(0,2*pi,1000);
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
(2) 当输入参数有矩阵形式时,配正确x,y按相应列 元素为横、纵坐标分别绘制曲线,曲线条数等于 矩阵旳列数。
例3 分析下列程序绘制旳曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin(x2); y3=2+sin(x3); x=[x1;x2;x3]'; y=[y1;y2;y3]'; plot(x,y,x1,y1-1)
MATLAB控制系统仿真实验报告
清华大学自动化工程学院实验报告课程:控制系统仿真专业自动化班级 122姓名学号指导教师:时间: 2015 年 10 月 19 日— 10 月 28 日目录实验一 MATLAB环境的熟悉与基本运算 (1)实验二 MATLAB语言的程序设计 (6)实验三 MATLAB的图形绘制 (9)实验四采用SIMULINK的系统仿真 (14)实验五控制系统的频域与时域分析 (17)实验六控制系统PID校正器设计法 (23)实验一 MATLAB环境的熟悉与基本运算一、实验时间及地点:实验时间:2015.10.19上午8:30—9:30实验地点:计算中心二、实验目的:1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算三、实验内容:1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2、启动MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。
3、保存,关闭对话框4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye(其它不会用的指令,依照此方法类推)5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
6、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:每一次M-file的修改后,都要存盘。
练习A:(1)help rand,然后随机生成一个2×6的数组,观察command window、command history和workspace等窗口的变化结果(2)学习使用clc、clear,了解其功能和作用(3)输入一个2维数值数组,体会标点符号的作用(空格和逗号的作用)。
(4)一维数组的创建和寻访,创建一个一维数组(1×8)X,查询X数组的第2个元素,查询X数组的第3个元素到第6个元素,查询X数组的第5个元素到最后一个元素,查询X数组的第3、2、1个元素,查询X数组中≤5元素,将X数组的第2个元素重新赋值为111,实例expm1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 MATLAB绘图
[y,x,t]=impulse(num,den) 返回变量格式,不绘图。 y=y(t)为输出响应,x=x(t)为状态变
量,t为时间向量。
第4章 MATLAB绘图
step(num,den) 给定系统多项式模型num,den,求系统
第4章 MATLAB绘图
图4-40-1
输入命令显示
第4章 MATLAB绘图
显示演示结果如图4-40-2所示。
图4-40-2 演示图形显示
第4章 MATLAB绘图
hold on step(num2,den) 输入命令窗口如图4-40-3所示。
图4-40-3 输入命令显示
第4章 MATLAB绘图
第4章 MATLAB绘图
脉冲响应曲线如图4-38-4所示。
图4-38-4 控制系统的脉冲响应
第4章 MATLAB绘图
由MATLAB的符号运算工具,得到上述 系统脉冲响应的解析解分别为(拉普拉斯 Laplace反变换的命令在新版本中略有改 动,此处的命令与书上的不同)
syms s f1=ilaplace(1/(s^2+2*s+10))
第4章 MATLAB绘图
显示演示结果如图4-39-1所示。
图4-39-1
运算结果显示
第4章 MATLAB绘图
f2=ilaplace(s/(s^2+2*s+10)) 显示演示结果如图4-39-2所示。
图4-39-2 运算结果显示
第4章 MATLAB绘图
f3=ilaplace(s^2/(s^2+2*s+10)) 显示演示结果如图4-39-3所示。
图4-41-1
R(s)
+ -
2(s+1) s2(s+2)
(b)Ⅱ型系统 二阶系统性能比较
C(s)
第4章 MATLAB绘图
输入命令窗口如图4-41-2所示。 num1=[2]; den1=[1 2 2]; t=0:0.1:10;u=t; lsim(num1,den1,u,t);hold on
第4章 MATLAB绘图
在进行控制系统仿真结果的绘图时,可以应用 前面所述的一般绘图方法。
另外,在控制工具箱中(toolbox\control), MATLAB专门准备了一系列控制系统的分析用的专用 函数,在执行这些函数的同时,既可以得到仿真结 果图形。
第4章 MATLAB绘图
4.2.1时间响应绘图 控制系统仿真用的几个时间响应函数如下: impulse(num,den) 给定系统多项式模型num,den,求系统的单位脉
第4章 MATLAB绘图
图4-41-2 输入命令显示
第4章 MATLAB绘图
显示演示结果如图4-41-3所示。
图4-41-3 演示图形显示
第4章 MATLAB绘图
plot(t,u,'r:') 输入命令窗口如图4-41-4所示。
图4-41-4 输入命令显示
第4章 MATLAB绘图
图4-39-3 运算结果显示
第4章 MATLAB绘图
【例4.36】系统无零点与系统有零点表达式
分别为
G1 (s)
s2
10 2s10 ,Fra bibliotek2 (s)
2s 10 s2 2s 10
试比较系统阶跃响应的差别。(在matlab中
演示)
第4章 MATLAB绘图
num1=[10];num2=[2 10]; den=[1 2 10]; step(num1,den) 输入命令窗口如图4-40-1所示。
【例4.35】控制系统的传递函数分别为
G1 (s)
s2
1 2s
10
,G2 (s)
s2
s 2s
10
,G3 (s)
s2
s2 2s
10
作系统的脉冲响应曲线。(在matlab中演示)
第4章 MATLAB绘图
num1=[0 0 1];num2=[0 1 0];num3=[1 0 0]; den=[1 2 10]; impulse(num1,den);hold on; 输入命令窗口如图4-38-1所示。
阶跃响应曲线如图4-40-4所示。
图4-40-4 控制系统的阶跃响应
第4章 MATLAB绘图
显然,系统有s=-5的零点时,其阶跃响应叠加 了微分项,响应时间减小,但是超调量稍有增加。
计算超调增加幅度:(在matlab中演示) [y1,x1]=step(num1,den); [y2,x2]=step(num2,den); [max(y1),max(y2)]
第4章 MATLAB绘图 显示演示结果如图4-40-5所示,则超调量增加了8%。
图4-40-5 运算结果显示
第4章 MATLAB绘图
【例4.37】系统结构图如图4-41-1所示,考 察Ⅰ型系统与Ⅱ型系统对速率信号的跟踪能 力。(在matlab中演示)
R(s)
+ -
2
C(s)
s(s+2)
(a)Ⅰ型系统
制输入向量u时间向量T,求系统的时间响 应,绘制时间响应曲线;也可以使用状态空 间模型lsim(A,B,C,D,u,T)。
第4章 MATLAB绘图
[y,x,t]=lsim(num,den) 返回变量格式,不绘图。 y=y(t)为输出响应,x=x(t)为状态变量
,t为时间向量。
第4章 MATLAB绘图
第4章 MATLAB绘图
图4-38-1 输入命令显示
第4章 MATLAB绘图
显示演示结果如图4-38-2所示。
图4-38-2 演示图形显示
第4章 MATLAB绘图
impulse(num2,den);impulse(num3,den); 输入命令窗口如图4-38-3所示。
图4-38-3 输入命令显示
的单位阶跃响应,绘制时间响应曲线;也可 以使用状它空间模型step(A,B,C,D)。
第4章 MATLAB绘图
[y,x,t]=step(num,den) 返回变量格式,不绘图。 y=y(t)为输出响应,x=x(t)为状态变
量,t为时间向量。
第4章 MATLAB绘图
lsim(num,den,u,T) 给定系统多项式模型num,den,任意控