MATLABによるステップ応答

このQ&Aのポイント
  • MATLABで伝達関数を状態表示に変換し、初期値100から始まるステップ応答をシミュレーションしました。
  • 結果は予想とは異なり、6.5から始まりました。原因が不明です。
  • ご意見をお聞かせください。
回答を見る
  • ベストアンサー

MATLAB による ステップ応答

MATLABでシミュレーションしました。 伝達関数G(s)=770/(12500s+1)を状態表示に以下のように変換して、 初期値=100を与えた時のステップ応答を行いました。 ------------------------------------------------------------- num1 = 770; den1 = [12500 1]; [APlant BPlant CPlant DPlant] = tf2ss(num1, den1); x0Plant = 100 ------------------------------------------------------------- 結果、グラフはt=0の時、初期値の100から出て始まると予想していたのですが、結果として6.5から始まりました。 この原因が不明です。 もし、よろしければご意見をお願いします。

  • youen
  • お礼率100% (2/2)

質問者が選んだベストアンサー

  • ベストアンサー
  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.2

プラントの出力をy,状態変数x,入力をuとすると、 出力方程式は y(t)=C*x(t)+D*u(t) になります。 t=0でu(0)=0とすると、 y(0)=C*x(0)ですから、y(0)を実現するのに必要なxの初期値x(0)は x(0)=C^(-1)*y(0) であたえてやる必要があります。

youen
質問者

お礼

本当に、親切な御回答ありがとうございます。 よく理解できました。 本当にありがとうございました!!

その他の回答 (1)

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

初期値100というのは、出力(y)の初期値ですよね? y=100に相当する状態変数xの値(=Cplant^(-1)*y0)を算定して、それをxの初期値として使う必要があるのではないでしょうか。

youen
質問者

お礼

☆初期値100というのは、出力(y)の初期値ですよね? ★その通りです。 おっしゃる通りに、シミュレーションした結果、成功しました。 本当にありがとうございます!! ただ、どうして(=Cplant^(-1)*y0)を算定しなければならないのか、しっかりと理解していません。よろしければ、教授を願います。

関連するQ&A

  • ステップ応答について

    カテゴリーが違うかもしれませんが制御についての質問です。 ある製品を開発しています。 その制御を行なうためにシミュレーションでその物の動きを見たのですが ステップ応答が0に収束するという結果が得られました。 しかしステップ応答は0に収束するのはおかしいですよね? ステップ応答が0になることって考えられるんでしょうか?

  • 伝達関数のステップ応答→グラフを書く

    伝達関数G(s)=50/(1+100S)(1+12S) のステップ応答h(t)を求め、コンピューターで数値計算を行いグラフを書くという問題で、計算を行うためのプログラムと、計算結果・グラフを提出しなければいけないのですが、その数値計算をするプログラムがかけません。 部分分数分解、ラプラス逆変換をしてステップ応答を求めることはできたのですが、コンピューターで数値計算をするには、どのようにプログラムを書けばいいのですか? ちなみにC言語で書こうと思っています。 ヒントだけでもいいので教えてもらえないでしょうか? よろしくお願いします。

  • ステップ応答 とラプラス逆変換について

    伝達関数が分かっています。 そのシステムの単位ステップ応答は伝達関数に1/sを掛けた後、ラプラス逆変換をすれば求められますが、それはなぜですか? 説明できないので返答お願いします。

  • MATLABによる整定時間の求め方

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

  • 制御工学 単位インパルス応答 単位ステップ応答

    U(s)を入力、Y(s)を出力とする伝達関数 G(s)=(5+12s)/(s^2+8s+41) について単位インパルス応答と単位ステップ応答を求めよ。 という問題があるのですが全くわかりません。 答えのみならず手順も教えていただけると助かります。よろしくお願いいたします。 カテゴリ間違いでしたら申し訳ありません。

  • ラプラス変換 単位ステップ応答がよくわかりません

    ラプラス変換で 次の伝達関数で表わされるシステムのインパルス応答g(t)と ステップ応答y(t)を求めよという問題です。 G(s)=2/(s^2+2s+2) 僕はこれをG(s)=2・[1/{(s+1)^2+1}]と変形し ラプラス逆変換の公式から g(t)=2{e^(-t)}sintとしました。 次にこれからステップ応答を求める時に (1){2/(s^2+2s+2)}(1/s)を逆変換するやり方 (2)g(t)を0からtまで積分するやり方 の2通りで求めました。 (1)でやると {2/(s^2+2s+2)}(1/s)=(1/s)-[(s+1)/{(s+1)^2+1}])-[1/{(s+1)^2+1}] と変形できることより、変換の公式をつかって y(t)=u_s(t)-{e^(-t)}cost-{e^(-t)}sintとなりました。 (ただしu_s(t)は単位ステップ応答) 一方(2)でやると y(t)=2∫[0→t][{e^(-t)}sint]dt =1-{e^(-t)}cost-{e^(-t)}sint となって答えが違くなってしまったのですが、"u_s(t)"と"1"のどちらを正解とすればよいのでしょうか。 u_s(t)は「t≧0では1,t<0では0」「1」とは違いますよね。 なんだかわからないのはステップ関数がよくわかってないことが原因の気がします。詳しい方、この解答でよいのかどうかお願いします。

  • 整定時間

    MATLABを用いて1/s^2+s+1のシステムの整定時間を下記のように求めたのですが、このプログラムでは、最初の立ち上がりの時に±5%に入る部分もカウントされてしまうらしいので、このグラフを後ろから探索する方法で求めたいのですが、どのようにすれば求まるか教えてください。 》 num = [1]; 》 den = [1 1 1]; 》 t = 0:0.01:15; 》 [y,x,t] = step(num,den,t); 》 plot(t,y),grid 》 L = find(abs(y-1)>=0.05); 》 Ts = t(L(length(L))) Ts = 5.2800

  • ステップ応答の周波数特性による解析方法について

    制御工学において、伝達関数のsにjωを代入して得られる周波数特性からステップ応答波形を予測するときに疑問があります。  例えば、周波数特性でω=ω1のときに、ゲインが1/5になり、位相遅れが40°であるような伝達関数があるとします。そこに、sin(ω1t)という信号を入れたら定常状態では出力が1/5×sin(ωt-40°)になりますよね。でもそれは定常状態での話であって、当然過渡状態では違う出力が出ると思うんです。  で、ステップ応答っていうのは、別に時刻0秒に立ち上がってもいいじゃないですか?つまり、ステップ応答を正弦波の重ね合わせで捕らえた場合、その一つ一つの波は0秒付近では過渡状態にあると思うんです。なのに、定常状態でのゲイン利得や位相特性をつかって、オーバーシュートやリンキングの解析をするところに納得ができません。  確かに、十分時間がたった後の方形波において、周波数特性から解析するのは納得です。十分時間が立てば、一つ一つの波は定常状態なので、位相特性やゲイン利得をそのまま適用できるからです。なのに、なんで普通のステップ応答にも適用できるのでしょうか?  すいません。文章が下手なもので、質問の意図を理解してもらえないかもしれませんが、どなたかお願いします。

  • 伝達関数を求める

    ステップ応答が y(t)=1-(exp(-3t))*(sin2t+5cos2t) 初期値は0 このときの(1)伝達関数を求める。と(2)インパルス応答を求める が問題です (1)はといたら伝達関数G(s)=(-4s^2-11s+25)/((s+3)^2+4) になりインパルス応答を求めると デルタ関数が出てきてしまい???です ということで聞きたいのは 1、伝達関数があっているか 2、インパルス応答にデルタ関数が出てきてもいいか   もしくは、計算ミスでデルタ関数が出ているだけか 困っているので回答よろしくお願いします。。。

  • 制御工学における微分要素のインパルス応答について

    皆さんよろしくお願いいたします。 制御工学で過渡応答を勉強しております。 微分要素の過渡応答において、インパルス応答が導出できません。 インパルス応答は、逆ラプラス変換演算子をL^-1[ ]とし、伝達関数をG(s)とすると次式で定義されています。 g(t)=L^-1[G(s)] 今、微分要素の伝達関数を比例係数KとしてG(s)=Ksとします。 するとインパルス応答は次式のようになります。 g(t)=L^-1[Ks]=KL^-1[s] ここで逆ラプラス変換L^-1[s]の結果がどうなるかが分かりません。 ある教科書にはその結果はδ関数を用いて L^-1[s]=δ^(1)(t) とδ関数の一回微分で表わされてました。 なぜこのようになるのか、式をどのように導出したのか、その過程が分かりません。 さらに、この関数をグラフに描くとすれば、どうなるのでしょうか。 ご存知の方いらっしゃいましたら、ご教示をお願いいたします。