[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [OctDev] control-2.3.51 released in package forum - please upload
From: |
Lukas Reichlin |
Subject: |
Re: [OctDev] control-2.3.51 released in package forum - please upload |
Date: |
Tue, 5 Jun 2012 14:00:43 +0200 |
On 05.06.2012, at 12:06, c. wrote:
>
> On 5 Jun 2012, at 11:34, Lukas Reichlin wrote:
>
>> Well, the sign IS relevant. But the two state-space models are equivalent if
>> you can find a diagonal transformation matrix T with entries -1 and 1 such
>> that
>>
>> Aexp = T \ Aobs * T
>> Bexp = T \ Bobs
>> Cexp = Cobs * T
>> Dexp = Dobs
>>
>> I don't know which ATLAS routine returns different solutions and why. If
>> there is such a T, then the result is not wrong in the sense of control
>> engineering.
>> Using
>> assert (abs (Mo), abs (Me), 1e-4)
>> i just a crutchm, we should find and test T.
>>
>> BTW: M = [A, B; C, D
>
> Thanks for the explanation.
> Are B and/or C above invertible?
> what are their sizes?
>
> c.
In general, B and C are not even square.
dx/dt = A*x(t) + B*u(t)
y(t) = C*x(t) + D*u(t)
a p-by-m state-space system with n states
p: number outputs
m: number of inputs
n: number of states (first-order linear differential equations)
A(n-by-n)
B(n-by-m)
C(p-by-n)
D(p-by-m)
u(t) (m-by-1)
x(t) (n-by-1)
y(t) (p-by-1)
If there is fifth matrix E (n-by-n) (E != eye(n)), the model is called a
descriptor state-space system. (Note that we usually don't write I*dx/dt = … if
E is an identity matrix, we leave that out and get the formula at the top of my
posting)
E*dx/dt = A*x(t) + B*u(t)
y(t) = C*x(t) + D*u(t)
If E is not invertible, then the model is valid but not realizable in practice
(similar to IIR filters with more zeros than poles). Note that there are two
transformation matrices Tl and Tr
from "help @lti/prescale":
*Equations*
Es = Tl * E * Tr
As = Tl * A * Tr
Bs = Tl * B
Cs = C * Tr
Ds = D
For realizable state-space models, Tl and Tr are inverse of each other:
dx/dt = E \ A x(t) + E \ B u(t)
y(t) = C x(t) + D u(t)
Since
(Tl * E * Tr)^-1 = Tr^-1 * E^-1 * Tl^-1
Tl drops out of the equation and you get
As = Tr \ A * Tr
Bs = Tr \ B
Cs = C * Tr
Ds = D
which is the result we already know. Of course you can introduce a new Tl =
Tr^-1
and write
As = Tl * A * Tr
Bs = Tl * B
Cs = C * Tr
Ds = D
Regards,
Lukas
- Re: control-2.3.51 released in package forum - please upload, (continued)
- Re: control-2.3.51 released in package forum - please upload, Carnë Draug, 2012/06/03
- Re: control-2.3.51 released in package forum - please upload, Sergei Steshenko, 2012/06/03
- Re: control-2.3.51 released in package forum - please upload, Lukas Reichlin, 2012/06/04
- Re: control-2.3.51 released in package forum - please upload, marco atzeri, 2012/06/04
- Re: [OctDev] control-2.3.51 released in package forum - please upload, c., 2012/06/04
- Re: [OctDev] control-2.3.51 released in package forum - please upload, Lukas Reichlin, 2012/06/04
- Re: [OctDev] control-2.3.51 released in package forum - please upload, Thomas Weber, 2012/06/04
- Re: [OctDev] control-2.3.51 released in package forum - please upload, c., 2012/06/05
- Re: [OctDev] control-2.3.51 released in package forum - please upload, Lukas Reichlin, 2012/06/05
- Re: [OctDev] control-2.3.51 released in package forum - please upload, c., 2012/06/05
- Re: [OctDev] control-2.3.51 released in package forum - please upload,
Lukas Reichlin <=
- Re: control-2.3.51 released in package forum - please upload, Lukas Reichlin, 2012/06/04
- Re: control-2.3.51 released in package forum - please upload, Sergei Steshenko, 2012/06/04
Re: control-2.3.51 released in package forum - please upload, Sergei Steshenko, 2012/06/24