TuningGoal。跟踪class

包:TuningGoal

控制系统调优的跟踪要求

描述

使用TuningGoal。跟踪指定指定输入和输出之间的频域跟踪要求。此调优目标指定最大相对误差(从参考输入到跟踪误差的增益)作为频率的函数。使用此调优目标通过调优命令进行控制系统调优,例如systunelooptune

您可以通过提供传递函数直接指定最大错误配置文件。或者,您可以指定目标直流误差、峰值误差和响应时间。将这些参数转换为描述频域最大跟踪误差的传递函数:

MaxError PeakError 年代 + ω c DCError 年代 + ω c

在这里,ωc等于2/(响应时间)。下面的图说明了一组示例值的这些关系。

建设

要求的事情= TuningGoal。跟踪(inputnameoutputnameresponsetimedcerrorpeakerror创建一个调优目标要求的事情这限制了跟踪性能inputnameoutputname在频域。此调优目标指定最大错误配置文件作为频率的函数:

MaxError PeakError 年代 + ω c DCError 年代 + ω c

跟踪带宽ωc= 2 /responsetime.最大相对稳态误差由dcerror,peakerror给出了所有频率的峰值相对误差。

通过指定信号名或多个信号名组成的单元格数组,可以指定MIMO跟踪需求inputnameoutputname.对于MIMO跟踪需求,请使用InputScaling属性以帮助限制交叉耦合。看到属性

要求的事情= TuningGoal。跟踪(inputnameoutputnamemaxerror指定最大相对误差作为频率的函数。可以指定目标误差轮廓(从参考信号到跟踪误差信号的最大增益)作为平滑传递函数。或者,您可以使用的朋友模型。

输入参数

inputname

用于调优目标的输入信号,指定为字符向量,或者对于多输入调优目标,指定为字符向量的单元格数组。

  • 如果您正在使用调优目标来调优Simulink万博1manbetx®控制系统的模型,然后inputname可以包括:

    • 任何模型输入。

    • 模型中标记的任何线性分析点。

    • 的任意线性分析点slTuner与Simulink模型相关联的接口。万博1manbetx使用addPoint添加分析点到slTuner接口。使用getPoints控件中可用的分析点列表slTuner接口到您的模型。

    例如,假设slTuner接口包含分析点u1而且u2.使用‘u1’在创建调优目标时指定该点作为输入信号。使用{u1, u2的}指定一个双通道输入。

  • 如果使用调优目标调优广义状态空间(一族)控制系统模型,则inputname可以包括:

    • 的任何输入一族模型

    • 任何AnalysisPoint控制系统模型中的位置

    例如,如果您正在调优一个控制系统模型,T,然后inputname可以是任何输入名称T.InputName.同样,如果T包含一个AnalysisPoint块的位置命名为AP_u,然后inputname可以包括“AP_u”.使用getPoints中可用的分析点的列表一族模型。

    如果inputname是一个AnalysisPoint定位广义模型时,调优目标的输入信号是与AnalysisPoint布洛克:

有关控制系统模型中分析点的更多信息,请参见为控制系统分析和设计标记感兴趣的信号

outputname

用于调优目标的输出信号,指定为字符向量,或者对于多输出调优目标,指定为字符向量的单元格数组。

  • 如果您使用调优目标来调优控制系统的Simulink模型,那么万博1manbetxoutputname可以包括:

    • 任何模型输出。

    • 模型中标记的任何线性分析点。

    • 的任意线性分析点slTuner与Simulink模型相关联的接口。万博1manbetx使用addPoint添加分析点到slTuner接口。使用getPoints控件中可用的分析点列表slTuner接口到您的模型。

    例如,假设slTuner接口包含分析点日元而且y2.使用“日元”在创建调优目标时指定该点作为输出信号。使用{y1, y2的}指定双通道输出。

  • 如果使用调优目标调优广义状态空间(一族)控制系统模型,则outputname可以包括:

    • 的任何输出一族模型

    • 任何AnalysisPoint控制系统模型中的位置

    例如,如果您正在调优一个控制系统模型,T,然后outputname中的任何输出名称都可以吗T.OutputName.同样,如果T包含一个AnalysisPoint块的位置命名为AP_u,然后outputname可以包括“AP_u”.使用getPoints中可用的分析点的列表一族模型。

    如果outputname是一个AnalysisPoint定位广义模型时,调优目标的输出信号是与AnalysisPoint布洛克:

有关控制系统模型中分析点的更多信息,请参见为控制系统分析和设计标记感兴趣的信号

responsetime

目标响应时间,指定为正标量值。跟踪带宽由ωc= 2 /responsetime用待调模型的时间单位表示目标响应时间。例如,在调优模型时T,如果T.TimeUnit“分钟”,则以分钟为单位表示目标响应时间。

dcerror

最大稳态分数跟踪误差,指定为正标量值。例如,dcerror= 0.01设置最大稳态误差为1%。

如果inputnameoutputname向量值,dcerror的所有I/O对inputnameoutputname

默认值:0.001

peakerror

所有频率上的最大分数跟踪误差,指定为大于1的正标量值。

默认值:1

maxerror

目标跟踪误差配置为频率的函数,指定为SISO数值LTI模型。

maxerror从参考信号到跟踪误差信号的最大增益。你可以指定maxerror作为平滑传递函数(特遣部队zpk,或党卫军模型)。或者,您可以使用的朋友模型。当您这样做时,软件自动将错误配置文件映射到zpk模型。的规模zpk模型近似于期望的误差轮廓。使用显示(要求)的大小zpk模型。

maxerror必须是SISO LTI型号。如果inputnameoutputname是单元格数组,maxerror的所有I/O对inputnameoutputname

如果您是在离散时间调优(也就是说,使用一族模型或slTuner非零接口Ts),您可以指定maxerror作为一个离散时间模型Ts.如果你指定maxerror在连续时间下,调优软件将其离散化。在离散时间中指定错误轮廓可以更好地控制奈奎斯特频率附近的错误轮廓。

属性

MaxError

最大误差是频率的函数,用SISO表示zpk模型。该属性将最大跟踪误差存储为频率的函数(从参考信号到跟踪误差信号的最大增益)。

如果你使用语法Req = TuningGoal.Tracking(inputname,outputname,maxerror),然后MaxError财产是zpk您提供的LTI模型的等价或近似maxerror输入参数。

如果你使用语法Req = TuningGoal.Tracking(inputname,outputname,resptime,dcerror,peakerror),然后MaxError是一个zpk传递函数为:

MaxError PeakError 年代 + ω c DCError 年代 + ω c

MaxError是一个SISO LTI模型。如果inputnameoutputname是单元格数组,MaxError的所有I/O对inputnameoutputname

使用显示(要求)的大小MaxError

焦点

执行调优目标的频带,指定为形式的行向量(最小,最大)

设置焦点属性将调优目标的执行限制在特定频带。用正在调优的控制系统模型的频率单位表示这个值(rad/TimeUnit).例如,假设要求的事情是您希望仅在1到100 rad/s之间应用的调优目标。要将调优目标限制在此波段,使用以下命令:

要求的事情。Focus = [1,100];

默认值:[0,正]对于连续时间;[0,π/ Ts]对于离散时间,其中Ts为模型采样时间。

InputScaling

参考信号缩放,指定为正实值的向量。

对于MIMO跟踪需求,当单位的选择导致在不同的响应通道中出现大小信号的混合时,使用此属性指定向量值阶跃输入中每个条目的相对振幅。该信息用于将传递函数中的非对角线项从参考到跟踪误差进行缩放。这种缩放确保了交叉耦合的测量相对于每个参考信号的幅值。

例如,假设这样要求的事情调优目标是信号吗{y1, y2的}跟踪参考信号{r1, r2的}.进一步假设您要求输出以低于10%的交叉耦合跟踪引用。如果r1而且r2有可比性的振幅,那么是否足以保持收益从r1y2而且r2而且日元低于0.1。然而,如果r1比?大100倍r2的收益。r1y2必须小于0.001才能确保r1变化y2不足10%的r2目标。要确保此结果,请设置InputScaling属性如下。

要求的事情。我nputScaling = [100,1];

这告诉软件考虑到第一个参考信号比第二个参考信号大100倍。

默认值为,[],表示没有缩放。

默认值:[]

输入

引用信号名,指定为字符向量或字符向量的单元格数组,指定要跟踪的信号的名称,由inputname论点。

输出

控件填充的输出信号名称,指定为字符向量或字符向量的单元格数组,指定必须跟踪参考信号的信号的名称outputname论点。

模型

将调优目标应用到的模型,指定为索引向量。

使用模型属性在调优控制系统模型数组时使用的systune,以强制数组中模型的一个子集的调优目标。例如,假设您想应用调优目标,要求的事情,到传递给的模型数组中的第二个、第三个和第四个模型systune.要限制调优目标的执行,可以使用以下命令:

要求的事情。模型= 2:4;

模型= NaN,调优目标适用于所有模型。

默认值:

开口

在评估调优目标时打开的反馈循环,指定为标识循环打开位置的字符向量的单元格数组。根据在您确定的位置打开反馈循环创建的开环配置来评估调优目标。

如果您使用调优目标来调优控制系统的Simulink模型,那么万博1manbetx开口可以包括模型中标记的任何线性分析点,或模型中的任何线性分析点slTuner与Simulink模型相关联的接口。万博1manbetx使用addPoint将分析点和循环开口添加到slTuner接口。使用getPoints控件中可用的分析点列表slTuner接口到您的模型。

如果使用调优目标调优广义状态空间(一族)控制系统模型,则开口可以包括任何AnalysisPoint控制系统模型中的位置。使用getPoints中可用的分析点列表一族模型。

例如,如果开口= {'u1','u2'},然后在分析点打开循环的情况下评估调优目标u1而且u2

默认值:{}

的名字

调优目标的名称,指定为字符向量。

例如,如果要求的事情是一个调优目标:

要求的事情。的名字='LoopReq';

默认值:[]

例子

具有响应时间和最大稳态跟踪误差的跟踪目标

创建一个跟踪目标,指定一个信号“θ”追踪信号“theta_ref”.所需的响应时间是2,以您所调优的控制系统的时间单位为单位。最大稳态误差为0.1%。

Req = TuningGoal.Tracking('theta_ref','theta',2,0.001);

peakerror未指定时,此调优目标使用默认值1。

最大跟踪误差随频率变化的跟踪目标

创建一个跟踪目标,指定一个信号“θ”追踪信号“theta_ref”.在[0,1]频率范围内,最大相对误差为0.01(1%)。在频率100时,相对误差增加到1(100%)。

使用一个的朋友模型以指定误差剖面作为频率的函数。

Err = frd([0.01 0.01 1],[0 1 100]);Req = TuningGoal。跟踪(“theta_ref”“θ”,错);

软件转换犯错变成一个平滑的频率函数,近似于分段指定的轮廓。使用以下命令显示此函数viewGoal

viewGoal(要求)

虚线是目标错误配置文件存储在MaxError,阴影区域表示违反调优目标的位置。

提示

  • 这个调优目标对闭环传递函数施加了一个隐式的稳定性约束输入输出中确定的点打开循环进行计算开口.受这种隐含约束影响的动态是稳定的动力学对于这个调优目标。的MinDecay而且MaxRadius选项的systuneOptions控制这些隐式约束动力学的边界。如果优化无法满足默认边界,或者默认边界与其他需求冲突,则使用systuneOptions更改这些默认值。

算法

控件调优控制系统时TuningGoal,软件将调优目标转换为规范化标量值fx),x是控制系统中自由(可调)参数的向量。然后,该软件调整参数值以最小化fx)或开车fx)小于1,如果调优目标是一个硬约束。

TuningGoal。跟踪fx)由:

f x W F 年代 T 年代 x

或者它的离散时间等价物。在这里,T年代x的闭环传递函数输入输出, 表示H规范(见getPeakGain).WF是从您在调优目标中指定的错误配置文件派生的频率加权函数。的收益WF而且1 / MaxError大致匹配增益值在-20 dB到60 dB之间。由于数值原因,加权函数在这个范围之外趋于平稳,除非你指定一个参考模型在这个范围之外改变斜率。这种调整叫做正则化.因为极点WF接近年代= 0或年代可能导致较差的数值条件systune优化问题,不建议指定非常低频或非常高频动态的误差分布。

获得WF使用:

WF = getWeight(Req,Ts)

在哪里要求的事情是调优目标,和Ts是进行调优的样本时间(Ts = 0对于连续时间)。有关正则化及其效果的更多信息,请参见可视化调优目标

兼容性的考虑

全部展开

在R2016a中,行为发生了变化

在R2016a中介绍