主要内容

灵敏度

计算性能指标及其灵敏度的值的对角权重MPC控制器

描述

例子

(J,sens)=灵敏度(mpcobj,PerfFcn,PerfWeights,Ns,r,v,SimOptions,utarget)计算的值J和敏感sens的预定义的闭环,累积性能指标对MPC控制器对象中定义的对角权重mpcobj。你选择了性能指标的形状,可用的选项,使用PerfFcn。可选参数PerfWeights,Ns,r,v,SimOptions,utarget指定的性能指标权重、模拟点,参考和干扰信号,模拟选项,分别和操纵变量的目标。如果您省略这些参数,然后使用默认值。

例子

(J,sens)=灵敏度(mpcobj,customPerFcn,Par1,…, ParN)计算的值J和敏感sens自定义函数中定义的性能指标customPerFcn关于对角线MPC控制器对象中定义权重mpcobj。其余的输入参数Par1 Par2,…, ParN指定所需的参数的值customPerFnc

例子

全部折叠

修复了再现性的随机数生成器的种子。

rng (0)

定义一个三阶植物模型与三个操纵变量和两个控制输出。然后创建一个MPC控制器的工厂,样品的时间1

工厂= rss (3、2、3);工厂。D = 0;mpcobj = mpc(工厂,1);
- - >“PredictionHorizon”是空的。假设默认10。- - >“ControlHorizon”是空的。假设默认2。- - >“权重。ManipulatedVariables”是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”是空的。假设默认的0.10000。 -->"Weights.OutputVariables" is empty. Assuming default 1.00000.

指定一个积分绝对误差性能函数和权重设置性能。性能权重强调跟踪第一个输出变量。

PerfFunc =“接到”;PerfWts。OutputVariables = 0.5 [2];PerfWts。ManipulatedVariables = 0 (1、3);PerfWts。ManipulatedVariablesRate = 0 (1、3);

定义一个20.第二与单位阶跃仿真场景选点第一输出和零作为第二个输出的定位点。

Tstop = 20;r = 0 [1];

计算闭环性能指标,J,它的敏感性,sens中定义的重量mpcobj,为指定的模拟场景。对于这个示例,不指定的最后三个输入参数灵敏度。这意味着没有干扰信号或模拟选项是使用和操纵变量保存的标称值的默认值为零。

[J, sens] =灵敏度(mpcobj、PerfFunc PerfWts, Tstop, r)
- - >将模型转换为离散时间。- - >输出假设干扰# 1添加到测量输出集成的白噪声。- - >输出假设扰动添加到# 2集成白噪声测量输出。- - >”模型。Noise" is empty. Assuming white noise on each measured output.
J = 2.2977
sens =结构体字段:OutputVariables: [-0.1897 - -0.0894] ManipulatedVariables: [0.0311 0.0826 0.0014] ManipulatedVariablesRate: 0.0149 (0.4268 - 2.3482)

积极和相对较高的,值的敏感性的第一个和最后一个操纵变量中定义表明,减少相应的权重mpcobj最有助于减少吗管理学院性能指标定义为PerfWts。在同一时间,因为第二个操纵变量的灵敏度的重量是负的,增加相应的重量也会有助于降低性能指标。

修改的操纵变量率权重mpcobj和重新计算性能指标的价值。

mpcobj.Weights。ManipulatedVariablesRate =[1依照1 1依照];灵敏度(mpcobj PerfFunc、PerfWts Tstop, r)
- - >将模型转换为离散时间。- - >输出假设干扰# 1添加到测量输出集成的白噪声。- - >输出假设扰动添加到# 2集成白噪声测量输出。- - >”模型。Noise" is empty. Assuming white noise on each measured output.
ans = 2.0116

预期性能指标的价值下降,表明改进的跟踪性能。

定义一个三阶植物模型与三个操纵变量和两个控制输出。然后创建一个MPC控制器的工厂,样品的时间1

工厂= rss (3、2、3);工厂。D = 0;mpcobj = mpc(工厂,1);
- - >“PredictionHorizon”是空的。假设默认10。- - >“ControlHorizon”是空的。假设默认2。- - >“权重。ManipulatedVariables”是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”是空的。假设默认的0.10000。 -->"Weights.OutputVariables" is empty. Assuming default 1.00000.

定义一个自定义性能函数并将它写入一个文件。函数必须采取一个MPC对象作为输入参数。仿真时间和输出设定值是第二个和第三个输入参数,分别。在内部,使用给定的函数执行闭环模拟MPC对象,仿真时间和设置点。规范的区别设置点和输出信号然后返回的值性能指标(注意这标准取决于仿真步骤的数目)。

%编写一个函数来char向量“str”str = ['函数J = mypfun (mpcobj T ySetPnt) ',换行符,“y = sim (mpcobj T ySetPnt);J =规范(ySetPnt-y);”,换行符,“结束”];%创建函数文件fid = fopen (“mypfun.m”,' w ');%写作打开一个文件写入文件(fid, str,“字符”);%编写“str”文件文件关闭(fid);%关闭文件

计算自定义性能指标,J,它的敏感性,sens中定义的重量mpcobj,用一个模拟的时间10秒,一个输出选点[11]。

[J, sens] =灵敏度(mpcobj“mypfun”10 [1])
- - >将模型转换为离散时间。- - >输出假设干扰# 1添加到测量输出集成的白噪声。- - >输出假设扰动添加到# 2集成白噪声测量输出。- - >”模型。Noise" is empty. Assuming white noise on each measured output.
J = 1.5145
sens =结构体字段:OutputVariables: [-0.0507 - -0.0888] ManipulatedVariables: [0.0013 0.0055 3.7530 e-05] ManipulatedVariablesRate: 0.0034 (0.1918 - 1.2004)

相对较高的值敏感的被控变量率表明减少中定义的相应的权重mpcobj将最有助于减少自定义性能指标计算的函数mypfun

输入参数

全部折叠

模型预测控制器,指定为一个MPC控制器对象。创建一个MPC控制器,使用货币政策委员会

性能指标函数形状,指定为以下之一:

  • “伊势”(积分平方误差)的性能指标

    J = = 1 N 年代 ( j = 1 n y ( w j y e y j ) 2 + j = 1 n u ( ( w j u e u j ) 2 + ( w j Δ u Δ u j ) 2 ] )

  • “接到”(绝对误差积分)的性能指标

    J = = 1 N 年代 ( j = 1 n y | w j y e y j | + j = 1 n u ( | w j u e u j | + | w j Δ u Δ u j | ) )

  • “ITSE”(时间加权平方误差积分)的性能指标

    J = = 1 N 年代 Δ t ( j = 1 n y ( w j y e y j ) 2 + j = 1 n u ( ( w j u e u j ) 2 + ( w j Δ u Δ u j ) 2 ] )

  • “ITAE”(时间加权绝对误差的积分)的性能指标

    J = = 1 N 年代 Δ t ( j = 1 n y | w j y e y j | + j = 1 n u ( | w j u e u j | + | w j Δ u Δ u j | ) )

在这些表达式,ny控制输出的数量和吗nu是操纵变量的数量eyij输出之间的区别是j和它的定位点在时间间隔(或引用)值,euij被控变量之间的差异吗j和它的目标在时间间隔

w性能参数非负权重定义的结构PerfWeights

例子:“ITAE”

性能权重函数w,指定为一个结构有以下字段:

  • OutputVariables- - - - - -ny元包含的行向量 w j y

  • ManipulatedVariables- - - - - -nu元包含的行向量 w j u

  • ManipulatedVariablesRate- - - - - -nu元包含的行向量 w j Δ u

如果PerfWeights是空的或不明,它默认为相应的权重mpcobj

请注意

性能指标不相关二次成本函数,MPC控制器试图最小化通过选择操纵变量的值。

一个明显的区别是基于一个性能指标闭环模拟运行,直到时间比预测地平线,通常是不同的,而MPC控制器计算最小化其内部的移动预测地平线和成本函数开环时尚。此外,即使伊势的性能指数选择类型,其权重应该平方MPC成本函数中定义的重量相匹配。

因此,控制器的性能重量和使用有不同的目的;定义这些相应的权重。

数量的模拟点,包括零,指定为一个正整数。的模拟运行Ns-1之间的步骤,0Ts * (Ns-1)

如果您省略Ns,默认值是下列哪个数组的行数的最大行数:

  • 输入参数r

  • 输入参数v

  • UnmeasuredDisturbance的属性SimOptions如果指定的

  • OutputNoise的属性SimOptions如果指定的

  • 预测地平线之间的最大价值mpcobj.P10

例子:20.

参考信号,指定为一个数组。这个数组纽约列,纽约是总数量的输出(测量和无边无际的)工厂。r可以从1到地方吗Ns行。如果小于的行数Ns失踪的行设置等于最后一行。

如果Ns是空的或不明,它默认为名义的输出向量mpcobj.Model.Nominal.Y

例子:3(20日)

测量输入扰动信号,指定为一个数组。这个数组nv列,nv是测量的数量输入扰动。v可以从1到地方吗Ns行。如果小于的行数Ns失踪的行设置等于最后一行。

如果v是空的或不明,它默认的名义价值测量输入扰动,mpcobj.Model.Nominal.U (md),在那里医学博士是向量包含指数的测量干扰信号,所定义的setmpcsignals

例子:[0 (50,1),1 (50,1)]

使用模拟选项对象指定选项,例如噪音和干扰信号反馈到工厂,但不知道控制器。您还可以使用该对象指定一个开环情况下,或植物模型在不同的循环mpcobj.Model.Plant

有关更多信息,请参见mpcsimopt

可选的输入utarget是一个向量的nu被控变量的目标。他们的违约的名义值操纵变量。

例子:(0.1;0;-0.2)

自定义性能函数的名称,指定为一个特征向量。特征向量必须不同“伊势”,“接到”,“ITSE”,或“ITAE”,并在MATLAB中指定一个文件的名称®路径中包含一个自定义函数。

自定义函数必须有以下签名:

J= customPerFcn (mpcobj,Par1,…, ParN)

在哪里J是一个标量指示性能指标的价值mpcobj是一个货币政策委员会对象。其余的参数Par1,…, ParN参数,如果需要吗customPerFcn,你必须通过灵敏度customPerFcn论点。

例如,在customPerFcn,你可以使用mpcobj如果需要的话,Par1,…, ParN执行模拟和计算J基于仿真结果。

例子:“myPerfFcn (mpcobj, Ts,选点)”

自定义性能函数使用的参数的值customPerFcn根据需要,指定。

例子:10日,[1]

输出参数

全部折叠

根据PerfFcn论点,这种性能指标可以是一个函数的积分(时间)广场或绝对值或输出和输入错误。看到PerfFcn更多的细节。

这个结构包含和性能测量的数值偏导数J就其对角线权重。这些偏导数,也叫敏感性重量,建议调整,应该提高性能;也就是说,减少J

版本历史

介绍了R2009a