MATLAB中的ss函数根据传递函数求状态空间,如何自定义其中的C和D?
由于利用ss函数对传递函数求得到的状态模型是不固定的,有A、B、C、D四个结果矩阵,现在想求得C=I(单位矩阵),D为0,A和B可以是任意的结果的状态空间模型,如何做到?...
由于利用ss函数对传递函数求得到的状态模型是不固定的,有A、B、C、D四个结果矩阵,现在想求得C=I(单位矩阵),D为0,A和B可以是任意的结果的状态空间模型,如何做到?
展开
1个回答
展开全部
直接用ss和tf函数就可以了,例如:
>> G=tf([1 2],[1 2 3])
Transfer function:
s + 2
-------------
s^2 + 2 s + 3
>> G1=ss(G)
a =
x1 x2
x1 -2 -1.5
x2 2 0
b =
u1
x1 2
x2 0
c =
x1 x2
y1 0.5 0.5
d =
u1
y1 0
Continuous-time model.
>> G2=tf(G1)
Transfer function:
s + 2
-------------
s^2 + 2 s + 3
>> whos
Name Size Bytes Class Attributes
G 1x1 2494 tf
G1 1x1 2385 ss
G2 1x1 2494 tf
追问
您好,我还是想问一下如题目中所问的,您得到的这个结果中c不是单位矩阵,即[1 0;0 1],那么有办法将这个状态空间的结果等效为c为[1 0;0 1],而a和b可以是任意的,这种形式吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询