灵敏度
计算性能指标及其灵敏度的值的对角权重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
秒,一个输出选点[1
1
]。
[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
。
输入参数
mpcobj
- - - - - -模型预测控制器
货币政策委员会
对象
模型预测控制器,指定为一个MPC控制器对象。创建一个MPC控制器,使用货币政策委员会
。
PerfFcn
- - - - - -性能指标函数的形状
“伊势”
|“接到”
|“ITSE”
|“ITAE”
性能指标函数形状,指定为以下之一:
“伊势”
(积分平方误差)的性能指标“接到”
(绝对误差积分)的性能指标“ITSE”
(时间加权平方误差积分)的性能指标“ITAE”
(时间加权绝对误差的积分)的性能指标
在这些表达式,ny控制输出的数量和吗nu是操纵变量的数量eyij输出之间的区别是j和它的定位点在时间间隔(或引用)值我,euij被控变量之间的差异吗j和它的目标在时间间隔我。
的w性能参数非负权重定义的结构PerfWeights
。
例子:“ITAE”
PerfWeights
- - - - - -性能权重函数
mpcobj.Weights
(默认)|结构
性能权重函数w,指定为一个结构有以下字段:
OutputVariables
- - - - - -ny元包含的行向量 值ManipulatedVariables
- - - - - -nu元包含的行向量 值ManipulatedVariablesRate
- - - - - -nu元包含的行向量 值
如果PerfWeights
是空的或不明,它默认为相应的权重mpcobj
。
请注意
性能指标不相关二次成本函数,MPC控制器试图最小化通过选择操纵变量的值。
一个明显的区别是基于一个性能指标闭环模拟运行,直到时间比预测地平线,通常是不同的,而MPC控制器计算最小化其内部的移动预测地平线和成本函数开环时尚。此外,即使伊势的性能指数选择类型,其权重应该平方MPC成本函数中定义的重量相匹配。
因此,控制器的性能重量和使用有不同的目的;定义这些相应的权重。
r
- - - - - -参考信号
mpcobj.Model.Nominal.Y
(默认)|双
数组
参考信号,指定为一个数组。这个数组纽约
列,纽约
是总数量的输出(测量和无边无际的)工厂。r
可以从1到地方吗Ns
行。如果小于的行数Ns
失踪的行设置等于最后一行。
如果Ns是空的或不明,它默认为名义的输出向量mpcobj.Model.Nominal.Y
。
例子:3(20日)
v
- - - - - -测量输入扰动信号
mpcobj.Model.Nominal.U (md)
(默认)|双
数组
测量输入扰动信号,指定为一个数组。这个数组nv
列,nv
是测量的数量输入扰动。v
可以从1到地方吗Ns
行。如果小于的行数Ns
失踪的行设置等于最后一行。
如果v
是空的或不明,它默认的名义价值测量输入扰动,mpcobj.Model.Nominal.U (md)
,在那里医学博士
是向量包含指数的测量干扰信号,所定义的setmpcsignals
。
例子:[0 (50,1),1 (50,1)]
SimOptions
- - - - - -模拟选择对象
[]
(默认)|mpcsimopt
对象
使用模拟选项对象指定选项,例如噪音和干扰信号反馈到工厂,但不知道控制器。您还可以使用该对象指定一个开环情况下,或植物模型在不同的循环mpcobj.Model.Plant
。
有关更多信息,请参见mpcsimopt
。
utarget
- - - - - -目标被操纵的变量
mpcobj.Model.Nominal.U
(默认)|向量
可选的输入utarget
是一个向量的nu被控变量的目标。他们的违约的名义值操纵变量。
例子:(0.1;0;-0.2)
customPerFcn
- - - - - -自定义性能函数的名称
特征向量
自定义性能函数的名称,指定为一个特征向量。特征向量必须不同“伊势”
,“接到”
,“ITSE”
,或“ITAE”
,并在MATLAB中指定一个文件的名称®路径中包含一个自定义函数。
自定义函数必须有以下签名:
J
= customPerFcn (mpcobj
,Par1,…, ParN
)
在哪里J
是一个标量指示性能指标的价值mpcobj
是一个货币政策委员会
对象。其余的参数Par1,…, ParN
参数,如果需要吗customPerFcn
,你必须通过灵敏度
后customPerFcn
论点。
例如,在customPerFcn
,你可以使用mpcobj
如果需要的话,Par1,…, ParN
执行模拟和计算J
基于仿真结果。
例子:“myPerfFcn (mpcobj, Ts,选点)”
Par1,…, ParN
- - - - - -自定义性能函数使用的参数的值
任何需要的参数值
自定义性能函数使用的参数的值customPerFcn
根据需要,指定。
例子:10日,[1]
输出参数
版本历史
介绍了R2009a
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。