主要内容

极值寻求控制

实时计算控制器参数的目标函数最大化

  • 库:
  • 金宝app仿真软件控制设计

  • 极值寻求控制块

描述

的<年代pan class="block">极值寻求控制块曲调控制器参数最大化目标函数。极值寻找有用的控制器是模范自由自适应控制器适应未知系统动力学和未知从控制参数映射到一个目标函数。当寻求多个参数,<年代pan class="block">极值寻求控制为每个参数块使用一个单独的调谐回路。

的<年代pan class="block">极值寻求控制块搜索最优控制参数的调节(扰动)与正弦信号和解调结果的参数摄动目标函数。

极值寻求控制图显示高通滤波器,解调,低通滤波器,参数更新和调制阶段。

配置极值寻找算法,设置适当的迫使频率解调和调制信号,学习速度,初始条件和参数。当配置,确保系统动力学在最快的时间尺度,扰动强迫频率中时间尺度,和滤波器截止频率慢的时间尺度。

您可以实现连续时间和离散时间极值寻找控制器。控制器的时域变化影响的时域高通滤波器、低通滤波器,和集成商用于调优循环。生成hardware-deployable代码<年代pan class="block">极值寻求控制块,用离散时间控制器。

有关更多信息,请参见极值寻求控制

港口

输入

全部展开

控制系统的目标函数扰动的系统响应的摄动参数<年代trong class="guilabel">θ。计算参数更新,阻塞过滤器和解调<年代trong class="guilabel">J

输出

全部展开

应用这些摄动参数(θ)你的控制系统。块使用目标函数产生的扰动<年代trong class="guilabel">J计算参数更新。

如果<年代trong class="guilabel">参数的数量1,<年代trong class="guilabel">θ输出一个标量信号。否则,<年代trong class="guilabel">θ输出向量信号长度<年代trong class="guilabel">参数的数量

使用这个输出端口获得估计参数值(<年代pan class="inlineequation"> θ ^ )前摄动的调制信号。

如果<年代trong class="guilabel">参数的数量1,<年代trong class="guilabel">theta_hat输出一个标量信号。否则,<年代trong class="guilabel">theta_hat输出向量信号长度<年代trong class="guilabel">参数的数量

依赖关系

要启用这个输出端口,选择<年代trong class="guilabel">输出估计参数

参数

全部展开

指定的时域高通滤波器、低通滤波器,和集成商。

  • 连续时间——使用连续时间过滤器和集成商。

  • 离散时间——使用离散时间过滤器和集成商。使用指定样品时间<年代trong class="guilabel">样品时间参数,并指定使用的集成方法<年代trong class="guilabel">积分法参数。

编程使用

块参数:“timeDomainStatus”
类型:特征向量
价值观:连续时间的|离散时间的
默认值:连续时间的

指定的样品时间离散高通滤波器,低通滤波器和集成商。

当优化多个参数,优化循环使用相同的样本。

依赖关系

要启用该参数,设置<年代trong class="guilabel">时间域财产<年代trong class="guilabel">离散时间

编程使用

块参数:“SampleTime”
类型:特征向量
价值观:有限积极标量
默认值:“0.1”

您可以选择以下之一为离散时间集成商集成方法。

  • 向前欧拉:

    y ( n ) = y ( n 1 ) + T 年代 u ( n 1 )

  • 向后欧拉:

    y ( n ) = y ( n 1 ) + T 年代 u ( n )

  • 梯形:

    y ( n ) = y ( n 1 ) + T 年代 ( u ( n ) + u ( n 1 ) ] / 2

在这里:

  • y积分器的输出

  • u是输入

  • n是当前样本的时间吗

  • T<年代ub>年代样品时间

优化多个参数时,集成商在所有优化循环使用相同的集成方法。

依赖关系

要启用该参数,设置<年代trong class="guilabel">时间域财产<年代trong class="guilabel">离散时间

编程使用

块参数:“IntegratorMethods”
类型:特征向量
价值观:“向前欧拉”|“向后欧拉”|“梯形”
默认值:“向前欧拉”

您可以同时调整五参数。块使用单独为每个参数调谐回路。

编程使用

块参数:“paramCount”
类型:特征向量
价值观:正整数小于5
默认值:' 1 '

初始参数值,对应参数的初始条件更新集成商。

如果<年代trong class="guilabel">参数的数量1,指定<年代trong class="guilabel">初始条件作为一个有限的标量。

为多个参数指定不同的初始条件,指定<年代trong class="guilabel">初始条件作为一个向量的长度等于有限值<年代trong class="guilabel">参数的数量。否则,为所有参数指定相同的初始条件,指定<年代trong class="guilabel">初始条件作为一个有限的标量。

编程使用

块参数:“initialVal”
类型:特征向量
价值观:有限的标量|向量
默认值:' 0 '

指定的频率调制和解调信号弧度每秒。对于一个给定的参数优化循环,指定一个迫使频率的频率低于重要的系统动力学和高于高通和低通滤波器截止频率。

当调优一个参数,指定<年代trong class="guilabel">迫使频率作为一个积极的有限的标量。

当调优多个参数,指定<年代trong class="guilabel">迫使频率作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。每个迫使频率必须是唯一的,它允许extremum-seeking算法的收敛性。

编程使用

块参数:“ω”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 1 '

学习速率是控制速度的增益系数块更新参数。

当调优一个参数,指定<年代trong class="guilabel">学习速率作为一个积极的有限的标量。

优化多个参数时,您可以指定一个不同的学习速率参数调优循环。为此,指定<年代trong class="guilabel">学习速率作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,为所有指定相同的学习速率调整循环,指定<年代trong class="guilabel">学习速率作为一个积极的有限的标量。

编程使用

块参数:“获得”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 1 '

指定用于解调信号的振幅目标函数。对于大多数应用程序,指定<年代trong class="guilabel">解调振幅≫<年代trong class="guilabel">调制振幅。这些振幅的产物,随着学习速率,控制算法的收敛速度。

当调优一个参数,指定<年代trong class="guilabel">解调振幅作为一个积极的有限的标量。

当优化多个参数,您可以为每个参数指定一个不同的解调振幅调谐回路。为此,指定<年代trong class="guilabel">解调振幅作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的振幅调谐回路,指定<年代trong class="guilabel">解调振幅作为一个积极的有限的标量。

编程使用

块参数:“demodAmp”
类型:特征向量
默认值:' 1 '

指定阶段ϕ1的信号解调弧度的目标函数。

当调优一个参数,指定<年代trong class="guilabel">解调相位作为一个积极的有限的标量。

当优化多个参数,您可以为每个参数指定一个不同的解调相位调谐回路。为此,指定<年代trong class="guilabel">解调相位作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的相位调谐回路,指定<年代trong class="guilabel">解调相位作为一个积极的有限的标量。

解调和调制阶段必须满足的条件<年代pan class="inlineequation">cos (ϕ1- - - - - -ϕ2)> 0

编程使用

块参数:“demodPhase”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 0 '

扰动信号的幅值添加到估计参数。对于大多数应用程序,指定<年代trong class="guilabel">调制振幅≪<年代trong class="guilabel">解调振幅。这些振幅的产物,随着学习速率,控制算法的收敛速度。

当调优一个参数,指定<年代trong class="guilabel">调制振幅作为一个积极的有限的标量。

当优化多个参数,您可以为每个参数指定一个不同的调制振幅调谐回路。为此,指定<年代trong class="guilabel">调制振幅作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的振幅调谐回路,指定<年代trong class="guilabel">调制振幅作为一个积极的有限的标量。

编程使用

块参数:“modAmp”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:“0.1”

阶段ϕ2扰动信号的估计参数,指定的弧度。你必须选择解调相位ϕ1和调制阶段ϕ2这样<年代pan class="inlineequation">cos (ϕ1- - - - - -ϕ2)> 0

当调优一个参数,指定<年代trong class="guilabel">调制阶段作为一个积极的有限的标量。

优化多个参数时,您可以指定一个不同的调制为每个参数调优阶段循环。为此,指定<年代trong class="guilabel">调制阶段作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的相位调谐回路,指定<年代trong class="guilabel">调制阶段作为一个积极的有限的标量。

编程使用

块参数:“modPhase”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 0 '

选择这个参数来启用一个高通滤波器,从目标函数中删除任何信号偏差信号解调前阶段。指定滤波器截止频率,使用<年代trong class="guilabel">高通滤波器的频率参数。

编程使用

块参数:“highPassEnable”
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

截止频率ω<年代ub>h中指定高通滤波的目标函数信号,弧度每秒。对于一个给定的参数优化循环,指定一个截止频率等<年代pan class="inlineequation">ω<年代ub>h<ω/ (2π),在那里ω是相应的频率。

当调优一个参数,指定<年代trong class="guilabel">高通滤波器的频率作为一个积极的有限的标量。

当优化多个参数,您可以为每个参数指定一个不同的频率调谐回路。为此,指定<年代trong class="guilabel">高通滤波器的频率作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的频率调谐回路,指定<年代trong class="guilabel">高通滤波器的频率作为一个积极的有限的标量。

依赖关系

要启用该参数,选择<年代trong class="guilabel">使高通滤波器参数。

编程使用

块参数:“highPassCutoff”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 1 '

选择这个参数来启用一个低通滤波器去除高频组件参数更新前的解调信号阶段。指定滤波器截止频率,使用<年代trong class="guilabel">通滤波器频率参数。

依赖关系

要启用该参数,选择<年代trong class="guilabel">使滤波器参数。

编程使用

块参数:“lowPassEnable”
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

截止频率ω<年代ub>l低通滤波解调信号,指定的弧度每秒。对于一个给定的参数优化循环,指定一个截止频率等<年代pan class="inlineequation">ω<年代ub>l>ω/ (2π),在那里ω是相应的频率。

当调优一个参数,指定<年代trong class="guilabel">通滤波器频率作为一个积极的有限的标量。

当优化多个参数,您可以为每个参数指定一个不同的频率调谐回路。为此,指定<年代trong class="guilabel">通滤波器频率作为一个向量的长度等于积极有限值<年代trong class="guilabel">参数的数量。否则,指定相同的频率调谐回路,指定<年代trong class="guilabel">通滤波器频率作为一个积极的有限的标量。

依赖关系

要启用该参数,选择<年代trong class="guilabel">使滤波器参数。

编程使用

块参数:“lowPassCutoff”
类型:特征向量
价值观:积极的有限的标量|向量
默认值:' 1 '

选择要添加这个参数<年代trong class="guilabel">theta_hat输出端口。

编程使用

块参数:estimatedVarOn
类型:特征向量
价值观:“关闭”|“上”
默认值:“关闭”

扩展功能

版本历史

介绍了R2021a

另请参阅