reconciling zpk output?

1 view (last 30 days)
Jeff
Jeff on 14 May 2017
Commented: Walter Roberson on 4 Jun 2017
I have included a SIMSCAPE model of a 3 DOF system in the attached ZIP file along with the necessary input data. In the jpg schematic below I have highlighted the signals which I transformed using the zpk command. The signals highlighted in blue & green in the schematic yield identical transforms shown in the output below. I then subtract the 2 signals & transform that signal highlighted in red. If linearity is valid then should the transform of the red signal = 0? The output of zpk does not give 0 but what looks like a 3 DOF system with 2 complex conjugate pole pairs & a real pole with a low frequency gain of 0.090058.
The results below were obtained by executing zpk(SIMULINKbode.values)
(s^2 + 2200s + 1.25e08)
Mass 0 X: -------------------------------------------------
(s^2 + 1138s + 1.964e07) (s^2 + 3062s + 1.273e08)
(s+600) (s^2 + 2200s + 1.25e08)
Free node X: ---------------------------------------------------------
(s+600) (s^2 + 1138s + 1.964e07) (s^2 + 3062s + 1.273e08)
0.090058
X0-X1: ---------------------------------------------------------
(s+600) (s^2 + 1138s + 1.964e07) (s^2 + 3062s + 1.273e08)
Can anyone account for this or reconcile the discrepancy?
I have included the .slx model along with the necessary input data in the .zip file to allow you to experiment with the results. Let me know if anything is missing & I will provide it.
Thanks for any assistance
  4 Comments
Jeff
Jeff on 3 Jun 2017
I have had NO responses on this matter whatsoever. Is there anything I need to provide or is the matter too open-ended?
If anyone has attempted to address this & they are getting errors it is likely due to the lack of input values & data. If you experience this you need to import the contents of the data.mat into your WORKSPACE prior to running the models. Maybe I should have specified that up front, but I assumed those who are examining this would already realize that a priori. I might have assumed too much.
Walter Roberson
Walter Roberson on 4 Jun 2017
People with simscape experience seldom post on MATLAB Answers. As far as I know none of hundred or so most active volunteers have simscape experience (or not much of it.)

Sign in to comment.

Answers (1)

Jeff
Jeff on 4 Jun 2017
I believe I found the source of the problem, but I do not know how to deal with it. It appears that the ZEROS of X0 & X1 are not exactly the same. They should be, but at 10^10 they do differ. You can see this by running the following code after running the .slx model:
TF=zpk(SIMULINKbode.values)
z=TF(:,1).z;
z3=cell2mat(z(3));
z9=cell2mat(z(9));
zdiff=z3-z9(1:2);
Inspection of zdiff shows the difference. Analytically, X0 & X1 should be identical. In fact, subtracting the 2 signals in the time domain shows this:
x.signals.values(:,3)-x.signals.values(:,4);
So transforming into the frequency domain introduces numerical error. What is the best strategy to avoid this or do I simply have to live with it?

Community Treasure Hunt

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

Start Hunting!