Can't change parameter of a BJ estimated ID poly model

1 次查看(过去 30 天)
In 2013b, we just changed the size, and values of these parameters like so
temp(1,1).b(5) = 0;
Now, in R2017b, it gives me this error when I try to do this (or even use the set function)
Error using pmodel.polynomial.checkPolyParameter (line 148) The name of the "B" parameter cannot be changed.
Error in idpoly>localSetPolyValue (line 809) Data(ct).Structure.(Name) = pmodel.polynomial.checkPolyParameter(...
Error in idpoly/set.B (line 513) sys = localSetPolyValue(sys,'B',b);
Error in idobsolete.idlti/set (line 125) sys.(varargin{ct}) = varargin{ct+1};
But it only gives this error for the BJ estimated objects, not for ones I define. Below is my demonstrated trial of this behavior. I would like to understand why one "set" command works, and the second does not. Thank you!
>> tempIDP = idpoly([1],{[0.8, -1.6, 0.97] [-0.4 0.9 -0.5]}, ...
[1 0.6 0.65 0.77 -0.24], ... % C
[1 -1.6 1.9 -1.6 0.7], ... % D
{[1 -2.72 3.4 -2.2 0.6] [1 -2.7 3.6 -2.5 0.87]}, ... % F
2.14, 2.0000e-07) % NoiseVariance, Ts
tempIDP =
Discrete-time BJ model: y(t) = [B(z)/F(z)]u(t) + [C(z)/D(z)]e(t)
B1(z) = 0.8 - 1.6 z^-1 + 0.97 z^-2
B2(z) = -0.4 + 0.9 z^-1 - 0.5 z^-2
C(z) = 1 + 0.6 z^-1 + 0.65 z^-2 + 0.77 z^-3 - 0.24 z^-4
D(z) = 1 - 1.6 z^-1 + 1.9 z^-2 - 1.6 z^-3 + 0.7 z^-4
F1(z) = 1 - 2.72 z^-1 + 3.4 z^-2 - 2.2 z^-3 + 0.6 z^-4
F2(z) = 1 - 2.7 z^-1 + 3.6 z^-2 - 2.5 z^-3 + 0.87 z^-4
Sample time: 2e-07 seconds
Parameterization:
Polynomial orders: nb=[3 3] nc=4 nd=4 nf=[4 4] nk=[0 0]
Number of free coefficients: 22
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Created by direct construction or transformation. Not estimated.
>> set(tempIDP, 'B', {[0.8, -1.5, 0.9] [-0.4 0.9 -0.5]})
>> tempIDP
tempIDP =
Discrete-time BJ model: y(t) = [B(z)/F(z)]u(t) + [C(z)/D(z)]e(t)
B1(z) = 0.8 - 1.5 z^-1 + 0.9 z^-2
B2(z) = -0.4 + 0.9 z^-1 - 0.5 z^-2
C(z) = 1 + 0.6 z^-1 + 0.65 z^-2 + 0.77 z^-3 - 0.24 z^-4
D(z) = 1 - 1.6 z^-1 + 1.9 z^-2 - 1.6 z^-3 + 0.7 z^-4
F1(z) = 1 - 2.72 z^-1 + 3.4 z^-2 - 2.2 z^-3 + 0.6 z^-4
F2(z) = 1 - 2.7 z^-1 + 3.6 z^-2 - 2.5 z^-3 + 0.87 z^-4
Sample time: 2e-07 seconds
Parameterization:
Polynomial orders: nb=[3 3] nc=4 nd=4 nf=[4 4] nk=[0 0]
Number of free coefficients: 22
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Created by direct construction or transformation. Not estimated.
>> temp
temp =
Discrete-time BJ model: y(t) = [B(z)/F(z)]u(t) + [C(z)/D(z)]e(t)
B1(z) = 0.8847 z^-1 - 1.595 z^-2 + 0.9648 z^-3
B2(z) = -0.4535 z^-1 + 0.8757 z^-2 - 0.5554 z^-3
C(z) = 1 + 0.6195 z^-1 + 0.6582 z^-2 + 0.7793 z^-3 - 0.2442 z^-4
D(z) = 1 - 1.649 z^-1 + 1.94 z^-2 - 1.617 z^-3 + 0.7489 z^-4
F1(z) = 1 - 2.727 z^-1 + 3.441 z^-2 - 2.236 z^-3 + 0.6945 z^-4
F2(z) = 1 - 2.778 z^-1 + 3.638 z^-2 - 2.59 z^-3 + 0.8709 z^-4
Sample time: 2e-07 seconds
Parameterization:
Polynomial orders: nb=[3 3] nc=4 nd=4 nf=[4 4] nk=[1 1]
Number of free coefficients: 22
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using BJ on time domain data "IFitData_V".
Fit to estimation data: [73.92 79.76 58.08 79.73 83.64 89.83 92.73 86.89 87.35 79.15 86.86 94.38 89.51 95.95 81.23
75.54 74.02 86.72 91.03 72.22 85.02 82.05 79.51 91.66 86.61 74.7 77.05 89.39 74.34 90.85]% (prediction focus)
FPE: 2.15, MSE: [44.61 26.91 114.7 42.75 27.94 10.76 8.785 28.49 26.36 1079 429.6 78.75 365.8 54.12 1162 2458 2778
724.7 706.9 6707 1950 3008 3937 659.5 1805 6391 5249 1115 6537 838.3]
>> set(temp, 'B', {[0.8, -1.5, 0.9] [-0.4 0.9 -0.5]})
Error using pmodel.polynomial.checkPolyParameter (line 148)
The name of the "B" parameter cannot be changed.
Error in idpoly>localSetPolyValue (line 809)
Data(ct).Structure.(Name) = pmodel.polynomial.checkPolyParameter(...
Error in idpoly/set.B (line 513)
sys = localSetPolyValue(sys,'B',b);
Error in idobsolete.idlti/set (line 125)
sys.(varargin{ct}) = varargin{ct+1};

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Model Identification 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by