Matlab 具有线性等式约束和稳定性的ARX模型的辨识
根据输入和输出数据,我必须用最小二乘法确定ARX模型 y(n)=-a1y(n-1)-…-any(n-n)+b1x(n-1)+…+bmx(n-M) 这必须是稳定的(其所有极点都在单位圆内),同时参数也必须是稳定的 a1,…,aN,b1,…,bM 必须满足一些线性等式约束。 例如,我需要一个等于1的静态增益,这意味着 -a1-a2…-aN+b1+b2…+bM=1 在矩阵形式中,我可以将约束写为: θ=[a1a2…a1b2…bM] Aeq=[-个(1,N)个(1,M)] beq=1 Aeq*θ=beq 使用下面的Matlab函数arx_stable我可以使用Matlab函数“arx”设置参数Matlab 具有线性等式约束和稳定性的ARX模型的辨识,matlab,optimization,signal-processing,linear-regression,system-identification,Matlab,Optimization,Signal Processing,Linear Regression,System Identification,根据输入和输出数据,我必须用最小二乘法确定ARX模型 y(n)=-a1y(n-1)-…-any(n-n)+b1x(n-1)+…+bmx(n-M) 这必须是稳定的(其所有极点都在单位圆内),同时参数也必须是稳定的 a1,…,aN,b1,…,bM 必须满足一些线性等式约束。 例如,我需要一个等于1的静态增益,这意味着 -a1-a2…-aN+b1+b2…+bM=1 在矩阵形式中,我可以将约束写为: θ=[a1a2…a1b2…bM] Aeq=[-个(1,N)个(1,M)] beq=1 Aeq*θ=beq
“Focus”=“stability”
(但没有等式线性约束)来识别稳定的arx
通过以下函数arx\u constr
我可以识别具有线性等式约束Aeq beq(但不具有稳定性)的arx
我怎样才能获得稳定性和对约束的尊重???
谢谢
西蒙尼
function theta = arx_stable(N,M,t,input_data,output_data)
% input_data and output_data are column vectors
% t is the time vector
% data structure generation:
Ts = t(2)-t(1); % it is the sampling time
data = iddata(output_data,input_data,Ts);
n_k=0; % it is the Input-output delay
ARX_model = arx(data,[N M n_k] , 'Focus','stability');
% 'Focus','stability' in this way the identified ARX is stable
a=ARX_model.a;
a=a(2:end); % I remove the first a0=1
b=ARX_model.b;
theta=[a b];
end
function theta = arx_constr(N,M,t,input_data,output_data,Aeq,beq)
% input_data and ouput_data are row vectors
% t is the time vector
% X and y construction:
n_order=max([N M]);
X=[]; % X is the regression matrix
for nn = n_order+1:length(input_data)
X(nn,:)=[-output_data((nn-1):-1:(nn-N)) input_data((nn-1):-1:(nn-M))];
end
X=X((n_order+1):end,:); % it cancels the first n_order rows that are full of zeros
y=output_data(n_order+1:end)' ; % y is a column vector
options_lsqlin=optimset('Algorithm','active-set','LargeScale','off');
% this set is necessary to use equality constraints
theta=lsqlin(X,y,[],[],Aeq,beq,[],[],[],options_lsqlin);
end
这个问题还存在吗?是的,这个问题仍然存在。好吧,让我们一劳永逸地解决这个问题。我们明天再谈。。。。现在有点晚了。。。