Problem in conversion the state-space of the system to transfer function
7 次查看(过去 30 天)
显示 更早的评论
I want to return the state-space to transfer function, if the system reduced is by balanced real technique.
I have this code
s=tf('s');
G=(s^3+11*s^2+36*s+26)/(s^4+14.6*s^3+74.96*s^2+156.7*s+99.65);
[A,B,C,D]=ssdata(G);
[AA, BB, CC,DD] = balreal(A, B, C);
[b,a] = ss2tf(AA,BB,CC,DD);
if i want to convert state-space representation to transfer function using the function 'ss2tf', i find this error :
Error using ss2tf (line 26)
The C and D matrices must have the same number of rows.
Can any one help me how can i solve this error ?
0 个评论
采纳的回答
Stephan
2018-9-17
编辑:Stephan
2018-9-17
Hi,
this appears to run:
s=tf('s');
G=(s^3+11*s^2+36*s+26)/(s^4+14.6*s^3+74.96*s^2+156.7*s+99.65);
[sys,g] = balreal(G);
[b,a] = ss2tf(sys.A, sys.B, sys.C, sys.D);
result is:
>> transfun = tf(a,b)
transfun =
s^4 + 14.6 s^3 + 74.96 s^2 + 156.7 s + 99.65
--------------------------------------------
s^3 + 11 s^2 + 36 s + 26
Continuous-time transfer function.
Best regards
Stephan
2 个评论
Stephan
2018-9-17
编辑:Stephan
2018-9-17
Hi,
s=tf('s');
G=(s^3+11*s^2+36*s+26)/(s^4+14.6*s^3+74.96*s^2+156.7*s+99.65);
[sys,g] = balreal(G);
elim = g < 10e-4;
rsys = modred(sys,elim);
[b, a] = ss2tf(rsys.A, rsys.B, rsys.C, rsys.D);
transfun = tf(b,a);
You can control the order of the resulting system with the bound you set on elim variable by:
elim = g < 10e-4;
Before reduction g is:
g =
0.1374
0.0069
0.0003
0.0002
If elim has 2 entries after setting the bound by using:
elim = g < 10e-4;
elim =
4×1 logical array
0
0
1
1
then your resulting system has order 2:
transfun =
-0.0001171 s^2 + 0.9978 s + 1.119
---------------------------------
s^2 + 4.634 s + 4.288
If you change the value for g to a bigger value:
elim = g < 10e-3;
elim =
4×1 logical array
0
1
1
1
and your resulting system has order 1:
transfun =
-0.01389 s + 1.174
------------------
s + 4.498
Best regards
Stephan
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dynamic System Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!