void LTIZeros(TVec z, ref Double gain, TMtx A, TVec B, TVec C, Double D)
Find zeros of a linear time invariant system in state-space form.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | z | TVec | source TVec |
| 2 | gain | Double (ref) | output |
| 3 | A | TMtx | source TMtx |
| 4 | B | TVec | source TVec |
| 5 | C | TVec | source TVec |
| 6 | D | Double | scalar |
Result: stored in self (calling object)
Remarks:
Compute zeros of a linear time invariant system represented in state space form. The resulting zeros are placed in Z and computed system gain in Gain.
Examples
using Dew.Math;
using Dew.Math.Editors;
using Dew.Math.Units;
using Dew.Signal;
using Dew.Signal.Units;
using Dew.Math.Tee;
using Dew.Signal.Tee;
private void button1_Click(object sender, EventArgs e)
{
Vector z = new Vector(0);
Vector p = new Vector(0);
Vector b = new Vector(3);
Vector c = new Vector(3);
Matrix a = new Matrix(3, 3);
double k,d;
a.SetIt(3, 3, false, new double[9] {0,1,2,
2,3,4,
5,6,3});
b.Values[0] = 1;
b.Values[1] = 0.5;
b.Values[2] = 2;
c.Values[0] = 1;
c.Values[1] = 2.5;
c.Values[2] = 2;
d = 1;
// .... get a state space version and store in A,B,C,D
a.Eig(p,TMtxType.mtGeneral); //compute poles
LinearSystems.LTIZeros(z, out k, a, b, c, d); //get zeros and gain
MtxVecEdit.ViewValues(z,"Zeros",true);
MtxVecEdit.ViewValues(p,"Poles",true);
}