4
$\begingroup$

I am puzzled by the result of OutputResponse[sys, {{u1,u2,u3},{v1,v2,v3}}]. OutputResponse is used this way in the first "Application" in the documentation for KalmanEstimator. I don't see much in the documentation for OutputResponse that helps me understand what it is doing here. Consider the following:

Clear["Global`*"];
a={{a11,a12},{a21,a22}};
b={{b11,b12},{b21,b22}};
c= {{c1,c2}};
d= {{d1,d2}};
ssm=StateSpaceModel[{a, b, c, d}, SamplingPeriod->t];
y=OutputResponse[ssm, {{u1,u2,u3},{v1,v2,v3}}];

I was able to seperate (y) above into the portion from {u1,u2,u3} and the portion from {v1,v2,v3} as follows.

yu=OutputResponse[ssm, {{u1,u2,u3},{0,0,0}}];
yv=OutputResponse[ssm, {{0,0,0},{v1,v2,v3}}];
Simplify[y==yu+yv]

(* True *)

I was also able to see that OutputResponse[ssm1, {{u1,u2,u3},{0,0,0}}] === OutputResponse[ssm2, {{0,0,0},{u1,u2,u3}}] when ssm1 and ssm2 are related by rearanging matrices (a, b, c, d) as follows.

ssm1=ssm;
ar=Reverse/@Reverse@a;
br=Reverse/@Reverse@b;
cr=Reverse/@Reverse@c;
dr=Reverse/@Reverse@d;
ssm2=StateSpaceModel[{ar,br,cr,dr}, SamplingPeriod->t];
OutputResponse[ssm1, {{u1,u2,u3},{0,0,0}}]===
   OutputResponse[ssm2, {{0,0,0},{u1,u2,u3}}]

(* True *)

The result we get from OutputResponse[ ssm, { {u1,u2,u3}, {v1,v2,v3} }],
is the response of (ssm) to what input? When (ssm) is a StateSpaceModel.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.