主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

Simulink-PS Converter

Simulink 输入信号转换为物理信号

  • Simulink-PS Converter block

库:
Simscape / Utilities

描述

Simulink-PS Converter 模块将 Simulink® 输入信号转换为物理信号。使用此模块可将 Simulink 源或其他 Simulink 模块连接到 Simscape™ 物理网络的输入。

模型画布上的模块图标显示

为了在占用最小画布空间的同时显示信号转换,此模块的图标会根据模块是否连接到其他模块而动态变化。

当模块……模块图标

未连接时

连接到其他模块时

模块图标还会根据输入滤波阶数参数的值而变化,以指示是否对输入信号应用滤波。

输入滤波阶数未连接的模块图标已连接的模块图标

一阶滤波

二阶滤波

单位转换和检查

Simscape 单位管理器自动处理物理网络内的单位传播和检查,并执行必要的单位转换运算。

Simulink-PS Converter 模块的输出端口处的物理信号作为该模块所连接的 Simscape 物理网络的输入信号。物理信号单位必须与目标模块的输入端口(即连接到 Simulink-PS Converter 模块的输出端口的输入端口)预期的单位相称。

Simulink 信号单位不会传播到物理网络中。输入信号单位参数可用于为输入信号值指定物理单位,使 Simscape 单位管理器可以执行必要的单位转换并相应地缩放输出物理信号。

注意

如果您还指定物理单位作为连接到模块输入端口的 Simulink 信号的属性,则软件会检查这两个单位是否匹配。有关详细信息,请参阅Working with Simulink Units

换句话说,输入信号单位参数不会确定输出物理信号的单位,它仅提供一个缩放值。输出物理信号单位是从目标模块推断出来的。默认目标模块单位为米千克秒 (MKS) 公制单位。如果您将 Simulink-PS Converter 模块设置为无单位,并将输入信号单位参数设置为 1,则该模块不会对输入信号应用缩放。如果您指定不同的单位,与目标模块输入的预期默认单位相称,则单位管理器会将这些单位附加到 Simulink 输入信号值,并在向目标模块提供信号时执行必要的单位转换。

在下图中,Ideal Torque Source 模块期望在其 S 端口上接收扭矩信号(单位为 N*m)。Constant 源模块提供该输入信号的值。如果您将 Simulink-PS Converter 模块设置为无单位,则 Ideal Torque Source 模块将产生 1000 N*m 的扭矩。选择此示例中其他模块的参数是为了使 Ideal Torque Sensor 模块的输出值等于 Ideal Torque Source 模块产生的扭矩,因此 Display 模块将值显示为 1000。如果您将 Simulink-PS Converter 模块中的输入信号单位参数值更改为 N*cm,则单位管理器将执行转换,并且 Ideal Torque Source 模块将产生 10 N*m 的扭矩;Display 模块中的扭矩值更改为 10,如下图所示。

当输入信号与热力学变量相关且包含温度单位时,您必须决定是否需要应用仿射转换。有关详细信息,请参阅When to Apply Affine Conversion。通常,如果输入信号表示相对温度,即温度的变化,则您需要应用线性转换 ΔTnew = L * ΔTold(默认方法)。但是,如果输入信号表示绝对温度,则您需要应用仿射转换 Tnew = L * Told + O

例如,在下图所示的 Simulink-PS Converter 模块中,如果您在输入信号单位字段中键入 degC,并选中应用仿射转换复选框,则 Ideal Temperature Source 模块产生的温度等于 293.15 K。但是,如果您清除应用仿射转换复选框,则 Ideal Temperature Source 模块的输出为 20 K。

注意

非类型化输入不支持仿射单位。如果您在 Simulink-PS Converter 模块中指定仿射单位,然后将其直接连接到非类型化输入端口,则系统会将信号值转换为相应的基本单位,并使用该值执行进一步的数学运算。

输入处理

对模型进行仿真时,您可能需要提供某些输入信号的时间导数,特别是在使用显式求解器时。提供必要输入导数的一种方法是通过低通滤波器对输入进行滤波。输入滤波使输入信号更平滑,并且通常会提高模型性能。还有一个好处是,Simscape 引擎会计算滤波后的输入的时间导数。一阶滤波器提供一个导数,而二阶滤波器提供一阶和二阶导数。如果使用输入滤波,选择适当的滤波器时间常数值非常重要。

滤波器时间常数控制输入信号的滤波。滤波后的输入会随着真实输入的变化而变化,但经过了平滑处理,其滞后的程度主要由您选择的时间常数决定。将时间常数设置为不大于您感兴趣的系统中的最小时间间隔值。如果您选择的时间常数非常小,则滤波后的输入信号更接近真实的输入信号。但是,这种滤波后的输入信号会增加系统的刚度并减慢仿真速度。

您可以不使用输入过滤,而是直接提供输入信号的时间导数,作为附加 Simulink 信号。如果提供的导数与输入信号不一致,则仿真过程中的某些量可能不正确。

对于分段常数信号,您还可以将输入导数显式设置为零。对于真正的分段常数信号(如阶跃),请使用此选项。如果您的连续输入信号是用离散采样时间采样的,则将输入导数设置为零可能会产生错误的仿真结果。您可以使用另外两个选项之一:对输入进行滤波或提供时间导数作为单独的信号。

示例

端口

输入

全部展开

由模块转换为输出物理信号的 Simulink 输入信号。

数据类型: double

Simulink 信号,提供 Port_1 处的输入信号的一阶导数。

依赖关系

要启用此端口,请将提供的信号参数设置为输入和第一个导数输入和前两个导数

数据类型: double

Simulink 信号,提供 Port_1 处的输入信号的二阶导数。

依赖关系

要启用此端口,请将提供的信号参数设置为输入和前两个导数

数据类型: double

输出

全部展开

输出物理信号。信号大小与 Port_1 处的输入信号大小匹配。信号单位由目标模块确定。通过选择输入信号单位参数和应用仿射转换复选框,您可以对输入信号值应用缩放和线性偏移,以计算输出信号的正确值。

参数

全部展开

单位

要分配给 Simulink 输入信号的单位,以便让单位管理器执行必要的单位转换并相应地缩放信号值。这些单位必须与目标模块输入的预期默认单位相称。您可以从下拉列表中选择单位,或键入所需的单位名称,例如 rpm,或键入有效的表达式,例如 mm/s。有关详细信息以及单位缩写列表,请参阅How to Specify Units in Block DialogsUnit Definitions。默认值为 1,这意味着未应用缩放。模块输出端的物理信号与 Port_1 处的 Simulink 输入信号值匹配,其单位与物理网络内目标模块所期望的单位一致。

此复选框仅适用于可以使用或不使用仿射偏移进行转换的单位,例如 degCdegF。如果输入信号表示以摄氏度或华氏度为单位的绝对温度,请选中此复选框。有关详细信息,请参阅Thermal Unit Conversions

输入处理

此参数可让您决定是通过附加输入端口还是通过滤波提供输入信号的时间导数:

  • 提供信号 - 通过使用提供的信号参数,选择是仅提供输入信号,还是同时提供输入信号的时间导数作为附加输入信号。默认输入处理选项为提供信号仅输入。如果使用显式求解器,建议您通过选择其他选项之一来提供输入导数。有关详细信息,请参阅Filtering Input Signals and Providing Time Derivatives

  • 对输入滤波并计算导数 - 通过低通滤波器对输入进行滤波,同时提供输入导数。在这种情况下,输入信号会先经过修改(通过滤波)再转换为物理信号。一阶滤波器提供一个导数,而二阶滤波器提供一阶和二阶导数。如果使用此选项,请设置适当的输入滤波时间常数参数值。

  • 零导数(分段常数) - 如果输入信号是分段常数(例如阶跃),则此选项可用于将输入导数显式设置为零。

此参数可让您提供输入信号的时间导数作为附加输入信号:

  • 仅输入 - 仅提供输入信号。这是默认选项。如果您选择此选项,该模块将有一个 Simulink 输入端口和一个物理信号输出端口。

  • 输入和第一个导数 - 如果您选择此选项,则 Simulink-PS Converter 模块上会出现一个额外的 Simulink 输入端口,用于连接提供输入导数的信号。

  • 输入和前两个导数 - 如果您选择此选项,则 Simulink-PS Converter 模块上会出现两个额外的 Simulink 输入端口,用于连接提供输入导数的信号。

依赖关系

要启用此参数,请将滤波和导数设置为提供信号

此参数用于指定滤波提供的输入信号的时间导数的数目:

  • 一阶滤波 - 仅提供一阶导数。

  • 二阶滤波 - 提供一阶导数和二阶导数。

依赖关系

要启用此参数,请将滤波和导数设置为对输入滤波并计算导数

指定控制输入信号滤波的滤波器时间常数(以秒为单位)。滤波后的输入会随着真实输入的变化而变化,但经过了平滑处理,其滞后的程度主要由时间常数决定。选择此参数的值时,请考虑系统动态特性,并将时间常数设置为不大于仿真期间感兴趣的最小时间间隔值。选择非常小的时间常数时需要权衡利弊:虽然滤波后的输入信号将更接近真实输入信号,但会导致系统刚度增加、仿真速度减慢。

依赖关系

要启用此参数,请将滤波和导数设置为对输入滤波并计算导数

扩展功能

全部展开

C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2007a 中推出