c2d函数使丑陋的系统模型的矩阵

20视图(30天)
泰勒特耶
泰勒特耶 2017年1月31日
评论道: 泰勒特耶2017年2月21日
我有下面的状态空间模型:
(0 = 0.33 - 0.198);
0 0 0.1320);
0 0 0];
B = [0;0;1);
C = (1 1 1);
D = [0];
太好了。很简单,是吗?
好的。所以现在我想要一个离散模型的版本。运行汇集100 Td返回这个女士:
广告= [0.80795282 0.015650753 0.0092538511;
-0.12697394 0.98852557 0.0060808980;
-14.567794 -1.4519062 0.096798912);
Bd = (0.00060730655;
0.00040152686;
0.046067409);
Cd = C;
Dd = D;
这似乎是一个非常丑陋的代表曾经非常直观地理解系统。现在我必须规模致动器命令B矩阵的一些微小的分数,不能单精度浮点格式的优秀代表,在职位和我的系统矩阵表示系统已经变成了仅仅是数学上方便的坐标。但这是相当恼人的所有其他条款成为零当他们一旦零。
有没有办法我可以改变这个离散表示只包括非零项原始模型的位置吗?(1、2),(1,3)(2、3)和直接输入?即B = (0 0 1);
我怎么能使模型离散,但保留简单吗?
什么好主意吗?

答案(1)

汉斯·Daepp
汉斯·Daepp 2017年2月16日
离散化系统时,状态矩阵有不同的含义:
  1. x (k + 1) = * x (k) + B * u (k)
  2. y (k) = C * x (k) + D * u (k)
也就是情商(1)显示了系统可以表示为一个值的总和以前的时间步骤,而不是定义一个描述系统行为的微分方程组。自然变化的结构矩阵,并解释为什么你不能简单地用不同的取代他们的当前值。默认情况下, “汇集”使用了一个零 的转换,但您可以使用不同的方法取决于您的应用程序和所需的输出。你可能会发现 这一页的文档 转换方法有关。
也就是说,您可以执行一个相似变换不同的系统表示。例如,您可以使用MATLAB的 “佳能”功能 将系统转换为模态或同伴的形式。这些形式是基于一个矩阵的转换,因此,尽管他们不会有相同的含义,他们已经连续系统,他们仍然有效转换,将获得更好的表征,如下列二阶系统:
> > = [0 1;-0.5 - 1];B = [0;1);C = 0 [1];D = 0;
> > sys = ss (A, B, C, D);
> > sysd =汇集(sys, 0.01)
sysd =
一个=
x1x2
x110.00995
x2-0.0049750.99
B =
u1
x14.983 e-05
x20.00995
C =
x1x2
日元10
D =
u1
日元0
样本时间:0.01秒
离散时间状态空间模型。
> > [sysd2 T] =佳能(sysd,“同伴”)
sysd2 =
一个=
x1x2
x10-0.99
x211.99
B =
u1
x11
x20
C =
x1x2
日元4.983 e-050.0001488
D =
u1
日元0
样本时间:0.01秒
离散时间状态空间模型。
T =
1.0 e + 04 *
-0.9950 - 0.0150
1.0050 - -0.0050
另外,如果有一个形式,你想改变,你有对应的变换矩阵T,您可以使用 “ss2ss”执行相似变换 并获得一个等价的状态表示。
1评论
泰勒特耶
泰勒特耶 2017年2月21日
我想我明白你的意思。谢谢你的解释。离散系统矩阵的线性组合之前的状态,而不是一个一阶的颂歌。
那么,你知道如何将选择一个变换矩阵,可以“归零”选定元素的离散系统矩阵?说,如果我想要唯一的非零元素出现在(1、2),(1、3),和一个(2、3),是否有办法找出相似变换会是什么样子的呢?需要对相似变换矩阵是非奇异,但这并不帮我缩小我的选择范围。我基本上建立随机变换矩阵,看看他们做的布局系统矩阵。这显然是一个糟糕的解决问题的方法。
还是要比这更复杂,因为我输入矩阵也包含非零和次方根元素不直观的地方吗?

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!