正弦流输入信号
在频率响应估计中,正弦流信号由依次施加的不同频率的正弦波组成。每个频率都会激励系统一段时间。
您可以在命令行、模型线性化器中或通过 Frequency Response Estimator 模块使用正弦流输入信号进行估计。估计算法会在您指定用于估计的输入点处注入正弦流信号,并测量输出点处的响应。
在大多数情况下,推荐使用正弦流信号。当您的系统包含强非线性或您需要高精度频率响应模型时,正弦流信号特别有用。使用正弦流输入得到的频率响应模型会包含该正弦流信号中的所有频率。
当您创建正弦流输入信号时,可以为每个频率指定以下参数:
信号斜升到最大值所需的周期数
稳定周期的数量
周期总数
估计周期的数量等于周期总数减去稳定周期的数量。估计算法会丢弃在斜坡周期和稳定周期时间范围内收集的响应数据。这样做可以让任何瞬态响应消失。该算法使用在估计周期内收集的数据来计算估计的频率响应。
(在离线估计中,如果打开了 FIR 滤波,软件还会丢弃第一个估计周期,如图所示。有关离线和在线估计算法的详细信息,请分别参阅 frestimate
和 Frequency Response Estimator 的“算法”部分。)
使用模型线性化器创建正弦流信号
在模型线性化器中,要使用正弦流输入信号进行估计,请在估计选项卡上选择:
输入信号 > 正弦流(当 I/O 的采样时间是连续时间时)。
输入信号 > 固定采样时间正弦流(当 I/O 的采样时间是离散时间时)。
您可以通过以下两种方式之一指定要在正弦流中使用的频率:
手动,如使用模型线性化器估计频率响应中所示
基于线性模型的动态特性,例如系统的线性化,如Estimate Frequency Response with Linearization-Based Input Using Model Linearizer中所示
您可以在模型线性化器中为正弦流信号指定的其他参数包括:
振幅 - 注入的正弦波的振幅
周期数 - 每个频率的总周期数
稳定周期 - 估计计算中要丢弃的周期数
斜坡周期 - 每个正弦波的振幅斜升到最大值所需的周期数
执行滤波以改进估计结果 - 在估计频率响应之前对响应数据进行滤波(请参阅
frestimate
的“算法”部分)
使用 MATLAB 代码创建正弦流信号
要使用 frestimate
在命令行中创建用于估计的正弦流信号,请使用:
frest.Sinestream
- 当线性化输入点处的信号为连续信号时使用。frest.createFixedTsSinestream
- 当线性化输入点处的信号为离散信号时使用。
用于在线估计的正弦流信号
您可以通过 Frequency Response Estimator 模块使用正弦流信号进行在线估计。为此,请将试验模式参数设置为正弦流。其他相关模块参数包括:
频率 - 正弦流信号的频率向量。
振幅 - 信号振幅。您可以为所有频率指定一个振幅,也可以为每个频率指定单独的振幅。
稳定周期的数量 - 估计计算中要丢弃的周期数。
估计周期的数量 - 估计计算中要使用的周期数。
有关详细信息,请参阅 Frequency Response Estimator 模块参考页。
在 Simulink 中创建正弦流信号
自 R2024a 起
要在 Simulink® 中创建用于估计的正弦流信号,请使用 Sinestream Signal Generator 模块。当您生成扰动信号以在桌面仿真或通过代码生成在硬件上将其注入您的被控对象模型时,此模块很有帮助。然后,您可以收集被控对象对扰动信号的响应数据并执行自定义处理以确定被控对象特征。
另请参阅
frest.Sinestream
| frest.createFixedTsSinestream