实验六 Simulink子系统封装
matlab simulink子系统的封装
子系统的封装的意义子系统封装技术可以让一个子系统有自己的特点。
封装后的子系统可以有自己的图标、自己的参数和具有功能描述的控制对话框,甚至自己的help文档,同时参数的修改更为方便(不用深入子系统,只需在对话框中修改便可),内部结构也不易被修改。
封装技术的简要介绍封装是在Mask Editor中进行的。
要打开Mask Editor,需要两步:①选中要封装的子系统;②选择菜单Edit->Edit Mask或者右键菜单中的Edit Mask。
Mask Editor的样子如下:图一可见,Mask Editor中共有如下四个选项页:●Icon&Port,主要是对子系统的外观图标进行设置;●Parameters,主要对封装子系统的参数进行设置。
如果子系统中有一个或多个模块需要手动设置参数,那么在仿真之前需要进入到子系统里面去对这些模块分别进行参数设计,很麻烦。
而用Mask Editor中的Parameters设置参数,使这些参数能够将参数值传入到subsystem的模块中去。
这样就可以直接对subsystem进行参数设计,既明了又方便;●Initialization,提供了一个Matlab语言命令框,可以在其中写入一些程序,当子系统有被载入、改变参数或初始化等情况发生时,Simulink会自动执行这些程序。
所以可以将一些仿真前需要对subsystem做的设置,以程序的形式写入到编辑框内来实现;●Documentation,编辑子系统的描述和生成help文档。
注意:左下角的Unmask按钮可以取消对subsystem的封装。
详细阐述下面对这四个选项页进行详细阐述,由于Icon&Port和Documentation对subsystem的功能影响不是很大,故只做简要介绍,详细内容参考help文档。
Icon&port如图一所示,该选项页有三部分:Options、Icon Drawing Commands和Examples of drawing commands。
控制系统仿真实验六simulink
实验六:Simulin建模与仿真一、实验目的1、掌握Simulink建模与仿真的基本方法。
2、熟悉Simulink基本模块库及主要元件的使用方法。
二、实验学时:4学时三、实验原理:1、Simulink 仿真过程在已知系统数学模型或系统框图的情况下,利用Simulink进行建模仿真的基本步骤如下。
(1)启动Simulink,打开Simulink库浏览器。
(2)建立空白模型窗口。
(3)由控制系统数学模型或结构框图建立Simulink仿真模型。
(4)设置仿真参数,运行仿真。
(5)输出仿真结果。
2、Simulink建模与仿真基本方法根据给定的数学模型或控制系统框图,可建立Simulink仿真模型。
下面以图3-1所示的控制系统框图为例,说明Simulink建模与仿真的基本方法。
图中R 是单位阶跃输入信号,Y为系统输出响应。
建立图6-3所示系统框图的Simulink仿真模型的基本方法如下。
1.启动MATLAB/Simulink工具箱依次启动MATLAB软件、Simulink模块库浏览器后,如图6-1所示。
2.建立Simulink空白模型Simulink空白模型的建立可通过如下方法进行。
1、在MATLAB主窗口中选择【File】→【New】→【Model】命令。
2、在Simulink模块库浏览器窗口中选择【File】→【New】→【Model】命令。
3、单击Simulink模块库浏览器工具栏中的(New model)工具。
图6-1 闭环控制系统框图通过上述方法可以打开Simulink空白模型,如图6-2所示。
并可将其保存为后缀是mdl的文件(Simulink仿真模型的文件存储格式),例如Example_Model.mdl。
在保存Simulink模型文件的时候,为了实现向下兼容,MATLAB R2008/Simulink 7.1允许将模型保存为其他版本的Simulink模型。
图6-2 空白模型窗口3.根据系统框图选择模块构建Simulink仿真模型,首先需要知道所需模块所属的子模块库名称。
Simulink子系统技术
块库中的Subsystem模块建立子系统,首先构成系统的整体模型,然后编辑空的子
系统内的模块。注意,对于多输入与多输出子系统而言,需要使用Sources模块库
中的In1输入虚模块与Sinks模块库中的Out1输出虚模块来实现。
•
双击子系统图 标进行编辑
首先建立空的子系统, 然后对其进行编辑
图7.2 子系统建立:生成空子系统 并编辑
辑。
•
(3) 子系统的输入:使用Sources模块库中的Inport输入模块(即In1模块)作为
子系统的输入端口。
•
(4) 子系统的输出:使用Sinks模块库中的Outport输出模块(即Out1模块)作为
子系统的输出端口。
7.2 Simulink高级子系统技术
•
条件执行子系统的执行受到控制信号的控制,根据控制信号对条件子系统执行的
发子系统为一原子子系统。
•
在Simulink中有两种方法可以建立原子子系统:
•
(1) 建立一个空的原子子系统。
•
(2) 将已经建立好的子系统强制转换为原子子系统。
建立空原子 子系统并进
行编辑
强制转换已有 的子系统为原
子子系统
图7.11 原子子系统的建立方法
• 7.2.6 其它子系统介绍
•
在Simulink Block Library(Simulink模块库,版本4.1)中的Subsystems子系统模
人口动态变化的非线性离散模型生成包含所选模块组的子系统选择需要封装的子系统单击鼠标右键选择masksubsystem或是使用edit菜单项中的相应命令以封装子系统选择需要封装的子系统单击鼠标右键选择masksubsystem或使用edit菜单项中的相应命令以封装子系统图14子系统封装流程示意图32封装编辑器之图标编辑对话框当选择masksubsystem菜单命令进行子系统封装时将出现如图15所示的封装编辑器并显示图标编辑对话框
实验六 SIMULINK 仿真
实验六 SIMULINK 仿真
一、实验目的
学习使用SIMULINK 进行系统仿真的方法
二、实验内容:
1、Simulink 的基本操作
(1)运行Simulink
(2)常用的标准模块
(3)模块的操作
2、系统仿真及参数设置
(1)算法设置(Solver)
(2)工作空间设置(Workspace I/O)
3、已知系统结构图如下
图.含饱和非线性环节系统方框图
已知输入为信号电平从1~6,非线性环节的上下限为±1,取步长h=0.1,仿真时间为10秒,试绘制系统的响应曲线。
4
、PID 控制系统的结构如图所示,试设计串联补偿器,使系统速度稳态误差小于10%,相角裕量PM=45º,并对系统进行仿真。
图 典型PID 控制系统结构图
三、预习要求:
利用所学知识,熟悉实验内容中1到2的相应内容,编写实验内容中3、4 的相应程序,并写在预习报告上。
Simulink 第八章 子系统及其封装技术
m 3 3 k 3 ( x 2 x 3 ) 0 x 3 x 1 m3
m3
k 3 ( x 2 x 3 )
单个质量的运动方程:
n x
1 mn
k n ( x n 1 x n ) k n 1 ( x n 1 x n )
0
Left Disp Right Spring-mass1 Left Disp Right Spring-mass2 Left
0.4
Displacement
Scope
Gain
0.8
Gain1
操作步骤: (1)使用范围框将要压缩的子系统的部分选中,包括木块和信 号线;(注意:只能使用范围框,而不能使用 Shift逐个 选定) (2)在模块窗口选项中选择【Edit>Creat Subsystem】, Simulink 将会用一个子系统模块代替被选中的模块组; (3)进行模型美观调整。
作业:
封装第六章所建立的蹦极系统。要求:封装后的蹦极 子系统只有一个输出端口,封装后子系统的参数设置包括 蹦极者的体重、弹性绳索的弹性常数。通过仿真分析蹦极 系统在下述情况下是否安全,并绘制响应的响应曲线: (1)蹦极者体重 80 kg,弹性绳索的弹性常数为 30; (2)蹦极者体重 70 kg,弹性绳索的弹性常数为 20。
simulink封装模块端口名称
simulink封装模块端口名称Simulink是一款常用的工具,也是MATLAB的重要部分,它能够为设计和仿真系统提供效率和方便性。
在Simulink中,封装模块是非常常见的,而其中的端口名称也是非常重要的组成部分。
在本文中,我们将详细介绍如何在Simulink中封装模块端口名称。
第一步,打开Simulink软件,创建一个新的模型。
接着,右键单击画布,选择“Library Browser”选项,然后在搜索框中输入“subsystem”,找到“Subsystem”这个模块,将其拖动到画布中。
第二步,系统将自动给你生成一个新的子系统。
接下来,我们需要从系统中添加输入和输出端口。
右键单击子系统,选择“Add & Connect”选项,然后在弹出的菜单中选择“Port”选项,此时会在子系统中生成一个新的端口。
第三步,按照你的需求设定端口。
例如,如果你需要一个模拟信号输入端口,可以右键单击端口,然后选择“Block Parameters”选项,在新的窗口中,选择“Port”选项卡,就可以将端口的数据类型设定为模拟信号输入。
第四步,为端口添加名称。
右键单击端口,然后选择“Properties”选项,在弹出的菜单中选择“Port properties”选项卡,然后将端口的名称设定为你需要的名称。
第五步,添加更多的端口。
在Sub System中,添加到足够的输入和输出端口,按照刚刚的方法为每个端口添加名称。
第六步,将子系统保存为一个封装模块。
右键单击子系统,选择“Subsystem”选项,然后在新的窗口中,将名称、描述和图标等设定为你需要的名称,接着点击“OK”保存即可。
第七步,将封装模块添加到库中。
右键单击封装模块,选择“Save As”选项,然后在新的窗口中,选择“User-Defined Functions”或“Simulink”图标库,点击“Save”。
经过上述步骤,你已经成功封装了一个模块,并为其添加了名称。
simulink封装如何写介绍
simulink封装如何写介绍
Simulink封装可以通过以下步骤来写介绍:
1.确定封装的功能和用途:在介绍中首先需要明确封装的功能和
用途,包括模块的输入、输出以及实现的功能等。
2.描述封装的具体操作步骤:介绍中需要详细描述封装的操作步
骤,包括如何导入模块、如何设置参数、如何进行初始化等。
3.强调封装的优点和特点:介绍中需要强调封装的优点和特点,
包括使用方便、易于维护、可扩展性强等。
4.给出封装的实例和效果:在介绍中可以给出封装的实例和效
果,包括使用封装的模块实现的算法逻辑、性能指标等。
5.给出封装的参考文献和联系方式:在介绍中可以给出封装的参
考文献和联系方式,方便用户进行深入了解和使用。
需要注意的是,Simulink封装介绍需要简洁明了,让用户能够快速了解封装的功能和用途。
同时,需要注意表达清晰、准确,避免使用过于专业或难以理解的术语。
5-Simulink_子系统与模块封装
4 利用Ziegler-Nichols参数整定法对该系统设计PID控制器, 并绘制出图形.
UESTC
UESTC
Lirui@
UESTC
1 (3 ) y (0 ) = 1, y (0 ) = y (0 ) = , y (0 ) = 0.2 2
课程实践
The Computer Simulation of Control System
UESTC
课程实践
The Computer Simulation of Control SystemΒιβλιοθήκη 5--4UESTC
模块封装方法
The Computer Simulation of Control System
5--5
UESTC
模块封装方法
The Computer Simulation of Control System
UESTC
模块封装方法
The Computer Simulation of Control System
UESTC
模块封装方法
The Computer Simulation of Control System
5--3
UESTC
模块封装方法
The Computer Simulation of Control System
5--4
UESTC
模块封装方法
The Computer Simulation of Control System
5--7
UESTC
课程实践
The Computer Simulation of Control System
2 考虑简单的线性微分方程
y + 5 y + 6 y + 4 y + 2 y = e + e sin( 4t + ) 3
simulink 电路封装和参数定义
simulink 电路封装和参数定义Simulink是一种用于建模、仿真和分析多域动态系统的软件工具。
它提供了一个图形化界面,使用户能够轻松地创建复杂的电路模型,并通过参数定义来调整模型的行为。
本文将介绍Simulink电路封装和参数定义的相关概念和应用。
我们来了解一下Simulink电路封装的概念。
在Simulink中,电路封装是一种将多个模块组合在一起以实现特定功能的方法。
通过将多个模块封装成一个整体,用户可以更方便地重复使用和调整电路结构,提高建模的效率。
电路封装可以有效地简化复杂系统的建模过程,提高模型的可读性和可维护性。
在Simulink中,用户可以通过创建子系统来实现电路封装。
子系统是一种逻辑上独立的模块,它可以包含多个信号传输和处理的模块。
通过使用子系统,用户可以将多个模块组织成一个整体,并通过输入输出端口与其他模块进行通信。
这样一来,用户只需要关注子系统的功能实现,而不需要关心内部的细节。
除了电路封装,Simulink还提供了丰富的参数定义功能。
通过参数定义,用户可以在建模过程中动态地调整模型的行为。
参数可以是数字、向量、矩阵或其他数据类型,用户可以根据需要定义和修改参数的值。
参数定义在模型的建模和仿真过程中起到了非常关键的作用,可以用于调整模型的初始条件、模型参数和仿真时间等。
在Simulink中,用户可以通过多种方式定义参数。
最常见的方式是在模型的工作区中使用变量和常数块定义参数。
用户可以将参数的值直接输入到变量和常数块中,然后在模型中使用这些变量和常数。
这样一来,用户只需要修改变量和常数的值,而不需要修改模型中的每个使用到该参数的地方。
Simulink还提供了参数对象和参数结构体的功能,用于更灵活地管理和使用参数。
参数对象是一种将参数值和属性封装在一起的数据结构,用户可以通过参数对象来访问和修改参数的值和属性。
参数结构体是一种将多个参数组织在一起的数据结构,用户可以通过参数结构体来管理和传递多个参数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六Simulink子系统封装
The electronic circuit in the following figure consists of a voltage source, a resistor, and an inductor in the form of a tightly wound coil. An iron ball beneath the inductor experiences a gravitational force as well as an induced magnetic force (from the inductor) that opposes the gravitational force.
A differential equation for the force balance on the ball is given by
where M is the mass of the ball, h is the height (position) of the ball, g is the acceleration due to gravity, i is the current, and βis a constant related to the magnetic force experienced by the ball. This equation describes the height, h, of the ball due to the unbalanced forces acting upon it.
The current in the circuit also varies with time and is given by the following differential equation
where L is the inductance of the coil, V is the voltage in the circuit, and R is the resistance of the circuit.
The system of equations has three states
The system also has one input (V), and one output (h). It is a nonlinear system due to the term in the equation involving the square of i and the inverse of h.
Values of the parameters are given as: M=0.1 kg, g=9.81 m/s2, R=2 Ohm, L=0.02 H, β=0.001
1、在Simulink建立以上描述的系统的框图模型,并将其封装为子系统(模块),如
下图所示:
图1 框图模型
图2 封装后的模块及参数设置窗口
2、设计一个PID控制器,控制h保持在0.05。
在如下图所示:
图3 控制系统
图4 PID 控制器
以下值可供参考:
P = 537.2672
I = 1000
D = 60.4787
2.数据的输出
命令窗口输出函数主要有disp 函数,其调用格式为 disp(输出项)
其中输出项既可以为字符串,也可以为矩阵。
例4.2 求一元二次方程ax2 +bx+c=0的根。
a=input('a=?');
b=input('b=?');
c=input('c=?');
d=b*b - 4*a*c;
x=[(-b+sqrt(d))/(2*a), (-b-sqrt(d))/(2*a)];
disp( ['x1=', num2str(x(1)), ',x2=', num2str(x(2))] );
⎪⎩⎪⎨⎧≠+=+++=10x ,x x x 10x ,1x )1x cos(y 2
x=input('请输入x的值:');
if x==10
y=cos(x+1)+sqrt(x*x+1);
else
y=x*sqrt(x+sqrt(x));
end
Y
A=[1,2,3;4,5,6]; B=[7,8,9;10,11,12];
try
C=A*B;
catch
C=A.*B;
end
C
lasterr %显示出错原因。