日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结

發布時間:2025/4/5 windows 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一篇回到目錄下一篇

《Matlab/Simulink與控制系統仿真》程序指令總結

  • Matlab_Simulink_BookExample
  • 9. 線性系統狀態空間分析
    • 9.2.4 狀態方程求解
      • 9.2.4.2 矩陣指數的性質及求法
      • 9.2.4.1 齊次方程求解
      • 9.2.4.3 非齊次方程求解
    • 9.1 Matlab 函數
    • 例題 9_2
    • 例題 9_3
    • 例題 9_4
    • 例題 9_5
    • 例題 9_6
    • 例題 9_7
    • 例題 9_8
    • 例題 9_9
    • 例題 9_10
    • 例題 9_11
    • 例題 9_12

書中詳細實例代碼可見:Github

更多關于基礎原理的講解:【控制】第九章-線性系統的狀態空間描述

Matlab_Simulink_BookExample

圖書:《Matlab/Simulink與控制系統仿真》

9. 線性系統狀態空間分析

狀態空間描述具有以下特點:

  • 狀態空間描述考慮到了“輸入-狀態-輸出”這一過程,考慮到了被經典控制理論的“輸入-輸出”描述所忽略的狀態,因此它揭示了問題的本質,即輸入引起狀態的變化,而狀態決定了輸出
  • 輸入引起的狀態變化是一個運動過程,數學上表現為向量微分方程,即狀態方程。狀態決定輸出是一個變換過程,數學上表現為變換方程,即代數方程
  • 系統的狀態變量個數等于系統的階數,一個 nnn 階系統的狀態變量個數為 nnn
  • 對于給定的系統,狀態變量的選擇不唯一,狀態變量的線性變換結果也可以作為狀態變量。
  • 一般來說,狀態變量不一定是物理上可測量或可觀察的量,但從便于構造控制系統來說,把狀態變量選為可測量或可觀察的量更合適。
  • 9.2.4 狀態方程求解

    9.2.4.2 矩陣指數的性質及求法

    對于線性定常系統來說,齊次方程的求解可歸結為求矩陣指數 eA(t?t0)e^{A(t-t_0)}eA(t?t0?)eA(t?t0)e^{A(t-t_0)}eA(t?t0?) 具有以下基本性質:

  • (性質1)組合性質,從

  • (性質12)矩陣指數 eAte^{At}eAt 可表示為有限項之和,即 eAt=∑i=0n?1Aiai(t)e^{At} = \sum_{i=0}^{n-1} A^i a_i(t)eAt=i=0n?1?Aiai?(t)

  • Proof. 見書 P243頁

  • (性質13)矩陣指數函數可用拉氏反變換得到:eAt=L?1[(sI?A)?1]e^{At} = \mathcal{L}^{-1}[(sI-A)^{-1}]eAt=L?1[(sI?A)?1]
  • 9.2.4.1 齊次方程求解

    X(t)=eA(t?t0)X(t0)X(t) = e^{A(t-t_0)} X(t_0)X(t)=eA(t?t0?)X(t0?)

    X(t)=eAtX0X(t) = e^{At}X_{0}X(t)=eAtX0?

    9.2.4.3 非齊次方程求解

    X(t)=eA(t?t0)X(t0)+eAt∫t0te?AτBU(τ)dτX(t) = e^{A(t-{t_0})} X(t_0) + e^{At}\int_{t_0}^{t} e^{-A\tau} BU(\tau)d\tauX(t)=eA(t?t0?)X(t0?)+eAtt0?t?e?AτBU(τ)dτ

    9.1 Matlab 函數

    tf2ss() 將傳遞函數模型轉換為狀態空間模型

    zp2ss() 將零極點模型轉換為狀態空間模型

    ss 直接建立狀態空間模型

    canon() 將系統直接轉化為對角型的函數

    ss2ss() 進行狀態空間表達式的線性變換的函數

    rat() 返回一個有理近似值的字符向量

    ctrb() 求取系統可控判別矩陣的函數

    obsv() 求取系統可觀判別矩陣的函數

    ctrbf() 系統進行能控性分解的函數

    obsvf() 系統進行能觀測性分解的函數

    lyap() lyap2() dlyap() 求解李亞普諾夫方程函數

    例題 9_2

    % Page249:已知開環傳函,求狀態空間模型 clear; clc;% G1 函數的分子、分母多項式 num = [2, 8, 6]; den = [1. 8, 16, 6]; % 將 G1 傳遞函數模型轉換為狀態空間模型 [A1, B1, C1, D1] = tf2ss(num, den); % G2 函數的零極點、增益 z = [-1, -3]; p = [0, -2, -8]; k = 2; % 將 G2 傳遞函數模型轉換為狀態空間模型 [A2, B2, C2, D2] = zp2ss(z, p, k);

    例題 9_3

    % Page250:已知系統的動力學微分方程,求系統的狀態空間模型 clear; clc;% 微分方程輸入量、輸出量的系數 num = [1, 2, 1]; den = [1, 3, 3, 1]; % 建立傳遞函數模型 sys1 = tf(num, den); % 求狀態空間表達式 sys = ss(sys1);

    例題 9_4

    % Page251:已知系統狀態空間模型,求系統的對角標準型 clear; clc;A = [0 1 0; 0 0 1; -6 -11 -6]; B = [1; 0; 0]; C = [1 1 0]; D = 0; % 生成對角標準型 [As, Bs, Cs, Ds, Ts] = canon(A, B, C, D, 'mod');

    例題 9_5

    % Page252:已知系統傳遞函數,求系統約當標準型 clear; clc;num1 = [2, 1]; den1 = [1, 7, 14, 8]; % 求系統的分式表達式 [r1, p1, k1] = residue(num1, den1); % 對分式結果進行變換,得到約當標準型 A1 = diag(p1); B1 = ones(length(r1), 1); C1 = rat(r1); D1 = 0;

    例題 9_6

    % Page253:已知矩陣,求解狀態轉移矩陣 clear; clc;A = [0 1 0;0 0 1;1 -3 3;]; % 狀態轉移時刻 t = 0.2; % 計算狀態轉移矩陣 Phi = expm(A*t);

    例題 9_7

    % Page253:已知狀態空間模型,求解脈沖響應、階躍響應、響應曲線 clear; clc;A = [-2 -2.5 -0.5; 1 0 0; 0 1 0]; B = [1; 0; 0]; C = [0 1.5 1]; D = []; % 建立狀態空間模型 G = ss(A,B,C,D); % 仿真時間 t = [0:0.1:20]'; % 計算脈沖響應并添加柵格 % impulse(G); grid on % 計算階躍響應并添加柵格 % step(G); grid on% 接著輸入如下代碼 % 初始狀態 xo = [1; 0; 2]; % 輸入量 u u(1, 1:20) = 2*ones(1, 20); u(1, 21:201) = 0.5*ones(1, 181); % 計算輸入響應 [y, t, x] = lsim(G, u, t, xo); % 繪制曲線 plot(t,x(:,1),'-', t,x(:,2),'--', t,x(:,3),'-.') % 添加坐標軸 xlabel('時間/秒'); ylabel('幅值'); % 添加柵格 grid % 添加標注 text(6, 0.3, 'x_1(t)'); text(6, -0.5, 'x_2(t)'); text(8, 1.8, 'x_3(t)');figure(2) plot(t,y)

    例題 9_8

    % Page262:已知狀態空間模型,判斷系統是否可控?是否可觀? clear; clc;A = [1 0 -1; -1 -2 0; 3 0 1]; B = [1 0; 2 1; 0 2]; C = [1 0 0; 0 -1 0]; % 計算可控判別矩陣 M = ctrb(A, B); % 計算可控判別矩陣的秩 RM = rank(M); % 計算可觀判別矩陣 N = obsv(A, C); % 計算可觀判別矩陣的秩 RN = rank(N);

    例題 9_9

    % Page263:已知狀態空間模型,判斷可控性,如果完全可控,轉化為可控 II 型 clear; clc;A = [1 2 0; 3 -1 1; 0 2 0]; B = [2; 1; 1]; C = [0 0 1]; D = 0; % 計算可控判別矩陣 T = ctrb(A, B); % 計算可控判別矩陣的秩 R = rank(T);% 計性狀態空間的線性變換 [Ac2, Bc2, Cc2, Dc2] = ss2ss(A, B, C, D, inv(T));

    例題 9_10

    % Page263:已知狀態空間模型,求該系統的能觀 I 型 clear; clc;A = [1 2 0; 3 -1 1; 0 2 0]; B = [2; 1; 1]; C = [0 0 1]; D = [0]; % 計算可觀判別矩陣 T = obsv(A, C); % 進行狀態空間的線性變換 [Ao1, Bo1, Co1, Do1] = ss2ss(A, B, C, D, T);

    例題 9_11

    % Page264:已知狀態空間模型,進行能控性分解和能觀性分解 clear; clc;A = [0 0 -1; 1 0 -3; 0 1 -3]; B = [1; 1; 0]; C = [0 1 -2]; % 能控性結構分解 [Ac, Bc, Cc] = ctrbf(A, B, C); % 能觀性結構分解 [Ao, Bo, Co] = obsvf(A, B, C);% 若想要得到標準形式 Acc = rot90(Ac, 2); Bcc = rot90(Bc, 2); Ccc = rot90(Cc, 2);

    例題 9_12

    % Page269:已知系統狀態矩陣,給定正定對稱矩陣,求李亞普諾夫方程解 P clear; clc;% 狀態矩陣 A = [0 1; -1 -1]; % 給定的正定對稱矩陣 Q = [1 0; 0 1]; % 求解李亞普諾夫方程 P = lyap(A', Q); 上一篇回到目錄下一篇

    總結

    以上是生活随笔為你收集整理的P9 线性系统状态空间分析-《Matlab/Simulink与控制系统仿真》程序指令总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。