idnlarx / findop
计算非线性ARX模型的工作点
语法
描述
[
返回操作点状态值,X
,U
) = findop (sys
“稳定”,InputLevel
,OutputLevel
)X
,和输入值,U
,idnlarx
模型中,sys
,使用稳态输入和输出规格。
例子
使用默认规范寻找稳态非线性ARX工作点
估计一个非线性ARX模型。
负载iddata6;M = nlarx(z6,[4 3 1]);
找出输入电平固定的稳态工作点1
输出是未知的。
[X, U] = findop (M,“稳定”1、南);
利用附加规范求非线性ARX操作点
估计一个非线性ARX模型。
负载iddata7;M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);
创建一个默认的操作点规范对象。
规范= operspec (M);
设置输入信号的值。
spec.Input.Value (1) = 1;spec.Input.Value (2) = 1;
设置输出信号的最大值和最小值。
spec.Output.Max = 10;spec.Output.Min = -10;
用给定的规格求出稳态工作点。
[X, U] = findop (M,规范);
使用自定义选项查找非线性ARX操作点
估计一个非线性ARX模型。
负载iddata6;M = nlarx(z6,[4 3 2]);
创建一个默认的findopOptions
选项设置。
选择= findopOptions (M);
修改选项集,以指定一个最大迭代次数为50次的最陡下降梯度搜索方法。
opt.SearchMethod =“研究生”;opt.SearchOptions.MaxIterations = 50;
使用指定的选项查找稳态工作点。
[X, U] = findop (M,“稳定”1 1、选择);
检索非线性ARX操作点搜索报告
估计一个非线性ARX模型。
负载iddata7;M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);
找出输入1设置为的稳态工作点1
输入2是不受限制的。对输出值的初始猜测是2
。
[X, U R] = findop (M,“稳定”[1南]2);
显示汇总报告。
disp (R);
WhyStop:“接近(本地)最小值,(norm(g) < tol)。”迭代:9 FinalCost: 0 FirstOrderOptimality: 0 SignalLevels: [1x1 struct]
使用默认初始状态查找非线性ARX模拟快照
加载估计数据,估计一个非线性ARX模型。
负载twotankdata;z = iddata (y, u, 1);M = nlarx(z,[4 3 1]);
假设初始状态为零,在10秒后找到模拟快照。
[X, U] = findop (M,“快照”10 z);
使用初始状态规范查找非线性ARX模拟快照
加载估计数据,估计一个非线性ARX模型。
负载twotankdata;z = iddata (y, u, 1);M = nlarx(z,[4 3 1]);
创建一个初始状态向量。前四种状态对应延迟输出值,后三种状态对应延迟输入。
X0 =[2; 2; 2; 2、5、5、5];
使用指定的初始状态在10秒后找到模拟快照。
[X, U] = findop (M,“快照”10 z X0);
输入参数
sys
- - - - - -非线性ARX模型
idnlarx
对象
非线性ARX模型,指定为idnlarx
对象。
InputLevel
- - - - - -稳态输入电平
向量
用于计算工作点的稳态输入电平,指定为矢量。的长度InputLevel
必须等于?中指定的输入数sys
。
优化算法假设有限值InputLevel
是固定的输入值。使用南
的初始猜测来指定未知的输入信号0
。所有输入的最小和最大边界的默认值为负
而且+正
分别。
OutputLevel
- - - - - -稳态输出电平
向量
用于计算工作点的稳态输出电平,指定为矢量。的长度OutputLevel
必须等于?中指定的输出数量sys
。
中的值OutputLevel
指出优化算法的初始猜测。使用南
指定具有初始猜测的未知输出信号0
。所有输出的最小和最大边界的默认值为负
而且+正
分别。
规范
- - - - - -操作点规范
operspec
对象
操作点规范,例如最小和最大输入/输出约束和已知输入,指定为operspec
对象。
T
- - - - - -工作点快照时间
积极的标量
操作点快照时间,指定为正标量。的价值T
必须在[T0,N*T年代),N是输入样本的个数,T年代样品时间和T0输入开始时间(印尼。Tstart
).
印尼
- - - - - -快照模拟输入
iddata
对象|矩阵
快照模拟输入,指定为以下之一:
时域
iddata
对象,该对象具有匹配的示例时间和输入大小sys
。矩阵有多少列就有多少输入通道。如果矩阵有N行,假设输入数据对应于时间向量
(1: N) *系统。Ts
。
X0
- - - - - -初始状态
列向量
模拟的初始状态,指定为列向量,其大小等于中的状态数sys
。X0
提供与第一个输入样例对应的初始条件(印尼。开始
,如果印尼
是一个iddata
对象,或sys。Ts
如果印尼
是一个双矩阵)。
的状态的详细信息idnlarx
模型中,看到idnlarx状态的定义。
选项
- - - - - -操作点搜索选项
findopOptions
选项设置
操作点搜索选项,指定为findopOptions
选项设置。
输出参数
X
-操作点状态值
列向量
操作点状态值,作为长度等于模型状态数的列向量返回。
U
-操作点输入值
列向量
操作点输入值,作为长度等于输入数的列向量返回。
报告
-搜索结果摘要
结构
搜索结果汇总报告,作为具有以下字段的结构返回:
场 | 描述 |
---|---|
SearchMethod |
搜索方法用于迭代参数估计。看到SearchMethod 在findopOptions 为更多的信息。 |
WhyStop |
搜索算法终止条件。 |
迭代 |
执行的估计迭代次数。 |
FinalCost |
最小化目标函数的最终值(误差平方和)。 |
FirstOrderOptimality |
搜索算法终止时搜索梯度向量的-范数。 |
SignalLevels |
包含字段的结构输入 而且输出 ,分别为工作点输入和输出信号电平。 |
算法
findop
从稳态工作点规格或模拟快照计算工作点。
从稳态规格计算工作点
要计算稳态工作点,调用findop
使用以下语法之一:
[X,U] = findop(sys,'steady',InputLevel,OutputLevel) [X,U] = findop(sys,spec)
为了计算状态,X
,输入为:U
为稳态工作点,findop
使误差的范数最小化e(t) =y(t)-f(x(t),u(t)),地点:
f为非线性估计量。
u(t)为输入。
x(t)为模型状态。
y(t)为模型输出。
方法指定搜索算法和搜索选项findopOptions
选项设置。
该算法使用以下自变量进行最小化:
未知(未指定)输入信号电平
输出信号的水平
因为idnlarx
模型状态是输入和输出变量的延迟样本,状态值是相应稳态输入和输出的常数值。有关非线性ARX模型状态定义的更多信息,请参见idnlarx状态的定义。
计算模拟快照的工作点
当您使用语法时[X, U] = findop (sys,“快照”,T,印尼,X0)
,算法模拟模型输出直到快照时间,T
。在快照时刻,算法将输入和输出样本传递给data2state
命令将这些值映射到当前状态向量。
请注意
snapshot-based计算,findop
不执行数值优化。
扩展功能
自动并行支持万博1manbetx
通过使用并行计算工具箱™自动并行运行计算来加速代码。
的并行计算支持可用于估计万博1manbetxlsqnonlin
搜索方法(需要优化工具箱™)。要启用并行计算,请使用findopOptions
,设置SearchMethod
来“lsqnonlin”
,并设置SearchOptions.Advanced.UseParallel
来真正的
。
例如:
选择= findopOptions (idnlarx);opt.SearchMethod =“lsqnonlin”;opt.SearchOptions.Advanced.UseParallel = true;
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。