第6讲 Simulink子模块封装及S函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
参考:Matlab\Getting Started\Programming \Other data structures
Cell Array单元数组
例:
A(1,1) = {[1:4;3,5 7 8]}; A(1,2) = {'lesson 2'}; A{2,1} = ones(2,3); A{2,2} = logspace(1,3,3); celldisp(A)
{}:数组的内容 ():数组元素
五、子模块及模块封装技术
对于很大的Simulink模型,通过 自定义功能模块可以简化图形,减少 功能模块的个数,有利于模型的分层 构建。
subsystem
<
>
主菜单
退出
5.1 子系统的创建
1. 通过子系统模块Subsystem建立 2. 通过压缩已有模块建立
–在模型窗口中建立所定义功能模块的子 模块。 –用鼠标将这些需要组合的功能模块框住, 然后选择Edit菜单下的Create Subsystem 即可。
Simulink动态系统仿真2
完成下列练习并回顾上次课内容
1. 已知某二阶系统的开环传递函数为:
25 G(s)= 2 s s 25
用Simulink搭建该对象的开环单位阶跃响应 模型.
完成下列练习并回顾上次课内容
2.
25 G(s)= 2 s s 25
对该对象施加PID控制作用(要求利用Gain, Integer,Derivative模块自己搭建PID控制 器),用Simulink构建该系统的单位负反馈 模型,调整PID参数,并观察结果.
Βιβλιοθήκη Baidu
几个常用的输入输出模块的使用
• • • • To Workspace: 参见PID_2 To File:参见PID_3 From File:参见ex_4 From Workspace:参见ex_5
Structure Array结构数组(P25)
student = struct('name','Tom','score',[80 86 97]) student(2).name='Jack'; student(2).score=[60 70 100] student(3)=struct('name','Mary','score',[59 81 91])
< > 主菜单 退出
5.2 模块的封装
选中Subsystem功能模块,再打开 Edit菜单中的Mask Subsystem进入 mask的编辑窗口
5.2 模块的封装
• • • • Icon:设定功能模块的外观。 Parameters:设定输入数据窗口 Initialization:设定输入数据的初始值 Documentation:设计模块的文字说明
For Example: sltank
六、S函数的设计
6.1 s函数的功能
对模块库进行扩展
自定义功能模块:通过基本模块进行扩展
S函数:通过语言文件的编写进行扩展
6.2
s函数的特点
• s-function可以用m文件编写,也可以用c 或fortune等语言文件编写。 • s函数的编写方法:
–按照s函数的格式编写:sfuntmpl(t,x,u,flag)
–这样的构造只能用于基于Simulink的仿真, 并不能强其转换成独立于Matlab的程序。
6.1 建立m文件s-function
• • • • • [sys,x0,str,ts]=fname(t,x,u,flag,p1,p2,...) t: the current time flag: 标志位 x: the current state vector u: the current input vector limintm.m sfuntmpl.m
练习1:
• 试编写一个实现y=kx+b功能的子 模块。
– In:x – Out:y – 参数:k, b
练习2:
• 试编写一个实现y=k1x1+k2x2功能 的子模块。
– In1:x1 – In2:x2 – Out:y – 参数:k1, k2
5.3 封装模块的查看
• Look Under Mask
Cell Array单元数组
例:
A(1,1) = {[1:4;3,5 7 8]}; A(1,2) = {'lesson 2'}; A{2,1} = ones(2,3); A{2,2} = logspace(1,3,3); celldisp(A)
{}:数组的内容 ():数组元素
五、子模块及模块封装技术
对于很大的Simulink模型,通过 自定义功能模块可以简化图形,减少 功能模块的个数,有利于模型的分层 构建。
subsystem
<
>
主菜单
退出
5.1 子系统的创建
1. 通过子系统模块Subsystem建立 2. 通过压缩已有模块建立
–在模型窗口中建立所定义功能模块的子 模块。 –用鼠标将这些需要组合的功能模块框住, 然后选择Edit菜单下的Create Subsystem 即可。
Simulink动态系统仿真2
完成下列练习并回顾上次课内容
1. 已知某二阶系统的开环传递函数为:
25 G(s)= 2 s s 25
用Simulink搭建该对象的开环单位阶跃响应 模型.
完成下列练习并回顾上次课内容
2.
25 G(s)= 2 s s 25
对该对象施加PID控制作用(要求利用Gain, Integer,Derivative模块自己搭建PID控制 器),用Simulink构建该系统的单位负反馈 模型,调整PID参数,并观察结果.
Βιβλιοθήκη Baidu
几个常用的输入输出模块的使用
• • • • To Workspace: 参见PID_2 To File:参见PID_3 From File:参见ex_4 From Workspace:参见ex_5
Structure Array结构数组(P25)
student = struct('name','Tom','score',[80 86 97]) student(2).name='Jack'; student(2).score=[60 70 100] student(3)=struct('name','Mary','score',[59 81 91])
< > 主菜单 退出
5.2 模块的封装
选中Subsystem功能模块,再打开 Edit菜单中的Mask Subsystem进入 mask的编辑窗口
5.2 模块的封装
• • • • Icon:设定功能模块的外观。 Parameters:设定输入数据窗口 Initialization:设定输入数据的初始值 Documentation:设计模块的文字说明
For Example: sltank
六、S函数的设计
6.1 s函数的功能
对模块库进行扩展
自定义功能模块:通过基本模块进行扩展
S函数:通过语言文件的编写进行扩展
6.2
s函数的特点
• s-function可以用m文件编写,也可以用c 或fortune等语言文件编写。 • s函数的编写方法:
–按照s函数的格式编写:sfuntmpl(t,x,u,flag)
–这样的构造只能用于基于Simulink的仿真, 并不能强其转换成独立于Matlab的程序。
6.1 建立m文件s-function
• • • • • [sys,x0,str,ts]=fname(t,x,u,flag,p1,p2,...) t: the current time flag: 标志位 x: the current state vector u: the current input vector limintm.m sfuntmpl.m
练习1:
• 试编写一个实现y=kx+b功能的子 模块。
– In:x – Out:y – 参数:k, b
练习2:
• 试编写一个实现y=k1x1+k2x2功能 的子模块。
– In1:x1 – In2:x2 – Out:y – 参数:k1, k2
5.3 封装模块的查看
• Look Under Mask