フィルターのクリア

Creating Symbolic state space model and transforming to canonical form?

3 ビュー (過去 30 日間)
Johnathon Street
Johnathon Street 2021 年 4 月 17 日
コメント済み: Johnathon Street 2021 年 4 月 17 日
Hi all,
Is it possible to create a state space model based on symbolic parameters?... and then convert this model into controllable cannonical form?
Thanks,
Johnathon Street

採用された回答

Paul
Paul 2021 年 4 月 17 日
編集済み: Paul 2021 年 4 月 17 日
Yes, at least in principle. For example:
>> A=sym('a',3)
A =
[ a1_1, a1_2, a1_3]
[ a2_1, a2_2, a2_3]
[ a3_1, a3_2, a3_3]
>> B=sym('b',[3 1])
B =
b1
b2
b3
>> C=[B A*B A^2*B]; % controllability matrix
>> t3 = [0 0 1]/C;
>> Tinv=[t3;t3*A;t3*A^2]; % state transformation
>> Ac = simplify(Tinv*A/Tinv,100)
Ac =
[ 0, 1, 0]
[ 0, 0, 1]
[ a1_1*a2_2*a3_3 - a1_1*a2_3*a3_2 - a1_2*a2_1*a3_3 + a1_2*a2_3*a3_1 + a1_3*a2_1*a3_2 - a1_3*a2_2*a3_1, a1_2*a2_1 - a1_1*a2_2 - a1_1*a3_3 + a1_3*a3_1 - a2_2*a3_3 + a2_3*a3_2, a1_1 + a2_2 + a3_3]
>> Bc = simplify(Tinv*B)
Bc =
0
0
1
  6 件のコメント
Walter Roberson
Walter Roberson 2021 年 4 月 17 日
A=sym('a',3)
A = 
B=sym('b',[3 1])
B = 
C=[B A*B A^2*B]; % controllability matrix
t3 = [0 0 1]/C;
Tinv=[t3;t3*A;t3*A^2]; % state transformation
Ac = simplify(Tinv*A/Tinv,100)
Ac = 
Bc = simplify(Tinv*B)
Bc = 
Works for me. I just copied Paul's code exactly.
Johnathon Street
Johnathon Street 2021 年 4 月 17 日
Yeah I just now got it to work. I dont know what i was doing...
It works just fine.
Thanks again

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by