필터 지우기
필터 지우기

Online parameter estimation for multiple output system

조회 수: 4 (최근 30일)
Mohammadreza Yavari
Mohammadreza Yavari 2017년 12월 3일
댓글: Mohammadreza Yavari 2017년 12월 8일
Hi Everyone,
I have a model with 6 parameters and I want to estimate these parameters online using "Online Recursive Least Squares Estimation" block in Simulink. The problem is that this block is designed for single output models only.
My model is like this:
Y_3*1 = H_3*6 X theta_6*1
do you have any idea how I can use this block or any other block to estimate my parameters online and efficiently?
In other words, I have three equations which are dependent to six parameters.
Thanks a lot
  댓글 수: 2
David Fink
David Fink 2017년 12월 5일
I'm not sure I understand the model.
If the coefficients for the 3 outputs are independent, using one of those blocks for each output with all 6 parameters would produce 6 coefficients for each output.
If this is not what you are looking for, please clarify the model description and your overall goal.
Mohammadreza Yavari
Mohammadreza Yavari 2017년 12월 5일
편집: Mohammadreza Yavari 2017년 12월 6일
Thank you, David, for the answer.
Yes, I can use three different blocks, one for each equation but then I get three different answers. I want a single answer that satisfies the three equations at the maximum possibility. If you think of least squares formulation, I have
y1 = A1 * x
y2 = A2 * x
y3 = A3 * x
and I want to get the x that minimizes
|([y1_m,y2_m,y3_m] - [(A1 * x) , (A2 * x)), (A3 * x)])|^2
where yi_m is the ith measured output.
One option that comes to my mind is dimension reduction using eigenvalues. However, I don't know how to do that exactly.
Please let me know if you have any hints or suggestions.
Thanks,

댓글을 달려면 로그인하십시오.

답변 (1개)

Mohammadreza Yavari
Mohammadreza Yavari 2017년 12월 5일
편집: Mohammadreza Yavari 2017년 12월 6일
Thank you, David Fink, for the answer.
Yes, I can use three different blocks, one for each equation but then I get three different answers. I want a single answer that satisfies the three equations at the maximum possibility. If you think of least squares formulation, I have
y1 = A1 * x
y2 = A2 * x
y3 = A3 * x
and I want to get the x that minimizes
|([y1_m,y2_m,y3_m] - [(A1 * x) , (A2 * x)), (A3 * x)])|^2
where yi_m is the ith measured output.
One option that comes to my mind is dimension reduction using eigenvalues. However, I don't know how to do that exactly.
Please let me know if you have any hints or suggestions.
Thanks,
  댓글 수: 2
David Fink
David Fink 2017년 12월 7일
This doesn't solve the exact sum of squares problem, but it approximates it:
"Unbuffer" the data (vector of outputs and matrix of inputs) to handle one at a time, and pass these all through one Recursive Least Squares Estimator block. The Unbuffer Block is part of the DSP System Toolbox.
See the attached example (created in MATLAB R2017a). The inputs and outputs are constants:
[1 2] -> 1
[3 4] -> 2
[5 6] -> 3
The optimal output coefficients should be [0 0.5]. After 50 iterations (150 updates to parameters), we get an output of [2.8e-6 0.5].
Mohammadreza Yavari
Mohammadreza Yavari 2017년 12월 8일
Hi David
Thanks a bunch for this brilliant solution. I will give it a try and ask if I faced any further question.
I wanted to make it as accepted answer but it is a comment.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Online Parameter Estimation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by