- 締切済み
MATLABによる整定時間の求め方
伝達関数が 1/s^2+s+1 のシステムのインディシャル応答を描いて整定時間をmatlabで求めたいのですが、どのようにすれば良いのか教えてください。 求め方は、インディシャル応答の±5%に入った範囲を後ろから求める方法を教えてください。 お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- m0r1_2006
- ベストアンサー率36% (169/464)
% こんな感じでしょう % せいてい時間って グラフのまるで良いのか? % 逆ラプラス変換に symbolic toolbox が必要かも clear; clc; close all; syms s t; G = 1/(s^2+s+1); Y = G/s; % インデシャル y = ilaplace(Y) %% 逆ラプラス変換 T = 0:0.1:30; %%% 時間軸 LL = double(limit(y, t, +inf)); %% 極限値 range = double(abs(LL * 0.05)); %% 範囲 YY = subs(y, t, T); %% インデシャル応答(配列) figure(1); plot(T,YY); %% インデシャル応答のグラフ hold on; plot(T,LL+range,'r'); plot(T,LL-range,'r'); YY1 = YY - LL; %%% 極限値を 0 中心にする. I = find(abs(YY1)>range); %% YY1 の絶対値が range を超えている添え字 index = max(I)+1; %%% range を超える添え字の最大値 + 1(これ以降は range 内) plot(T(index), YY(index),'go'); hold off;
お礼
回答ありがとうございます。 実際にプログラムしてみたんですが、エラーがでて求めることができませんでした。 今回の方法は、グラフ上にプロットするプログラムみたいですが、整定時間の値を求めるようなプログラムはありませんか?