MATLAB系统辨识工具箱的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A(q) y(k) B(q)u(t nk) C(q)e(t)
对其参数采用预报误差法进行估计。 Z矩阵包含输入-输出数据,即 z [y u] Y和u均为列向量。nn定义为
nn [na nb nc nk]
2、arx 功能:估算arx模型的参数 格式: th arx(z, nn)
4)零-极点格式
一个模型的零-极点存储在矩阵里的方式 为:第一列是G的零点,第二列是G的极点, 第三列是H的零点,第四列是H的极点。
2、几种格式之间的转化 命令
th mktheta(A, B,C, D, F,lam)
将多项式向量由多项式格式转化为THETA格式。 Lam是干扰噪声变量,其中后面的C,D,F和lam 项可以省略,其默认值等于1。
5)LIM 该变量决定估算准则怎样从二次修 改为一次,即对于大误差如何将其二次数变 为一次数。
4、bj
功能:估算Box-Jenkins模型结构参数。
格式:th=bj(z,nn)
th=bj(z,nn,maxiter,tol,lim,maxsize,T)
说明: Box-Jenkins模型结构为
na 0
na 0
5、iv
功能:用辅助变量法估算ARX模型结构。
格式:th=iv(z,nn,N,M)
th=iv(z,nn,N,M,maxsize,T)
说明:ARX模型结构为
A(q) y(t) B(q)u(t nk) v(t)
对其参数采用辅助变量法进行估计。用
N(q)x(t) M (q)u(t)
(1)
G(q)u(t) g(k)u(t k) k 1
和 G(q) g(k)qk k 1 q1u(t) u(t 1)
一种简写形式
在单位圆上计算函数 G(q)的值,就得到频率函数u u
G(e j )
(4)
在(1)式中,v(t) 是不可测量的附加干扰(噪音)。 它的特性可以用它的(自)频谱来表示
输入u、输出y的图形 plot(u),plot(y)
运行结果: Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) +
[C(q)/D(q)]e(t) B(q) = 1.13 (+-0.09781) q^-1 + 0.408 (+-0.172) q^-2 C(q) = 1 - 0.8281 (+-0.09253) q^-1 + 0.06482 (+-0.09144)
B(q) b0 b1q 1 anb q nb
整个模型通常表示为
A(q) y(t) B(q)u(t nk) e(t)
2、ARMAX模型
A(q)y(t) B(q)u(t nk) C(q)e(t)
其中:
C(q) 1 c1q 1 cnc q nc
3、OUTPUT ERROR模型
y(t) G(q)u(t) H (t)e(t)
(10)
而(4)和(5)给出了系统的频率描述。
G(e j ); v ()
(ቤተ መጻሕፍቲ ባይዱ1)
v(vt()t )
2、参数模型
1、ARX模型
G(q) qnk B(q) ; H (q) 1
A(q)
A(q)
其中:B和A均为延迟算子 q1的多项式
A(q) 1 a1q 1 ana q na
3)MAXITER
该变量决定在寻找最小值过程中所能进行的最多 迭代次数,其默认值为MAXITER=10,如果 MAXITER=0,函数返回起动过程执行的结果。
4)TOL 迭代过程持续到高斯-牛顿修正向量的 范数值小于TOL为止。当寻找准则的最小值的算 法失败或已经达到迭代次数的最大值时,迭代过 程也自动结束。其缺省值为TOL=0.01。
可选辅助项maxsize和T在auxvar函数中予以 说明。
如果ARX模型结构中的噪声项e(t)实际上不 是白噪声,并且 na 0,则此估算方法不能 得出正确的模型。
3、auxvar
功能:说明辅助变量maxtier,tol,lim, maxsize和T。
格式:help auxvar
说明:大部分函数将变量maxsize作为一个 可选变量来辅助实现内存大小和运算速度 之间的折衷协调。一部分函数还可以指定 采样间隔T。Pem,armax,oe以及bj函数中迭 代寻找过程均受maxtier,tol,lim三个参数 的控制。
当 z y 且nn na 时,该函数将计算输出y 的na阶AR模型。
A(q) y(k) e(t) 对于多输入模型
A(q) y(k) B1(q)u1(t nk1)
Bnu (q)unu (t nknu ) e(t) 令变量u的每一列为一个输入变量
即
u u1 unu
nb和nk为行向量,其元素为对应于每一个输 入的阶次和延迟。
3、模型的显示 命令: present(th) 在屏幕上显示对应于th的模型及有关信息 命令: bode(G) 绘制FREQFUNC格式G的波特图 命令:zpplot(ZEPO) 在复平面中绘制零-极点图。按回车键,将对
ZEPO的另一列绘制零-极点图。
4、仿真 对于模型(23)式,当它用THETA格式表示
格式:th=iv4(z,nn)
说明:该函数的程序与函数iv大体相同。另 外iv4函数的返回值th中还包含了估计的协 方差的值。
7、oe
功能:估算输出误差模型结构的参数
格式:th=oe(z,nn)
说明:输出误差模型的结构为
y(t) B(q) u(t nk) e(t) F (q)
对其参数采用预报误差法进行估计。
th arx(z, nn, max size,T ) 说明:ARX模型结构为
A(q) y(k) B(q)u(t nk) e(t) 对其参数采用最小二乘法进行估计。
nn [na nb nk] 其中的元素分别表示ARX模型的阶次和延
迟。
函数返回值th是参数的最小二乘估计值,以 THETA格式表示。
9、pem
功能:估算普通的多输入单输出线性模型结构的 参数。
格式:th=pem(z,nn)
说明:一般系统的模型结构为
A(q) A(q) y(t)
B1 (q) F1 (q)
u1 (t
nk1)
Bnu (q) Fnu (q)
unu
(t
nknu
)
C(q) D(q)
e(t)
对其参数采用预测误差法进行估算。
构造辅助变量x(t)。
nn表示为:nn=[na nb nk]
函数的返回值th是THETA格式的参数估计 值,N和M为行向量,其元素为构造辅助 变量新x(t)滤波器的系数值。
建议使用函数iv4,因为该函数自动提供近 似的过滤器函数N和M,不需要用户设计 取值。
6、iv4
功能:四步近似最优辅助变量法估算ARX 模型结构参数。
y(t) B(q) u(t nk) e(t) F (q)
其中: F(q) 1 f1q1 fnf qnf 3、Box-Jenkins模型
y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
v(t )
v(t )
v(t) v(t)
所有这些模型可以归结为基本模型
q^-2 D(q) = 1 + 1.539 (+-0.05803) q^-1 + 0.7849 (+-0.05508) q^-2 F(q) = 1 + 1.412 (+-0.2056) q^-1 + 0.8039 (+-0.1963) q^-2 Estimated using BJ from data set z Loss function 0.00936758 and FPE 0.0101911 Sampling interval: 1 Created: 19-Apr-2006 07:35:37 Last modified: 19-Apr-2006 07:35:38
1)MAXSIZE
函数所建立的矩阵,其元素个数不能超过 maxsize。否则,其算法将把计算过程分割 成若干FOR循环,降低计算速度。 MAXSIZE的默认值为4096。 MAXSIZE的 主要用途是当算法所需内存不够时,限制变 量的大小。
2)T 指定采样间隔T,为频率函数图提供 适当的频率比例。当用函数cont将其变换为 连续时间函数时,可以提供适当的时间比例。
MATLAB系统辨识工具箱的应 用
1、系统的表示方法
下图标出了基本的输入输出结构,其中: 输入信号:u(t);t 1,2, , N 输出信号:y(t);t 1,2, , N
e
u
y
uu
假设方框中的系统为线性系统,可以得出输入输 出信号的关系为
y(t) G(q)u(t) v(t)
其中:q 为移位算子;G(q)u(t是) 关于
MATLAB中有3种转换函数与THETA格式有关 (1)命令
[A, B,C, D, F] polyform(th)
将THETA格式转换回多项式格式。 (2)将THETA格式转换成FREQFUNC格式
[G,PHI] trf(th)
(3)将THETA格式转换成零-极点格式
[ZERO, K] zp(th)
Z矩阵中包含输入输出数据,即Z=[y u],y和u均为 列向量。Nn可以表示为
nn=[nb nq nk] 8、pe 功能:计算某一模型和数据集的预测误差。
格式:e=pe(z,th) 说明:Z矩阵是一个输入输出数据集合,即 Z=[y u]。th是THETA格式的模型参数。E是预测
误差,当模型th应用这个数据集合中的输入输出 数据时,所产生的预测误差值即为E值。
A(q) y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
(23)
3、系统模型的表示
1、模型格式 1)THETA格式 和模型(23)相对应,将所有的阶次、延迟、参
数以及被估计参数的协方差全部写入一个矩阵。
2)FREQFUNC格式 频率特性函数格式以向量形式存储函数(11)式,
其方式如下:第一列是频率值,第二列是振幅值, 第三列是相位。对于频谱来说相位列为0。频率值 可以随机选取。但这些值必须是0到 /T 之间且等 间隔选取的128个值中的一个。
3)多项式格式
在标准的MATLAB多项式中提供了(23) 式中的多项式A,B,C,D,F。多项式的 系数以降幂次序存储在行向量中。
y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
对其参数采用预报误差法进行估计。
矩阵z中包含输入-输出数据,即z=[y u],nn定 义为:nn=[nb nc nd nf nk]
例: B=[0 1 0.5]; C=[1 -1 0.2]; D=[1 1.5 0.7]; F=[1 1.5 0.7]; th0=poly2th(1,B,C,D,F,0.1); e=rand(200,1); u=sign(rand(200,1)); y=idsim([u e],th0); z=[y u]; thi=bj(z,[2 2 2 2 1]); th=bj(z,thi); present(th)
参数nn表示为:nn=[na nb nc nd nf nk]
例:下面是一个三输入系统的例,具有1000个 观测数据,要求建立一个输出误差模型结构。 为了提高效率,先用部分数据计算出一个初始 条件,然后再利用该条件建立系统模型。
z=[y u1 u2 u3];
v ()
(5)
定义如下
v () Rv ( )e jt
Rv ( ) 是 v(t) 的协方差函数,即
Rv ( ) Ev(t)v(t )
此外,扰动 v(t)还可表示为经过滤波的白噪声
v(t) H (q)e(t)
v(t) v(t)
此时可得
v () | H (e j ) |2
方程(1)和(9)给出了系统的时间域描述
时,可以用命令
y idsim([u e], th)
对它进行仿真。其中:u和e分别是包含输入 信号和噪声序列的列向量。如果省略e项, 则可以得到无噪声干扰的仿真系统。
函数说明
1、armax 功能:估算ARMAX或ARMA模型的参数 格式:th ar max(z, nn) 说明:ARMAX模型结构为
对其参数采用预报误差法进行估计。 Z矩阵包含输入-输出数据,即 z [y u] Y和u均为列向量。nn定义为
nn [na nb nc nk]
2、arx 功能:估算arx模型的参数 格式: th arx(z, nn)
4)零-极点格式
一个模型的零-极点存储在矩阵里的方式 为:第一列是G的零点,第二列是G的极点, 第三列是H的零点,第四列是H的极点。
2、几种格式之间的转化 命令
th mktheta(A, B,C, D, F,lam)
将多项式向量由多项式格式转化为THETA格式。 Lam是干扰噪声变量,其中后面的C,D,F和lam 项可以省略,其默认值等于1。
5)LIM 该变量决定估算准则怎样从二次修 改为一次,即对于大误差如何将其二次数变 为一次数。
4、bj
功能:估算Box-Jenkins模型结构参数。
格式:th=bj(z,nn)
th=bj(z,nn,maxiter,tol,lim,maxsize,T)
说明: Box-Jenkins模型结构为
na 0
na 0
5、iv
功能:用辅助变量法估算ARX模型结构。
格式:th=iv(z,nn,N,M)
th=iv(z,nn,N,M,maxsize,T)
说明:ARX模型结构为
A(q) y(t) B(q)u(t nk) v(t)
对其参数采用辅助变量法进行估计。用
N(q)x(t) M (q)u(t)
(1)
G(q)u(t) g(k)u(t k) k 1
和 G(q) g(k)qk k 1 q1u(t) u(t 1)
一种简写形式
在单位圆上计算函数 G(q)的值,就得到频率函数u u
G(e j )
(4)
在(1)式中,v(t) 是不可测量的附加干扰(噪音)。 它的特性可以用它的(自)频谱来表示
输入u、输出y的图形 plot(u),plot(y)
运行结果: Discrete-time IDPOLY model: y(t) = [B(q)/F(q)]u(t) +
[C(q)/D(q)]e(t) B(q) = 1.13 (+-0.09781) q^-1 + 0.408 (+-0.172) q^-2 C(q) = 1 - 0.8281 (+-0.09253) q^-1 + 0.06482 (+-0.09144)
B(q) b0 b1q 1 anb q nb
整个模型通常表示为
A(q) y(t) B(q)u(t nk) e(t)
2、ARMAX模型
A(q)y(t) B(q)u(t nk) C(q)e(t)
其中:
C(q) 1 c1q 1 cnc q nc
3、OUTPUT ERROR模型
y(t) G(q)u(t) H (t)e(t)
(10)
而(4)和(5)给出了系统的频率描述。
G(e j ); v ()
(ቤተ መጻሕፍቲ ባይዱ1)
v(vt()t )
2、参数模型
1、ARX模型
G(q) qnk B(q) ; H (q) 1
A(q)
A(q)
其中:B和A均为延迟算子 q1的多项式
A(q) 1 a1q 1 ana q na
3)MAXITER
该变量决定在寻找最小值过程中所能进行的最多 迭代次数,其默认值为MAXITER=10,如果 MAXITER=0,函数返回起动过程执行的结果。
4)TOL 迭代过程持续到高斯-牛顿修正向量的 范数值小于TOL为止。当寻找准则的最小值的算 法失败或已经达到迭代次数的最大值时,迭代过 程也自动结束。其缺省值为TOL=0.01。
可选辅助项maxsize和T在auxvar函数中予以 说明。
如果ARX模型结构中的噪声项e(t)实际上不 是白噪声,并且 na 0,则此估算方法不能 得出正确的模型。
3、auxvar
功能:说明辅助变量maxtier,tol,lim, maxsize和T。
格式:help auxvar
说明:大部分函数将变量maxsize作为一个 可选变量来辅助实现内存大小和运算速度 之间的折衷协调。一部分函数还可以指定 采样间隔T。Pem,armax,oe以及bj函数中迭 代寻找过程均受maxtier,tol,lim三个参数 的控制。
当 z y 且nn na 时,该函数将计算输出y 的na阶AR模型。
A(q) y(k) e(t) 对于多输入模型
A(q) y(k) B1(q)u1(t nk1)
Bnu (q)unu (t nknu ) e(t) 令变量u的每一列为一个输入变量
即
u u1 unu
nb和nk为行向量,其元素为对应于每一个输 入的阶次和延迟。
3、模型的显示 命令: present(th) 在屏幕上显示对应于th的模型及有关信息 命令: bode(G) 绘制FREQFUNC格式G的波特图 命令:zpplot(ZEPO) 在复平面中绘制零-极点图。按回车键,将对
ZEPO的另一列绘制零-极点图。
4、仿真 对于模型(23)式,当它用THETA格式表示
格式:th=iv4(z,nn)
说明:该函数的程序与函数iv大体相同。另 外iv4函数的返回值th中还包含了估计的协 方差的值。
7、oe
功能:估算输出误差模型结构的参数
格式:th=oe(z,nn)
说明:输出误差模型的结构为
y(t) B(q) u(t nk) e(t) F (q)
对其参数采用预报误差法进行估计。
th arx(z, nn, max size,T ) 说明:ARX模型结构为
A(q) y(k) B(q)u(t nk) e(t) 对其参数采用最小二乘法进行估计。
nn [na nb nk] 其中的元素分别表示ARX模型的阶次和延
迟。
函数返回值th是参数的最小二乘估计值,以 THETA格式表示。
9、pem
功能:估算普通的多输入单输出线性模型结构的 参数。
格式:th=pem(z,nn)
说明:一般系统的模型结构为
A(q) A(q) y(t)
B1 (q) F1 (q)
u1 (t
nk1)
Bnu (q) Fnu (q)
unu
(t
nknu
)
C(q) D(q)
e(t)
对其参数采用预测误差法进行估算。
构造辅助变量x(t)。
nn表示为:nn=[na nb nk]
函数的返回值th是THETA格式的参数估计 值,N和M为行向量,其元素为构造辅助 变量新x(t)滤波器的系数值。
建议使用函数iv4,因为该函数自动提供近 似的过滤器函数N和M,不需要用户设计 取值。
6、iv4
功能:四步近似最优辅助变量法估算ARX 模型结构参数。
y(t) B(q) u(t nk) e(t) F (q)
其中: F(q) 1 f1q1 fnf qnf 3、Box-Jenkins模型
y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
v(t )
v(t )
v(t) v(t)
所有这些模型可以归结为基本模型
q^-2 D(q) = 1 + 1.539 (+-0.05803) q^-1 + 0.7849 (+-0.05508) q^-2 F(q) = 1 + 1.412 (+-0.2056) q^-1 + 0.8039 (+-0.1963) q^-2 Estimated using BJ from data set z Loss function 0.00936758 and FPE 0.0101911 Sampling interval: 1 Created: 19-Apr-2006 07:35:37 Last modified: 19-Apr-2006 07:35:38
1)MAXSIZE
函数所建立的矩阵,其元素个数不能超过 maxsize。否则,其算法将把计算过程分割 成若干FOR循环,降低计算速度。 MAXSIZE的默认值为4096。 MAXSIZE的 主要用途是当算法所需内存不够时,限制变 量的大小。
2)T 指定采样间隔T,为频率函数图提供 适当的频率比例。当用函数cont将其变换为 连续时间函数时,可以提供适当的时间比例。
MATLAB系统辨识工具箱的应 用
1、系统的表示方法
下图标出了基本的输入输出结构,其中: 输入信号:u(t);t 1,2, , N 输出信号:y(t);t 1,2, , N
e
u
y
uu
假设方框中的系统为线性系统,可以得出输入输 出信号的关系为
y(t) G(q)u(t) v(t)
其中:q 为移位算子;G(q)u(t是) 关于
MATLAB中有3种转换函数与THETA格式有关 (1)命令
[A, B,C, D, F] polyform(th)
将THETA格式转换回多项式格式。 (2)将THETA格式转换成FREQFUNC格式
[G,PHI] trf(th)
(3)将THETA格式转换成零-极点格式
[ZERO, K] zp(th)
Z矩阵中包含输入输出数据,即Z=[y u],y和u均为 列向量。Nn可以表示为
nn=[nb nq nk] 8、pe 功能:计算某一模型和数据集的预测误差。
格式:e=pe(z,th) 说明:Z矩阵是一个输入输出数据集合,即 Z=[y u]。th是THETA格式的模型参数。E是预测
误差,当模型th应用这个数据集合中的输入输出 数据时,所产生的预测误差值即为E值。
A(q) y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
(23)
3、系统模型的表示
1、模型格式 1)THETA格式 和模型(23)相对应,将所有的阶次、延迟、参
数以及被估计参数的协方差全部写入一个矩阵。
2)FREQFUNC格式 频率特性函数格式以向量形式存储函数(11)式,
其方式如下:第一列是频率值,第二列是振幅值, 第三列是相位。对于频谱来说相位列为0。频率值 可以随机选取。但这些值必须是0到 /T 之间且等 间隔选取的128个值中的一个。
3)多项式格式
在标准的MATLAB多项式中提供了(23) 式中的多项式A,B,C,D,F。多项式的 系数以降幂次序存储在行向量中。
y(t) B(q) u(t nk) C(q) e(t)
F (q)
D(q)
对其参数采用预报误差法进行估计。
矩阵z中包含输入-输出数据,即z=[y u],nn定 义为:nn=[nb nc nd nf nk]
例: B=[0 1 0.5]; C=[1 -1 0.2]; D=[1 1.5 0.7]; F=[1 1.5 0.7]; th0=poly2th(1,B,C,D,F,0.1); e=rand(200,1); u=sign(rand(200,1)); y=idsim([u e],th0); z=[y u]; thi=bj(z,[2 2 2 2 1]); th=bj(z,thi); present(th)
参数nn表示为:nn=[na nb nc nd nf nk]
例:下面是一个三输入系统的例,具有1000个 观测数据,要求建立一个输出误差模型结构。 为了提高效率,先用部分数据计算出一个初始 条件,然后再利用该条件建立系统模型。
z=[y u1 u2 u3];
v ()
(5)
定义如下
v () Rv ( )e jt
Rv ( ) 是 v(t) 的协方差函数,即
Rv ( ) Ev(t)v(t )
此外,扰动 v(t)还可表示为经过滤波的白噪声
v(t) H (q)e(t)
v(t) v(t)
此时可得
v () | H (e j ) |2
方程(1)和(9)给出了系统的时间域描述
时,可以用命令
y idsim([u e], th)
对它进行仿真。其中:u和e分别是包含输入 信号和噪声序列的列向量。如果省略e项, 则可以得到无噪声干扰的仿真系统。
函数说明
1、armax 功能:估算ARMAX或ARMA模型的参数 格式:th ar max(z, nn) 说明:ARMAX模型结构为