我是靠谱客的博主 淡淡大门,最近开发中收集的这篇文章主要介绍模型离散化器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

什么是模型离散化器?

要求

使用模型离散化器离散化模型

查看离散化的模型

离散化 Simulink 模型中的模块

使用 sldiscmdl 函数离散化模型


什么是模型离散化器?

        模型离散化器有选择地将连续 Simulink® 模块替换为离散模块。离散化是数字控制器设计中的一个关键步骤,用于硬件在环仿真。

模型离散化器可用于:

  • 识别模型的连续模块

  • 将模块的参数从连续更改为离散

  • 将离散化设置应用于模型中的所有连续模块或所选模块

  • 创建随原始连续模块一起包含多个离散化候选项的可变子系统

  • 在不同离散化候选项之间切换并计算生成的模型仿真

模型离散化器不支持封装子系统。

要求

使用模型离散化器需要具备的条件

  • 必须拥有 Control System Toolbox™ 5.2 或更高版本的许可证。

  • 确保模型不包含任何过时的模块,且升级到最新 Simulink 版本。

  • 必须将现有模型中的可配置子系统模块转换为可变子系统。

使用模型离散化器离散化模型

        要离散化模型,请执行下列操作:

  • 启动模型离散化器

  • 指定转换方法

  • 指定采样时间

  • 指定离散化方法

  • 离散化模块

f14 模型显示离散化模型过程中的各步骤。

启动模型离散化器

        要打开该工具,请在 Simulink 编辑器中,在 App 选项卡上,在 App 下,在控制系统下,点击模型离散化器

Simulink 模型离散化器随即打开。

        也可以使用 slmdldiscui 函数从 MATLAB® 命令行窗口中打开模型离散化器。

        以下命令使用 f14 模型打开 Simulink 模型离散化器窗口:

slmdldiscui('f14')

         要从模型离散化器打开一个新的模型或库,请选择文件 > 加载模型

指定转换方法

        转换方法用于指定在离散化中使用的算法的类型。

变换方法列表包含以下选项:

  • “零阶保持”

    对输入执行零阶保持。

  • “一阶保持”

    对输入进行线性插值。

  • “Tustin”

    双线性 (Tustin) 逼近法。

  • “采用预畸变的 Tustin”

    采用频率预畸变的 Tustin 逼近法。

  • “匹配的零极点”

    匹配的零极点方法(仅适用于 SISO 系统)。

指定采样时间

        在采样时间字段中输入采样时间。对于模型离散化器,该值必须为数值。

        可以通过为离散模块或可变子系统输入一个二元素向量来指定偏移时间。第一个元素是采样时间,第二个元素是偏移时间。例如,输入 [1.0 0.1] 会指定具有 0.1 秒偏移的 1.0 秒采样时间。如果未指定偏移时间,则默认值为零。

        在 S 域中离散化模块时,可以输入工作区变量。

指定离散化方法

将当前选择替换为字段中指定离散化方法。这些选项包括


  • 离散模块(在 S 域中输入参数)

    创建一个离散模块,其参数从对应的连续模块保留得来。


  • 离散模块(在 Z 域中输入参数)

    创建一个离散模块,其参数是直接放入模块对话框的“硬编码”值。

  • 可变子系统(在 S 域中输入参数)

    使用 S 域值为当前所选内容创建多个离散候选项。


  • 可变子系统(在 Z 域中输入参数)

    在 Z 域中为当前所选内容创建多个离散候选项。

        离散模块(在 S 域中输入参数).  创建一个离散模块,其参数从对应的连续模块保留得来。采样时间和离散化参数也在模块的参数对话框中。

        该模块实现为封装的离散模块,后者在封装初始化代码中使用 c2d (Control System Toolbox) 将连续参数转换为离散参数。

        只有这些模块能够在采样时间更改为零时恢复连续行为。通过以工作区变量形式(例如 'Ts')输入采样时间,可轻松实现连续和离散之间的转换。

        注意:如果从模型生成了代码,则当在模型的“配置参数”对话框中将默认参数行为设置为“内联”时,参数不可调。

        下图并排显示了一个连续 Transfer Function 模块和一个已在 S 域中使用 Tustin 变换方法离散化的 Transfer Function 模块。每个模块的“模块参数”对话框显示在模块下方。

        离散模块(在 Z 域中输入参数).  创建一个离散模块,其参数是直接放入模块对话框的“硬编码”值。模型离散化器使用 c2d (Control System Toolbox) 函数获取离散化的参数(如果需要)。

​        ​如需有关 c2d (Control System Toolbox) 函数的更多帮助,请在命令行窗口中键入以下内容:

help c2d

        下图并排显示了一个连续 Transfer Function 模块和已在 Z 域中离散化的 Transfer Function 模块。每个模块的“模块参数”对话框显示在模块下方。

        注意:如果要在“模型离散化”会话后完全恢复原始连续参数值,应在 S 域中输入参数。

        可变子系统(在 S 域中输入参数).  使用 S 域值为当前所选内容创建多个离散候选项。创建一个离散模块,其参数从对应的连续模块保留得来。​

        在选择此选项时,可变子系统中模块的位置字段变为活动状态。此选项允许创建新的可变子系统。

        可变子系统(在 Z 域中输入参数).  在 Z 域中为当前所选内容创建多个离散候选项。创建一个离散模块,其参数是直接放入模块对话框的“硬编码”值。​

        在选择此选项时,可变子系统中模块的位置字段变为活动状态。此选项允许创建新的可变子系统。

离散化模块

        要离散化链接到库的模块,必须在库本身中离散化模块或在模型窗口中禁用库链接。

        可以通过从文件菜单中选择加载模型来从模型离散化器打开库。

        可以通过以下方式禁用库链接:在模块上右键点击并从上下文菜单中选择库链接 > 禁用链接

离散化模块有两种方法。

选择模块并离散化

  1. 在模型离散化器树视图窗格中选择模块。

    要选择多个模块,请在选择这些模块时按住键盘上的 Ctrl 键。

    注意:必须从模型离散化器树视图中选择模块。在编辑器中点击模块不会将其选中来进行离散化。

  2. 如果选择一个模块,请从离散化菜单中选择离散化当前模块;如果选择多个模块,请从离散化菜单中选择离散化所选模块

    还可以通过点击如下所示的离散化按钮来离散化当前模块。

存储离散化设置并将其应用于模型中的所选模块

  1. 输入当前模块的离散化设置。

  2. 点击存储设置

    这会将当前模块及其离散化设置添加到预设模块组中。

  3. 根据需要重复步骤 1 和 2。

  4. 离散化菜单中选择离散化预设模块

从可变子系统中删除离散化候选项

        也可以通过以下方式从可变子系统中删除离散化候选项:在可变子系统中模块的位置字段中选择该候选项,然后点击删除按钮。

撤消离散化

        要撤消离散化,请点击撤消离散化按钮。

        也可以从离散化菜单中选择撤消离散化

        此操作将撤消当前所选项及其子级中的离散化。例如,对子系统执行撤消操作将从该子系统层次结构的所有层级的所有模块中删除离散化。

查看离散化的模型

        模型离散化器在层次结构树状视图中显示模型。

查看离散化的模块

        当模块已离散化时,该模块的图标在树视图中变为用“z”突出显示。

        下图显示 Aircraft Dynamics Model 子系统已离散化为一个包含两个离散化候选项的可变子系统。

        此 f14 模型中的其他模块尚未离散化。

        下图显示离散化为一个可变子系统(包含原始连续模型和两个离散化候选项)后的f14示例模型的 Aircraft Dynamics Model 子系统。

        下图显示具有两个离散化候选项的 Aircraft Dynamics Model 可变子系统。 

刷新模型的模型离散化器视图

        要在模型更改后刷新模型的模型离散化器树视图,请点击刷新按钮。

        也可以选择视图 > 刷新

离散化 Simulink 模型中的模块

        可以使用 Discretizing 库,将 Simulink 软件模型中的连续模块替换为 S 域中离散化的等效模块。

        以下过程说明如何将 f14 模型的 Aircraft Dynamics Model 子系统中的连续 Transfer Fcn 模块替换为 Discretizing 库中的离散化 Transfer Fcn 模块。模块在 S 域中使用零阶保持转换方法和两秒采样时间进行离散化。

  1. 打开 f14 模型。

  2. 在 f14 模型中打开 Aircraft Dynamics Model 子系统。

    正在上传…重新上传取消

  3. 打开 Discretizing 库窗口。

    在 MATLAB 命令提示符下输入 discretizing

    Library: discretizing 窗口随即打开。

    正在上传…重新上传取消

    此库包含 S 域的离散化模块。

  4. 将 Discretized Transfer Fcn 模块(具有初始状态)添加到 f14/Aircraft Dynamics Model 窗口。

    1. 在 Library: discretizing 窗口中点击 Discretized Transfer Fcn 模块。

    2. 将其拖到 f14/Aircraft Dynamics Model 窗口中。

      正在上传…重新上传取消

  5. 打开 Transfer Fcn.1 模块的参数对话框。

    在 f14/Aircraft Dynamics Model 窗口中双击 Transfer Fcn.1 模块。

    Block Parameters:Transfer Fcn.1 对话框随即打开。

  6. 打开 Discretized Transfer Fcn 模块的参数对话框。

    在 f14/Aircraft Dynamics Model 窗口中双击 Discretized Transfer Fcn 模块。

    Block Parameters:Discretized Transfer Fcn 对话框随即打开。

    正在上传…重新上传取消

    将参数信息从 Transfer Fcn.1 模块对话框复制到 Discretized Transfer Fcn 模块的对话框。

    正在上传…重新上传取消

  7. 采样时间字段中输入 2

  8. 方法下拉列表中选择 zoh

    现在,Discretized Transfer Fcn 的参数对话框如下所示。

  9. 点击确定

    f14/Aircraft Dynamics Model 窗口现在类似于如下所示。

  10. 删除原始 Transfer Fcn.1 模块。

    1. 点击 Transfer Fcn.1 模块。

    2. 删除键。

      f14/Aircraft Dynamics Model 窗口现在类似于如下所示。

  11. 将 Discretized Transfer Fcn 模块添加到模型中。

    1. 点击 Discretized Transfer Fcn 模块。

    2. 将 Discretized Transfer Fcn 模块拖到相应位置以完成模型。

      f14/Aircraft Dynamics Model 窗口现在类似于如下所示。

使用 sldiscmdl 函数离散化模型

​        从 MATLAB 命令行窗口使用 sldiscmdl 函数离散化 Simulink 软件模型。可以使用 sldiscmdl 函数指定转换方法、采样时间和离散化方法。

​        例如,以下命令使用 1 秒采样时间和零阶保持转换方法在 S 域中离散化 f14 模型:

sldiscmdl('f14',1.0,'zoh')

最后

以上就是淡淡大门为你收集整理的模型离散化器的全部内容,希望文章能够帮你解决模型离散化器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部