Estimate Transfer Function Models With Prior Knowledge of Model Structure and Constraints

1 次查看(过去 30 天)
I have followed the example presented within HELP http://www.mathworks.com/help/releases/R2012b/ident/ref/idtf.html to create a transfer function of a system. I provide an initial guess for the polynomial coefficients that define both the ZEROS & POLES of the system. I then attempt to restrict which coefficients can or cannot be FREE for tfest to manipulate. Unfortunately, it seems that MATLAB is ignoring my restrictions and allows for all of the coefficients to be FREE for manipulation. What am I doing wrong or is there something fundamental that I am not recognizing that prevents the restrictions to be honored? My abbreviated code & the file that contains relevant DATA is attached.
The behavior I describe above is manifested in the numerators of T1(3,1), T4(1,1), & T5(1,1). T1 is generated directly from num & den. T4 is estimated from DATA with an initial guess on the poles & zeros to be the same for T1. Likewise, for T5 the initial guess is the same for T4, but restrictions on the coefficients are applied. Hence, T1(3,1) should be the same as T5(1,1) while T4(1,1) is different since the coefficients are free to be manipulated. Instead, T4 & T5 are the same and neither match T1(3,1), so something is amiss.
Inspection of both initguess(3,1).Structure.num.Free & T5(1,1).Structure.num.Free indicates they do not concur. This explains why T5 & T4 are the same. Why the constraints are not being recognized I am at a loss.
Appreciate any insight.

采纳的回答

Jeff
Jeff 2017-2-10
I found the problem. Apparently scaling the initguess by 1/tau(1)^4 rendered the constraints unrecognizable in the last line of the code.

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by