電子書籍の厳選無料作品が豊富!

伝達関数が 1/s^2+s+1 のシステムのインディシャル応答を描いて整定時間をmatlabで求めたいのですが、どのようにすれば良いのか教えてください。
求め方は、インディシャル応答の±5%に入った範囲を後ろから求める方法を教えてください。
お願いします。

A 回答 (1件)

% こんな感じでしょう


% せいてい時間って グラフのまるで良いのか?
% 逆ラプラス変換に 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;
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
実際にプログラムしてみたんですが、エラーがでて求めることができませんでした。
今回の方法は、グラフ上にプロットするプログラムみたいですが、整定時間の値を求めるようなプログラムはありませんか?

お礼日時:2007/01/27 16:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!