[论文分享]TimeMAE:解耦掩码自编码器时间序列的自监督表示

在这里插入图片描述

论文题目:TimeMAE: Self-Supervised Representations of Time Series with Decoupled Masked Autoencoders

论文地址:https://arxiv.org/abs/2303.00320

代码地址:https://github.com/Mingyue-Cheng/TimeMAE

1 摘要

利用自监督预训练增强基于深度学习的时间序列模型的表达能力在时间序列分类中越来越流行。尽管已经投入了大量的努力来开发时间序列数据的自监督模型,但我们认为目前的方法还不足以学习最佳的时间序列表示,因为在稀疏的点方向输入单元上只有单向编码。在这项工作中,我们提出了TimeMAE,这是一种新的自监督范式,用于学习基于变压器网络的可转移时间序列表示。TimeMAE的独特之处在于通过窗口切片分割将每个时间序列处理成一系列不重叠的子序列,然后对局部子序列的语义单元进行随机屏蔽策略。这样一个简单而有效的设置可以帮助我们实现一石三鸟的目标,即:(1)使用双向编码方案学习时间序列的丰富上下文表示;(2)增加基本语义单位的信息密度;(3)利用变压器网络对时间序列进行高效编码。然而,在这样一种新的公式化建模范式上执行重构任务是一件非常重要的事情。

为了解决新注入的掩码嵌入所带来的差异问题,我们设计了一种解耦的自编码器架构,该架构分别使用两个不同的编码器模块学习可见(未掩码)位置和掩码位置的表示

此外,我们构建了两类信息目标来完成相应的托辞任务。一种方法是创建一个标记器模块,该模块为每个掩码区域分配一个码字,从而允许有效地完成掩码字分类(MCC)任务。另一种是采用连体网络结构对每个屏蔽输入单元生成目标表示,目的是进行屏蔽表示回归(MRR)优化。经过全面的预训练,我们的模型可以有效地学习可转移的时间序列表示,从而有利于时间序列的分类。我们在五个基准数据集上进行了大量实验,以验证TimeMAE的有效性。实验结果表明,TimeMAE能够显著超越以往的竞争基线。此外,我们还通过迁移学习实验证明了学习表征的普遍性。为了我们结果的可重复性,我们公开了我们的实验代码,以促进时间序列的自监督表示:https://github.com/Mingyue-Cheng/TimeMAE。

2 背景

2.1 Transformer

Transformer 在 NLP 和 CV 领域被广泛应用,但是 Transformer 进行时间序列分类可能无法获得令人满意的结果。部分原因为:注释数据有限,因为 Transformer 架构严重依赖于大量的训练标签。虽然先进的传感器设备使得收集时间序列数据变得非常容易,但在一些现实场景中,获得大量准确的带注释的时间序列数据是耗时的,容易出错的,甚至是不可行的。

2.2 自监督学习

这一困难激发了一系列致力于挖掘未标记时间序列数据的工作。自监督学习已经成为从未标记数据中学习可转移模型参数的一种有吸引力的方法,在语言和视觉领域取得了巨大成功。该方法的基本方案是首先获得预训练模型,根据原始未标记数据构建的自监督训练信号,通过制定借口任务进行优化。然后,通过表征特征或完全微调的方式,将预训练好的模型作为目标任务模型的一部分。

目前的研究主要遵循重构和判别两种范式。重建方法的思想试图通过依赖于自编码器来恢复完整的输入。例如,TimeNet首先利用编码器将时间序列转换为低维向量,然后利用解码器基于递归神经网络重构原始时间序列。另一种代表性的重构方法是TST,其主要思想是通过基于变压器架构的去噪自编码器来恢复这些被屏蔽的时间序列点。然而,重构优化是在逐点水平上建模的,导致非常昂贵的计算消耗和有限的可泛化性。

判别法的计算量较少,其主要解决方法是将正例拉到一起,将负例推到一边,即对比学习的范式。这些方法的一个共同的基本主题是,它们都使用数据增强策略学习表征,然后使用连体网络架构最大化正例的相似性。关键的工作是通过各种负抽样策略求解平凡常数解。

例如,在T-Loss中,同时使用了基于时间的三重损耗负采样。TNC利用时间序列信号的局部平滑性,将子序列邻域视为正例,将非邻域视为负例。TS-TCC使用点级和实例级对比优化目标来对齐相应的表示。TS2Vec的显著特点是在多个尺度上分层地进行对比优化。

尽管它们的有效性和普遍性,但不变性假设可能并不总是适用于现实世界的场景。此外,它会在制定数据增强策略时带来过多的归纳偏差,并在负抽样中产生额外的偏差。这些方法本质上是采用单向编码器的方案来学习时间序列的表示,这在很大程度上限制了上下文表示的提取。

2.3 掩码自编码器

掩码自编码器可以很好地克服上述限制,其主要原理是将掩码式损坏的输入编码到潜在空间,然后通过编码器和解码器恢复原始输入。但是将成熟的用于语言方面的模型用于时间序列,泛化性能较差,推测原因在于忽略了时间序列的性质。

首先,与语言数据不同,时间序列是具有时间冗余的自然序列信号,即每个时间步可以很容易地从相邻点推断出来。

其次,由于时间序列中的判别模式通常以子序列的形式出现,每个单点值只能携带非常稀疏的语义信息。

最后,由于采用掩蔽策略,也会导致自监督预训练与目标任务优化之间的差异。也就是说,一定比例的位置被掩码嵌入取代,而这些人工符号在微调阶段通常是不存在的。

3 本文方法

提出了一种新的掩膜自编码器架构,称为TimeMAE,用于学习基于变压器网络的可转移时间序列表示。具体来说,我们建议使用窗口切片操作将每个时间序列拆分为一系列不重叠的子序列,而不是单独对每个时间步进行建模。该策略不仅提高了掩码语义单元的信息密度,而且由于序列长度较短,大大节省了计算成本和内存消耗。在窗口切片之后,我们对这些重新定义的语义单元执行屏蔽操作,目标是对时间序列表示进行双向编码。特别地,我们发现具有非常高的60%比例的简单随机屏蔽策略与时间序列的最优表示匹配得很好。

然而,这种窗口切片操作和屏蔽策略也容易带来一些挑战。因此,为了解决被屏蔽位置引起的差异,我们设计了一种解耦的自编码器架构,其中可见(未被屏蔽)和被屏蔽区域的上下文表示分别由两个不同的编码器模块提取。为了完成恢复任务,我们形式化了两个借口任务来指导预训练过程。一种是掩码字分类(MCC)任务,即为每个掩码区域分配自己的离散码字,这是由另外设计的标记器模块产生的。另一种是掩蔽表示回归(MRR)任务,旨在将掩蔽位置的预测表示与提取的目标表示对齐。

在这里插入图片描述

4 创新点

  • 提出了一个概念简单但非常有效的时间序列表示自监督范式,该范式将基本语义元素从点粒度提升到局部子序列粒度,并同时促进从单向到双向的上下文信息提取

  • 提出了一个端到端解耦的时间序列表示自编码器架构,其中(1)我们解耦了屏蔽和可见输入的学习,以消除屏蔽策略引起的差异问题;(2)基于可见输入,形式化了分类(MCC)和回归(MRR)任务

  • 我们在五个公开可用的数据集上进行了广泛的实验,以验证TimeMAE的有效性。实验结果很明显验证了新提出的自监督范式和解耦自编码器结构的有效性。

5 整体框架

5.1 模型结构

  1. 首先,将输入序列投影到潜在表示中,然后采用掩蔽策略将整个输入分为可见(未掩蔽)输入和掩蔽子序列。

  2. 然后,采用解耦的自编码器架构来学习两个对应编码器的可见位置和掩码位置的表示。

    2.1 在编码器层面,我们使用一组普通的变压器编码器块来提取可见输入的上下文表示,同时利用基于交叉注意的变压器编码器网络的几层来学习屏蔽位置的表示。在解码器级别,利用两种新构建的目标信号,通过基于可见输入预测所有缺失部分来执行重建任务

    2.2 添加了一个标记器模块,为每个掩码区域分配自己的码字,从而可以训练码字分类任务。采用连体网络架构生成连续的目标表示信号,旨在执行目标表示回归任务

在这里插入图片描述

5.2 特征编码

5.2.1 窗口切分策略

逐点建模限制了自监督学习能力:相邻点之间存在冗余,每个掩蔽点可以很容易地从相邻点中推断出来,而不需要太大的挑战;重建过程中,预训练的编码器只能携带有限的信息。

本文利用时间序列的局部模式属性,允许子序列作为基本建模元素,而不是逐点输入。因此,每个时间序列可以被处理成一系列子序列单元,其中每个局部子序列区域保留了更丰富的语义信息,可以保证重构任务的挑战性。

使用切片窗口操作将原始时间序列分割成连续的非重叠子序列,执行零填充操作以确保固定的序列长度,确保可见区域不包含有关重建区域的信息,数据被切分为多个 patch 。

在对 patch 进行建模之前,我们需要通过特征编码器将每个元素编码为潜在表示。在这里,我们使用一维卷积层来提取跨通道的局部模式特征。需要注意的是,不同的子系列在特征编码器层共享相同的参数

5.2.2 掩蔽策略

采用随机掩蔽策略来形成损坏的输入。这意味着在构造自监督信号时,每个子序列单元被屏蔽的概率是相同的,这种策略有利于保证在重构优化过程中充分提高每个输入位置的表示质量,对每个预训练epoch的随机时间序列进行动态掩码,以进一步增加训练信号的多样性。

除了随机掩蔽操作外,在 TimeMAE 中还保留较高的掩蔽比。这是因为掩蔽比在决定恢复任务是否具有足够的挑战性以帮助编码器携带更多信息方面起着至关重要的作用。一般来说,较高的掩蔽比意味着依赖于这些可见邻近区域的恢复任务更难解决。

窗口切片和掩蔽策略都对时间序列输入不可知,这不会像对比学习中的数据增强那样带来太多的归纳偏置。

5.3 时间序列表征学习

TimeMAE 设计的关键是使用两个不同的编码器模块来分别学习可见位置和掩码位置的表示。这种解耦设置有利于缓解预训练优化和微调训练之间额外掩蔽嵌入所造成的差异问题。

5.3.1 可见位置表示

在 TimeMAE 中,采用由多头注意层和前馈网络层组成的普通Transformer架构来学习输入在可见区域的上下文表示。

在这种架构下,每个输入单元的表示可以通过自注意计算机制获得所有其他位置的语义关系。窗口切片操作在很大程度上缓解了利用自关注架构进行长序列输入的瓶颈。

Transformer 最后一层的输出表示可见位置的全局上下文表示。与以前的工作不同,我们只将可见区域的表示馈送到编码器网络中,同时去除被屏蔽位置的表示。这样就不需要使用掩码嵌入来训练编码器网络,从而很大程度上缓解了因掩码令牌输入而产生的预训练和微调任务之间的差异。

5.3.2 掩蔽位置表示

为了获得被屏蔽输入单元的表示,进一步用交叉注意替换普通 Transformer 中的自注意,形成解耦编码器模块,它表示可见输入和被屏蔽输入之间的表示学习解耦。

具体来说,我们将可见位置表示发送到解耦编码器中,以便表示屏蔽位置的输入单元。在掩码位置的嵌入被替换为一个新初始化的向量,同时保持相应的位置嵌入不变。在解耦编码器的表示学习过程中,我们将屏蔽位置的表示视为查询嵌入,同时将可见位置的转换嵌入视为输入,以帮助形成键和值。形式上,掩码查询的模型参数对于所有掩码查询都是相同的。可见键和值的投影参数也与可见输入共享。解耦编码器的输出掩码位置变换后的上下文表示。

解耦模块仅对掩码位置的嵌入进行预测,同时保持可见位置的嵌入未更新。主要原因是我们希望这样的操作可以帮助缓解后通的不符问题。通过这种分割操作,可见输入的表示角色仅由之前的编码器负责。同时,解耦编码器主要关注掩码位置的表示。此外,解耦模块的另一个优点是防止解码器预测层对可见位置进行表示学习,从而使编码器模块可以携带更多有意义的信息。

5.4 损失定义

计算损失的过程可以看作完成两个任务的过程:回归任务和分类任务

5.4.1 掩码字分类-分类任务

通过窗口切片操作,将每个时间序列重新表述为子序列序列,可以表现出更丰富的语义。受积量化的启发,用一种新的离散视图来表示这种重新表述的级数,即为每个局部子级数分配自己的“码字”。然后,这些指定的码字作为缺失部件的替代监督信号。

目前大多数的产品量化方法,其主要思想是基于聚类运算,用由聚类索引组成的短码对每个密集向量进行编码,其中所有索引构成码本词汇。虽然它的近似误差很低,但它实际上是一个两阶段的方法,即独立地分配聚类索引来提取学习到的特征。码本的表示能力可能与从变压器编码器和解耦网络中提取的特征不兼容。

这种不兼容性将直接影响自监督训练的性能。因此,本文开发了一个标记器模块,以端到端的方式将掩码位置的连续嵌入转换为离散的码字,我们将这种重构任务命名为掩码字分类(MCC)

假设标记器是一个码本矩阵,其关键思想是通过相似性计算为每个子序列分配最接近的码字。使用内积来估计标记器中的相关分数,因为可以很容易地防止范数倒数引起的梯度爆炸,也可以减轻解码器能力过强对下游任务的影响。通过这种方式,每个局部子序列都可以分配自己的离散码字,表示固有的时间模式。将码字分配给每个输入单元后,将嵌入矩阵传递给解码器层,得到码字预测分布p,从而进行MCC任务,采用交叉熵损失计算分类任务损失。

在这里插入图片描述

其中,q 表示码字分配中最大选择得到的 one-hot 编码。方程中的优化目标等于在给定屏蔽输入嵌入的情况下,最大化正确码字的对数似然。然而,据报道,这种码字最大选择算子容易导致两个方面的问题:(1)容易导致崩溃结果,即只选择很少比例的码字;(2)使上式的优化损失不可微,使得反向传播算法不能应用于梯度计算。

为了解决这些问题,我们通过调和softmax和先验分布相结合来放宽最大值。采用Gumbel先验分布放宽softmax,用概率分布的近似抽样代替了最大值的选择,从而大大缓解了崩溃问题。选择第k个码字的概率可以描述为

在这里插入图片描述

为了解决不可微问题,我们遵循直通式估计器(Straight-Through Estimator, STE)的技巧,通过重写bj来模拟梯度更新,将梯度不变地传递到码本矩阵的嵌入空间,即解决了不可微问题。

5.4.2 掩码表示回归-回归任务

对在潜在表示空间中直接执行回归优化感兴趣。我们将这种任务称为掩模表示回归(MRR)优化

使用 siamese 网络架构,典型的对比优化不同,MRR任务在训练过程中没有利用负面实例

目标编码器模块,与 普通 Transformer 保持相同的超参数设置。为了便于理解,我们将普通Transformer 和解耦Transformer 的组合命名为在线编码器,其中生成对齐表示。依靠这种连体网络架构,目标编码器和在线编码器可以分别产生屏蔽子序列表示的不同视图。因此,对齐两个不同视图的相应表示,自然形成MRR任务的目标。采用均方误差(MSE)损失来形成具体的优化目标。

在这里插入图片描述

然而,由于在 siamese 网络架构中省略了负例,因此很容易产生崩溃解。为了防止模型崩溃的结果,我们可以遵循两个网络不同更新的规则:执行一个随机优化步骤,只最小化在线编码器的参数,同时以动量移动平均的方式更新目标编码器

5.4.3 多任务合并

在预训练阶段,TimeMAE以多任务的方式进行训练,将MCC和MRR任务结合在一起。

准确地说,预训练模型的整体自监督优化目标可以写成

在这里插入图片描述

其中α, β是调谐的超参数,控制两个损失的权值。

随机梯度优化结合小批量训练算法可以优化上述联合损失。将掩码令牌建模和目标表示对齐任务耦合在一起,可以使预训练模型在目标下游任务中获得更好的泛化性能。通过联合自监督优化,可以有效地学习可转移的预训练模型,从而有利于目标任务。

5 实验

5.1 实验设置

数据集:

在五个公开可用的数据集上进行了实验,包括人类活动识别(HAR)、PhonemeSpectra (PS)、ArabicDigits (AD)、Uwave和Epilepsy。这五个数据集涵盖了广泛的变化:不同的通道数量、不同的时间序列长度、不同的采样率、不同的场景和不同类型的时间序列信号。

在这里插入图片描述

对比方法:

FineZero(vanilla Transformer),TST, TNC, TS-TCC, TS2Vec

FineZero+:用新设计的窗口切片策略代替训练编码器中的逐点输入处理

微调方式:

FineLast - 线性评估:前一种方式意味着冻结预训练编码器的参数,而根据目标任务的标签只调整新初始化的分类器层

FineAll - 微调评估:预训练的编码器和新初始化的分类器层的参数在没有任何冻结操作的情况下进行了调整。

5.2 实验结果

5.2.1 一对一的预训练评估

FineAll的结果会比fineLast的结果更好。作者认为FineAll的评估可以强迫整个模型参数适应于目标任务。

在大多数情况下,与其他基线相比,TimeMAE实现了实质性的性能改进。特别是在HAR和PS数据集上,取得结果较好

稀疏基本语义单元在时间序列处理中的逐点方式。这样的论点也可以从FineZero和FineZero+的比较结果中得到证明。

在这里插入图片描述

5.2.2 迁移学习评价

自监督预训练是通过只使用一个数据,然后分别微调多个不同的目标数据集来完成的。

在五个数据集中,HAR数据集的示例数量最多。因此,在HAR数据集上执行自监督预训练,并在剩下的四个数据集(包括PS、AD、Uwave和Epilepsy)上分别微调训练良好的模型。

one-to-many的方式比one-to-one的效果差,这也是合理的.

在这里插入图片描述

5.2.3 用不同比例的训练集进行微调

预训练模型最有价值的特征之一是在处理标签稀疏场景时具有更强的泛化能力。我们通过不同训练集比例{3%,5%,10%,25%,50%,75%,100%},来研究TimeMAE模型的有效性。

当使用较低比例的训练数据时,性能会大幅下降。

与随机初始化模型相比,TimeMAE可以获得更好的分类性能,特别是在Epilepsy数据集中。

在这里插入图片描述

5.2.4 模型尺寸的可扩展性分析

通过缩放预训练编码器的尺度或更长时间的训练可以训练出更强的泛化模型。

更大的模型尺寸和更长的预训练时间确实可以进一步在HAR和Epilepsy数据集上产生更优的表征和更好的泛化能力。相比之下,较大的模型在PS数据集上获得了显著的性能增益。

这可能是因为与其他两个数据集相比,PS数据集上的预训练集更少。毕竟,更大的模型需要与更多的训练集匹配,才能满足网络的表达能力。

在这里插入图片描述

5.2.5 预训练集的变比例分析

随着预训练集的增加,所提出的模型是否会出现饱和现象。如果预训练方法遇到这样的饱和,那么随着训练集的增加,它将无法为自监督学习带来有意义的性能。

在两个不同版本的训练集(100%,70%)上对HAR数据集进行了广泛的实验,以微调预训练模型,分别命名为case1和case2。

随着预训练集的增加,目标任务的分类结果可以得到进一步的改善,特别是对于线性评价方式的指标。这样的结果对于实际应用是有意义的,因为收集无监督时间序列数据的成本要低得多,因为省去了领域专家的注释工作。

在这里插入图片描述

5.2.6 掩蔽策略研究

研究了窗口切片大小和掩蔽比对表示泛化的影响。前一个因素表示基本语义元素中涉及多少语义。后一个因素意味着恢复任务的挑战性程度。

在HAR数据集上,TimeMAE模型对掩蔽比更敏感,反映了数据集之间的巨大差异。

在这里插入图片描述

5.2.7 消融实验

联合利用两个借口任务可以迫使编码器在目标任务上达到更优的泛化性能。

当丢弃解耦设置时,目标任务的分类性能会显著下降,这表明解耦在可见集和屏蔽集上的表示的重要性。

主要原因:带有自监督优化的预训练编码器涉及掩码嵌入,而这些嵌入通常在微调阶段不存在。因此,它容易在自监督预训练和微调阶段之间产生很大的差异,从而严重影响编码器的表示能力。

在这里插入图片描述

5.2.8 可视化

(a)提供了随机初始化编码器衍生的特征的可视化,(b)描述了未经预训练增强的监督训练后的特征可视化,©和(d)显示了TimeMAE中冻结预训练编码器和微调编码器提取特征的可视化结果。

从调整后的TimeMAE和FineZero+中可以很好地分离提取的特征,微调后的TimeMAE分离效果较好。

在这里插入图片描述

5.2.9 端到端微调评估

TimeMAE进行预训练在准确性和收敛速度方面大大优于随机初始化基线

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqPQf7iA-1685625297619)(C:\Users\zhou\AppData\Roaming\Typora\typora-user-images\image-20230601210856656.png)]

6 总结

TimeMAE 技术点:

1、宏观层面,采用两种任务结合,模拟了分类任务和回归任务

2、具体操作上,采用切分patch、随机mask、动量编码器、解耦自编码器、CodeBook等操作

展望:

1、跨域的迁移学习

2、预测和异常检测任务

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
向量类(综合型题目) (1)创建C# 控制台应用程序L4_2。 (2)在程序中创建一个向量类CzVector,在其中定义一个double []类型的私有字段_values,用于维护向量的各个元素值。 (3)为CzVector定义三个公有属性Length、Sum和Prod,分别用于返回向量的长度、向量所有元素的和以及向量所有元素的积。 (4)在CzVector中定义一个索引函数,用于获取或设置各个元素的值。 (5)为CzVector定义两个构造函数,一个根据指定长度对向量进行初始化(向量各元素取默认值0),另一个由指定的数组来构造向量并设置各元素的值。 (6)利用操作符重载来实现向量加法、减法和乘法。这三种运算均要求两个向量的长度相等。设向量α=(a1,a2,…an) ,β=(b1,b2,…bn),那么α+β=(a1+b1,a2+b2,….,an+bn),减法与之类似,而α*β=a1*b1+a2*b2+….+an*bn)。另外,一个向量还可以单独乘以一个系数(向量加法的重载形式),此时,λ*α=(λ*a1, λ*a2,…λ*an) 。以加法操作符重载为例,参考源代码如下: public static CzVector operator +(CzVector v1,CzVector v2) { if(v1.Length!=v2.Length) return null; CzVector result=new CzVector(v1.Length); for(int i=0;i<v1.Length;i++) result [i]=v1[i]+v2[i]; return result; } (7)类似的,利用操作符重载来判断两个向量是否相等。向量相等的条件是:两个向量的长度相等,且各个位置上的对应元素值也相等。 (8)为CzVector定义一个ConsoleOutput方法,用于在控制台一行输出向量的所有元素,其之间以空格分割。 (9)在程序主方法中随机定义几个向量对象,并测试其运算结果。参考源代码如下: static void Main() { CzVector v1=new CzVector(1,-5,9,6); CzVector v2=new CzVector(0,1,2,3); Console.Write(“v1= “); v1.ConsoleOutput(); Console.Write(“v2= “); v2.ConsoleOutput(); CzVector v3=v1+v2; Console.Write(“v1+v2= “); v3.ConsoleOutput(); CzVector v4=v1-v2; Console.Write(“v1-v2= “); v4.ConsoleOutput(); Console.Write(“3*(v1+v2)= “); (v3*3).ConsoleOutput(); Console.Write(“v1*v2= “{0}”,v1*v2); }
在控制系统中,多变量控制器旨在同时控制多个输入和输出变量,以实现更好的系统性能。然而,由于耦合性的存在,多变量控制器的设计可能变得复杂而困难。为了解决这个问题,可以使用反向解耦技术来简化多变量控制器的设计。 反向解耦是一种将多变量控制器分解为一组单变量控制器的方法。首先,通过对系统进行数学建模,可以得到系统的传递矩阵,并通过奇异值分解等方法确定其传递矩阵的逆矩阵。然后,通过将系统输出与逆矩阵相乘,可以得到输入向量的解耦矩阵。最后,将输入向量与解耦矩阵相乘,即可得到解耦的输出向量。 在MATLAB中,可以利用控制系统工具箱中的函数来实现反向解耦多变量控制器。首先,使用tf或ss函数创建系统传递函数或状态空间模型。然后,使用svd函数进行奇异值分解,得到传递矩阵的逆矩阵。接下来,利用matmul函数将逆矩阵与输出向量相乘,得到解耦矩阵。最后,将解耦矩阵与输入向量相乘,即可得到解耦的输出向量。 反向解耦多变量控制器的优点是能够简化控制系统的设计过程,并提高系统的控制性能。通过将多变量控制器拆分为一组单变量控制器,可以更好地对每个输入和输出变量进行控制,避免了耦合带来的影响。同时,MATLAB提供了丰富的控制系统工具,可以方便地实现反向解耦多变量控制器的设计和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值