1、simulink matlab 仿真环境教程Simulink 是面向框图的仿真软件。从工作空间获取数据(From workspace)从工作空间获取数据模块的输入信号源为工作空间。【例 1.2】在工作空间计算变量 t 和 y,将其运算的结果作为系统的输入。t=0:0.1:10;y=sin(t);t=t;y=y; 然后将“From Workspace”模块的参数设置对话框打开,如图1.15(a)所示,在“Data”栏填写“t,y”,单击“OK”按钮完成。则在模型窗口中该模块就显示为图 1.15(b)。用示波器作为接收模块,可以查看输出波形为正弦波。“Data”的输入有几种,可以是矩阵、包含时间数
2、据的结构数组。“From Workspace”模块的接收模块必须有输入端口,“Data”矩阵的列数应等于输入端口的个数+1,第一列自动当成时间向量,后面几列依次对应各端口。t=0:0.1:2*pi;y=sin(t);y1=t;y;save Ex0702 y1 %保存在“Ex0702.mat”文件中(4) 从文件获取数据(From file)从文件获取数据模块是指从 mat 数据文件中获取数据为系统的输入。将【例 1.2】中的数据保存到.mat 文件:t=0:0.1:2*pi;y=sin(t);y1=t;y;save Ex0702 y1 %保存在 “Ex0702.mat”文件中 然后将“From
3、 File”模块的参数设置对话框打开,如图 1.16 所示,在“File name”栏填写图 7.13 模块的参数设置图 7.15 (a) 模块参数设置 (b) 从工作空间获取数据模块图 7.16 From File 参数设置“Ex0702.mat”,单击“OK”按钮完成。用示波器作为接收模块,可以查看输出波形。(5) 传递函数(Transfer function)传递函数模块是用来构成连续系统结构的模块,其模块参数对话框如图 1.17 所示。在上图中设置“Denominator”为“1 1.414 1”,则在模型窗口中显示为如图 1.18 所示。(6) 示波器(Scope)示波器模块是用来接
4、收输入信号并实时显示信号波形曲线,示波器窗口的工具栏可以调整显示的波形,显示正弦信号的示波器如图 1.19 所示。2. 模块属性设置每个模块的属性对话框的内容都相同,如图 1.22 所示。图 7.18 图 7.17 传递函数模块参数设置打开参数对话框纵坐标的自动刻度X-Y 坐标变焦X 坐标变焦图 7.19 示波器窗口把当前的坐标设置保存浮动示波器恢复保存过的坐标设置Y 坐标变焦(1) 说明(Description)对模块在模型中用法的注释。(2) 优先级(Priority)规定该模块在模型中相对于其它模块执行的优先顺序。(3) 标记(Tag)用户为模块添加的文本格式标记。(4) 调用函数(Op
5、en function)当用户双击该模块时调用的 MATLAB 函数。(5) 属性格式字符串(Attributes format string)指定在该模块的图标下显示模块的哪个参数和 格式。1.5 复杂系统的仿真与分析Simulink 的模型实际上是定义了仿真系统的微分或差分方程组,而仿真则是用数值解算法来求解方程。1.5.1 仿真的设置在模型窗口选择菜单“Simulation”“Simulation parameters”,则会打开参数设置对话框,如图 1.24 所示。图 7.22 模块的属性设置图 7.23 模块的属性格式字符串1. Solver 页的参数设置(1) 仿真的起始和结束时间
6、仿真的起始时间(Start time)仿真的结束时间(Stop time)(2) 仿真步长仿真的过程一般是求解微分方程组,“Solve options”的内容是针对解微分方程组的设置。(3) 仿真解法Type 的右边:设置仿真解法的具体算法类型。(4) 输出模式根据需要选择输出模式(Output options),可以达到不同的输出效果。2. Workspace I/O(工作空间输入输出)页的设置如图 1.25 所示,可以设置 Simulink 从工作空间输入数据、初始化状态模块,也可以把仿真的结果、状态模块数据保存到当前工作空间。(1) 从工作空间装载数据(Load from workspa
7、ce)(2) 保存数据到工作空间(Save to workspace) Time 栏勾选 Time 栏后,模型将把(时间)变量以在右边空白栏填写的变量名(默认名为 tout)存放于工作空间。 States 栏勾选 States 栏后,模型将把其状态变量在右边空白栏填写的变量名(默认名为 xout)存放于工作空间。 Output 栏图 7.24 Solver 参数设置图 7.25 Workspace I/O 参数设置如果模型窗口中使用输出模块“Out”,那么就必须勾选 Output 栏,并填写在工作空间中的输出数据变量名(默认名为 yout)。 Final state 栏Final state
8、栏的勾选,将向工作空间以在右边空白栏填写的名称(默认名为 xFinal),存放最终状态值。(3) 变量存放选项(Save options)Save options 必须与 Save to workspace 配合使用。1.5.2 连续系统仿真【例 1.3】建立二阶系统的仿真模型。方法一:输入信号源使用阶跃信号,系统使用开环传递函数 ,接受模块使用示波器来构成模型。s6.012(1) 在“Sources”模块库选择“Step”模块,在“Continuous”模块库选择“Transfer Fcn”模块,在“Math Operations”模块库选择“Sum”模块,在“Sinks”模块库选择“Sco
9、pe”。(2) 连接各模块,从信号线引出分支点,构成闭环系统。(3) 设置模块参数,打开“Sum”模块参数设置对话框,如图 1.26 所示。将“Icon shape”设置为“rectangular”,将“List of signs”设置为“|+-”,其中“|”表示上面的入口为空。“Transfer Fcn”模块的参数设置对话框中,将分母多项式“Denominator”设置为“1 0.6 0”。将“Step”模块的参数设置对话框中,将“Step time”修改为 0。(4) 添加信号线文本注释双击信号线,出现编辑框后,就输入文本。则模型如图 1.27 所示。(5) 仿真并分析单击工具栏的“Sta
10、rt simulation”按钮,开始仿真,在示波器上就显示出阶跃响应。在 Simulink 模型窗口,选择菜单“Simulation”“Simulation parameters”命令,在“Solver”页将“Stop time”设置为 15,然后单击“Start simulation”按钮,示波器显示的就到 15 秒结束。图 7.26 Sum 参数设置图 7.27 二阶系统模型打开示波器的 Y 坐标设置对话框,将 Y 坐标的“Y-min”改为 0,“Y-max”改为 2,将“Title”设置为“二阶系统时域响应”,则示波器如图 1.28 所示。方法二:(1) 系统使用积分模块(Integr
11、ator)和零极点模块(zero-pole)串联,反馈使用“Math Operations”模块库中的“Gain”模块构成反馈环的增益为-1。(2) 连接模块,由于“Gain”模块在反馈环中,因此需要使用“Flip Block”翻转该模块。(3) 设置模块参数,将“zero-pole”模块参数对话框中的“Zeros”栏改为“”,将“Poles”栏改为-0.6。将“Gain”模块的“Gain”参数改为-1。模型如图 1.29 所示。如果将示波器换成“Sinks”模块库中的“Out”模块 ;然后在仿真参数设置对话框的“Workspace I/O” 页(工作空间输入输出),将“Time”和“Outp
12、ut”栏勾选,并分别设置保存在工作空间的时间量和输出变量为“tout”和“yout”。仿真后在工作空间就可以使用这两个变量来绘制曲线,如图 1.30 所示:plot(tout,yout)图 7.28 示波器显示图 7.29 二阶系统模型1.5.3 离散系统仿真【例 1.4】控制部分为离散环节,被控对象为两个连续环节,其中一个有反馈环,反馈环引入了零阶保持器,输入为阶跃信号。创建模型并仿真:(1) 选择一个“Step”模块,选择两个“Transfer Fcn”模块,选择两个“Sum”模块,选择两个“Scope”模块,选择一个“Gain”模块,在“Discrete”模块库选择一个“Discrete
13、 Filter”和一个“Zero-Order Hold”模块。(2) 连接模块,将反馈环的“Gain”模块和“Zero-Order Hold”模块翻转。(3) 设置参数,“Discrete Filter”和“Zero-Order Hold”模块的“Sample time”都设置为 0.1s。(4) 添加文本注释,系统框图如图 1.31 所示。(5) 设置颜色,Simulink 为帮助用户方便地跟踪不同采样频率的运作范围和信号流向,可以采用不同的颜色表示不同的采样频率,选择菜单“Format”“Sample time color” ,就可以看到不同采样频率的模块颜色不同。(6) 开始仿真,在 S
14、imulink 模型窗口,选择菜单“Simulation” “Simulation parameters”,将“Max step size”设置为 0.05s,则两个示波器“Scope”和“Scope1”的显示如图 1.32 所示。图 7.30 plot 绘制的时域响应波形图 7.31 离散系统框图可以看出当 T=Tk=0.1 时系统的输出响应较平稳。(7) 修改参数,将“Discrete Filter”模块的“Sample time”设置为 0.6s,“Zero-Order Hold”模块的“Sample time”不变;选择菜单 “Edit”“Update diagram”命令修改颜色,就
15、可以看到“Discrete Filter”模块的颜色变化了;然后开始仿真,则示波器显示如图 1.33 所示。可以看出当 T=0.6 而 Tk=0.1 时,系统出现振荡。(8) 修改参数,将“Discrete Filter” 和“Zero-Order Hold”模块的“Sample time”都设置为 0.6s,更新框图颜色,开始仿真,则示波器显示如图 1.34 所示。当 T=Tk=0.6 时,系统出现强烈的振荡。3-1 2ASK 的调制与解调仿真图 7.32 T=Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示图 7.33 T=0.6 Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示图 7.34 T=0.6 Tk=0.1 (a) d(k)示波器显示 (b) y(t)示波器显示