matlab控制系统仿真绘图

合集下载

matlab-simlink仿真波形画图技巧

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编程实现动态画图功能

自动化专业综合设计报告设计题目:利用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控制系统仿真

应用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数值计算绘图模拟仿真以及使用总结

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仿真实例

模糊控制的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图

自动控制原理基础-项目4-MATLAB绘制系统的Bode图和Nyquist图
M AT L A B 绘 制 系 统 的 B o d e 图 和 N y q u i s t 图
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绘图总结

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控制系统仿真实验报告

基于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) 得到的实验结果如下图所示:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
冲响应,绘制时间响应曲线;也可以使用状态空间 模型impluse(A,B,C,D)。
第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,任意控
相关文档
最新文档