実験1:状態方程式、シミュレーションシステムの伝達関数モデル

まず、実験の目的
  1. 得るための数学的モデルとの間の数学的モデルにマスター・パラメータは、関連する取得MATLABのコマンド
  2. 把握オイラー法とRK 漸化式法
  3 把握オイラー法とRK の法則MATLABのアルゴリズムを達成
第二に、実験コンテンツ
  1は、オイラー法、ルンゲで表される- クッタ法以下のシステムを解決する:
  (1)R&LT = 4K オーム] 、C = 1。マイクロF. 、L = IH 、シミュレーション時間:0.03s   (2 )  R&LT = 280 オームC = 8。マイクロF. L = 2H 、シミュレーション時間:0.1秒 

  

     下二回路部ステップ応答パラメータ。(初期条件がゼロです)。

  2.  精通マスター理解MATLABのモデルパラメータ変換及び抽出命令フェッチ(書き込み動作が上記システムの結果)

   G = TF(NUM、DEN)G1 = TF(G)

   ZPK = G(Z、P、K)= G1 ZPK(G)

  G = SS(A、B、C、D)G3 = SS(G)

  [民、デン] = tfdat(G)

  [Z、P、K] = zpkdata(G)

  [A、B、C、D] = ssdata(G)

第三に、実験的な要件
  1. プレビューコンテンツと実験完了
  2に理論解析、実験手順、プログラムの実行結果との結果:少なくとも含む完全なテストレポートを、
分析。

第四に、実験の内容

  1.モデル

  コラム式:

  

   状態空間(タイムドメイン):

   

    行列形式で書かれて:

  

    伝達関数を(コンプレックス)を得るためにラプラス変換:

  

    2.実験コード:

**********%抽出************* 
R&LT = 4000、
C = 0.000001; 
L = 1; 
NUM = [1]; 
DEN = [L * C R * C ,. 1]; 
G = TF(NUM、DEN)
のGI = TF(G)
G2 = ZPK(G)
G3 = SS(G)
[民、デン] = tfdata(G)
[Z、P、K ] = zpkdata(G)
[A、B、C、D] = SSDATA(G)

  質問(1):  

clear;
clc;
%******************************************%%
%               Question 1
%******************************************%%
R1 = 4000;
C1 = 0.000001;
L1 = 1;
A1 = [0, 1/C1;-1/L1,-R1/L1];
B1 = [0;1/L1];
h1 = 0.00003;       % step size
y1 = [0;0];
y2 = [0;0];
% ********  Euler method  **********%
for i1 = 0:1:1000   
    t1 = i1*h1;     % simulation time: 0.03s
    x1(i1+1) = t1;
    k1 = A1 * y1 + B1;
    k2 = A1 * (y1+h1*k1) + B1;
    y1 = y1 + (k1 +k2)*h1/2;
    result_for_Euler_1(i1+1) = y1(1,1);
end
% ********  4 order Runge-Kutta method  **********%
for i2 = 0:1:1000   
    t2 = i2*h1;     % simulation time: 0.03s
    x2(i2+1) = t2;
    k1 = A1 * y2 + B1;
    k2 = A1 * (y2+h1*k1/2) + B1;
    k3 = A1 * (y2+h1*k2/2) + B1;
    k4 = A1 * (y2+h1*k3) + B1;
    y2 = y2 + (k1 +k2)*h1/2;
    result_for_RK_1(i2+1) = y2(1,1);
end
subplot(2,2,1);plot(x1,result_for_Euler_1,'b');
xlabel(' time  /s ');ylabel(' Uc /V ');title('Result for Euler method');legend('Euler');
subplot(2,2,2);plot(x2,result_for_RK_1,'r');
xlabel(' time  /s ');ylabel(' Uc /V ');title('Result for Runge-Kutta method');legend('Runge-Kutta');
subplot(2,1,2);plot(x1,result_for_Euler_1,'b', x2,result_for_RK_1,'r');
xlabel(' time  /s ');ylabel(' Uc /V ');
title('Comparision of results between Euler and RK');legend('Euler','Runge-Kutta');

  问题(2):

clear;
clc;
%******************************************%%
%               Question 2
%******************************************%%
R1 = 280;
C1 = 0.000008;
L1 = 2;
A1 = [0, 1/C1;-1/L1,-R1/L1];
B1 = [0;1/L1];
h1 = 0.0002;       % step size
y1 = [0;0];
y2 = [0;0];
% ********  Euler method  **********%
for i1 = 0:1:500
    t1 = i1*h1;     % simulation time: 0.1s
    x1(i1+1) = t1;
    k1 = A1 * y1 + B1;
    k2 = A1 * (y1+h1*k1) + B1;
    y1 = y1 + (k1 +k2)*h1/2;
    result_for_Euler_1(i1+1) = y1(1,1);
end

% ********  4 order Runge-Kutta method  **********%
for i2 = 0:1:500   
    t2 = i2*h1;     % simulation time: 0.1s
    x2(i2+1) = t2;
    k1 = A1 * y2 + B1;
    k2 = A1 * (y2+h1*k1/2) + B1;
    k3 = A1 * (y2+h1*k2/2) + B1;
    k4 = A1 * (y2+h1*k3) + B1;
    y2 = y2 + (k1 +k2)*h1/2;
    result_for_RK_1(i2+1) = y2(1,1);
end
subplot(2,2,1);plot(x1,result_for_Euler_1,'b');
xlabel(' time  /s ');ylabel(' Uc /V ');title('Result for Euler method');legend('Euler');
subplot(2,2,2);plot(x2,result_for_RK_1,'r');
xlabel(' time  /s ');ylabel(' Uc /V ');title('Result for Runge-Kutta method');legend('Runge-Kutta');
subplot(2,1,2);plot(x1,result_for_Euler_1,'b', x2,result_for_RK_1,'r');
xlabel(' time  /s ');ylabel(' Uc /V ');
title('Comparision of results between Euler and RK');legend('Euler','Runge-Kutta');

  3. 运行结果

   问题(1):

   

   问题(2):

  

 

おすすめ

転載: www.cnblogs.com/KaifengGuan/p/11837496.html