ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

getxu

操作点からの状態と入力

構文

x = getxu(op_point)
[x,u] = getxu(op_point)
[x,u,xstruct] = getxu(op_point)

説明

x = getxu(op_point) は、状態値 x のベクトルを操作点オブジェクト op_point から抽出します。x 内の状態の順序は、Simulink® ソフトウェアで使用されている順序と同じです。

[x,u] = getxu(op_point) は、状態値のベクトル x、入力値のベクトル u を操作点オブジェクト op_point から抽出します。x の状態と u の入力は、Simulink と同じ順序で並んでいます。

[x,u,xstruct] = getxu(op_point) は、状態値のベクトル x、入力値のベクトル u、および状態値の構造体 xstruct を操作点オブジェクト op_point から抽出します。状態値の構造体 xstruct は、Simulink シミュレーションから返された構造体と同じ形式をもちます。xxstruct の状態と u の入力は、Simulink と同じ順序で並んでいます。

次のように入力して magball モデルに操作点オブジェクトを作成します。

op=operpoint('magball');

この操作点内の状態を表示するには、次のように入力します。

op.States

以下の結果を得ます。

(1.) magball/Controller/PID Controller/Filter
      x: 0            
(2.) magball/Controller/PID Controller/Integrator
      x: 14           
(3.) magball/Magnetic Ball Plant/Current
      x: 7            
(4.) magball/Magnetic Ball Plant/dhdt
      x: 0            
(5.) magball/Magnetic Ball Plant/height
      x: 0.05                

状態値のベクトルを状態が Simulink と一致する順序で、入力と状態の構造体とともに抽出するには、次のように入力します。

[x,u,xstruct]=getxu(op)

この構文は次を返します。

x =

    0.0500
         0
   14.0071
    7.0036
         0


u =

     []


xstruct = 

       time: 0
    signals: [1x5 struct]

次のように入力すると xstruct が詳細に表示されます。

xstruct.signals

この構文により以下が表示されます。

ans = 

1x5 struct array with fields:
    values
    dimensions
    label
    blockName
    stateName
    inReferencedModel
    sampleTime

構造体の各コンポーネントは個別に表示できます。以下に例を示します。

xstruct.signals(1).values

ans =

     0

または

xstruct.signals(2).values

ans =

    7.0036

これらのベクトルと構造体を初期状態または入力ベクトルとして Simulink にインポートしたり、これらを setxu と使用して、他の操作点に状態と入力値を設定することができます。

この情報は役に立ちましたか?