综合测控实验simulink

上传人:kms****20 文档编号:51472319 上传时间:2018-08-14 格式:PPT 页数:58 大小:1.35MB
返回 下载 相关 举报
综合测控实验simulink_第1页
第1页 / 共58页
综合测控实验simulink_第2页
第2页 / 共58页
综合测控实验simulink_第3页
第3页 / 共58页
综合测控实验simulink_第4页
第4页 / 共58页
综合测控实验simulink_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《综合测控实验simulink》由会员分享,可在线阅读,更多相关《综合测控实验simulink(58页珍藏版)》请在金锄头文库上搜索。

1、综合测控实验(下)主 讲 人:黄弢、王峻峰Simulink模块的数学描述 Simulink模块包括一系列输入、状态和 输出。输出是采样时间、输入、模块 状态的函数。 仿真过程 MATLAB的工具箱提供了各种数值积分方法函数: T,Y=solver(F,TSPAN,Yo,OPTIONS) solver为微分方程的求解函数名。 F为系统模型文件名,模型为TSPAN=To Tfinal 为积分区间,初值终值, Yo为系统输出初始值,即To时刻的初值列向量; OPTIONS设置积分相对允误RelTol和绝对允误 AbsTol, 缺省时,RelTol=1e-3, AbsTol=1e-6. solver:

2、 ode23 Runge-Kutta法 三阶积分算法、二阶误差 估计、变积分步长的低阶算法 ode45 Runge-Kutta法,变步长的中等阶次积分算 法 ode113 变阶的Adams-Bashforth-Moulton,多步 长 ode15s 改进的Gear法,用于刚性方程的求解。 例:求微分方程 , 先建立一个系统模型文件(m文件函数 )dfun.m function y=dfun(t,x) y=sqrt(x)+5; 在命令窗口敲如下命令: t,x=ode23(dfun, 0 10 , 1); plot(t,x) 数值积分法、离散相似法 数值积分法上面以讲过。 离散相似法是首先将连续系

3、统模型离散化 ,得到等价的或相似的离散化的模型,然 后对相似的离散模型进行仿真计算。 根据这一原理,首先应将连续时间系统模 型转换为等价的离散时间系统模型。连续 系统离散化处理是通过转移矩阵法; 采样和信号保持器;变换法(如双线性 变换)来实现的。 Matlab通过采样和信号保持器以及双线性变 化法将连续系统模型转换为离散时间系统模型的函数C2D,调用格式为 sysd = c2d (sys, Ts, method) 其中,sys为线性连续时间系统;Ts为采样 时间;sysd为等价的离散时间系统。 method为离散化方法,可以选用: zoh 为零阶保持器 foh为一阶保持器 tustion为双

4、线性变换法, prewarp 为改进的双线性变换法 matched使连续和离散系统具有匹配的 DC增益 例:连续系统传递函数 采用一阶采样保持器,采样周期为 求其离散化系统模型,并比较离散前 后系统阶跃响应。 sysc = tf ( l -1 , 14 5 , td , 0.35 );%time delay sysd=c2d(sysc,0.1,zoh) step ( sysc, sysd ); 子系统创建及封装 在命令窗口键入“thermo”(这是一个房间热力学仿真 演示程序)。里面包含许多模块,模块之间用直线相连 ,组成模型,模型造好后,可以仿真运行,等待结果 。 双击“house”模块,出

5、现“thermo/house”窗口,表示 house模块是由窗口右边所示的一些模块连接而成。像 house这样由由几个相互关联的模块组合而成的模块在 simulink中称为子系统 用户自定义该子系统的图表和设置参数对话 House房屋形状的图标就是封装后的结果。 还可以做其他尝试,如:把温度设为80(预期的室 内温度),观察仿真结果的变化。 标签为daily temperature variation的正弦模块是 设置日温度变化,试改变幅度值参数,观察仿真结果 的变化。 SIMULINK 运行仿真 两种Simulink运行仿真的方法 使用窗口运行仿真 使用MATLAB 命令运行仿真使用窗口运行

6、仿真 优点:人机交互性强,不必记住繁琐的命令语句即 可进行操作。使用窗口运行仿真主要可以完成以下 一些操作。 1. 设置仿真参数: 仿真参数和算法选择的设置 2. 应用仿真参数: 仿真参数和算法设置后,使之 生效 3. 启动仿真: 选择命令运行仿真 4. 停止仿真: 选择命令停止仿真 5. 中断仿真: 可以在中断点继续启动仿真,而 停止仿真则不能 6. 仿真诊断: 在仿真中若出现错误,Simulink将 会终止仿真并在仿真诊断对话框中显示错误信息 1. 设置仿真参数 选择菜单选项【SimulationParameters】,可以 对仿真参数及算法进行设置,共有五个选项卡 解法设置(Solver

7、)(已讲) 工作间I/O(Workspace I/O) 诊断页(Diagnostics)(自学) 高级设置(Advanced) (自学) 实时工具对话框(Real-Time Workshop) (自学 )工作间I/O Simulink作为MATLAB 的一个附件,理应与MATLAB 很好 地结合,它的输入数据可以从MATLAB的工作空间中获得, 其仿真结果也可以被引入到MATLAB的工作空间。实现此项 功能需要用到仿真参数对话框中的工作间I/O页。工作间I/O 页大致可以分为三个部分:从MATLAB工作空间获得系统输入(Load from workspace) 仿真结果输出到MATLAB的工作

8、空间(Save to workspace) 输出选项(Save option) 下面对Workspace I/O选项页的功能与使用分别予以简介。从MATLAB工作空间加载 (Load from workspace)虽然Simulink提供了多种系统输入信号,但并不能完全满足需要。 Simulink允许使用用户自定义的信号作为系统输入信号。在Load from workspace框中,用户可以设置MATLAB中的变量作为系统输 入信号或系统状态初值,如下所述: (1)Input:用来设置系统输入信号,其格式为t, u,其中t、u 均为列向量,t 为输入信号的时间向量,u 为相应时刻的信号取值。

9、可以使用多个信号输入,如t, u1, u2。输入信号与Simulink的接口 由Inport模块(In1模块)实现。 (2)Initial state:用来设置系统状态变量的初始值。初始值 xInitial可为列向量。 注意:使用xInitialstate所设置的状态变量初始值会自动覆盖系统模 块中的设置。另外,输入信号与状态变量需要按照系统模型中Inport 模块(即In1 模块)的顺序进行正确设置。仿真结果输出到MATLAB的工作空间 (Save to workspace) 使用Workspace I/O选项页可以将系统的仿真结果、系统仿真时刻 、系统中的状态或指定的信号输出到MATLAB

10、的工作空间中,以便 用户对其进行定量分析,如下所述: (1)Time:输出系统仿真时刻。 (2)States:输出系统模型中的所有状态变量。 (3)Output:输出系统模型中的所有由Output 模块(即Out1 模 块)表示的信号。 (4)Final state:输出系统模型中的最终状态变量取值,即最后仿 真时刻处的状态值。输出选项(Save option) (1)Limit data points to last:表示输出数据的长度(从信号的最后数 据点记起)。 (2)Format:表示输出数据类型。共有三种形式:Structure with Time (带有仿真时间变量的结构体)、St

11、ructure(不带仿真时间变量的结构体 )、Array(信号数组)。使用MATLAB命令运行仿真 MATLAB提供了sim命令,用户可以在 MATLAB 的环境下以命令行或M 文件的形 式运行Simulink模型。 使用命令行方式,用户可以在脚本文件中重 复地对同一系统在不同的仿真参数或不同的 系统模块参数下进行仿真,而无需一次又一次启动Simulink图形窗口中的Start Simulink。建立一个简单的动态系统,其功能如下: (1)系统的输入为一单位幅值、单位频率的正弦信号; (2)系统的输出信号为输入信号的积分。要求如下: (1)系统的输入信号由MATLAB 工作空间中的变量提供,

12、时间010s; (2)使用MATLAB绘制原始输入信号与系统运算结果的曲线 。问题描述: 原函数:sin(t) 时间区域:0-10s 原函数的积分为:-cos(t)+C 若取零初始条件,则有:C=1; 因此,有x(t)=-cos(t)+1对Workspace I/O 页进行如下设置: (1)Load from workspace 栏:Input 打勾,并 填入sim_input(由MATLAB 工作空间输入的输入 名)。Initial state 不选。 (2)Save to workspace 栏:Time 和Output 项 勾上,State 和Final state 项不勾。 (3)Sa

13、ve options 栏依次为:1000,1,Array在MATLAB工作空间中定义输入变量sim_input如下: t = 0: 0.1: 10; t = t; % 表示输入信号的时间范围 u = sin( t ); % 产生输入正弦信号 sim_input= t, u ; % 传递给Simulink系统模型的变量 然后运行Simulink仿真。: 或者 tout, x, yout = sim( command_in_out) 使用sim进行系统仿真,仿真参数取与前面相同 最后在MATLAB工作空间运行如下命令 plot(t, u, tout, yout, -); grid利用C写的S-Fu

14、nction执行步骤 mdlInitializeSizes是Simulink与S-function交互时 调用的第一个方法。随后Simulink将调用其他S- function方法(都以mdl开头)。仿真结束时, Simulink调用mdlTerminate。 注意:Simulink仿真时直接在适当的时间调用每个回 调方法,利用C写的S-Function仿真步骤如图4.1所示 : S-Function模板创建DLL 新建一个文件夹,选择为当前目录 打开simulink,选择User-Defined Functions/S- Function Examples/C-files S-Functio

15、n/Basic C- MEX Template,根据所定义模块的功能,将该自动 生成的文件重命名,并存入你指定的文件夹中 将模版的c文件另存,文件名自定义,如MyOn.cpp 。将Function改成和文件名一样,如图4.5所示。 在mdlOutputs(SimStruct *S,int_T tid)函数中进行修 改,将 real_T *y = ssGetOutputPortSignal(S,0); 替换为 real_T *y = ssGetOutputPortRealSignal(S,0); 回到Matlab命令窗口,输入:mex setup Matlab命令窗口,输入:mex MyOn.cpp,可以看到出现了 一个MyOn.dll文件 在simulink窗口下,新建一个mdl文件(可为mytemp1, mdl的文件名不能与sfunction的名字相同,即不能为 MyOn,否则会出现命名冲突。),向其中添加一个S -Function模块,双击模块,将其中的S-Function Name改为dll的文件名(不加后缀,也就是MyOn)。 相同输入输出设置及采集

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号