モデル係数の抽出
モデル係数を抽出するための関数
Control System Toolbox™ ソフトウェアには、モデル係数を抽出するためのコマンドがいくつかあります (たとえば、伝達関数の分子と分母の係数、状態空間行列、比例-積分-微分 (PID) ゲインなど)。
以下のコマンドでデータを抽出できます。
異なるモデル タイプの係数の抽出
データ抽出コマンドを異なるタイプのモデルに使用すると、対象のモデル タイプの係数が計算されます。たとえば、ss
モデルで zpkdata
を使用すると、モデルは zpk
形式に変換され、0 と極配置とシステム ゲインが返されます。
数値モデル データとむだ時間の抽出
この例では、tfdata
を使用して伝達関数の分子と分母の係数を抽出する方法を示します。
1 次モデルにデッド タイムを付加した伝達関数モデルを作成します。
s = tf('s'); H = exp(-2.5*s)/(s+12);
分子と分母の係数を抽出します。
[num,den] = tfdata(H,'v')
変数
num
とden
は数値配列です。'v'
フラグがないと、tfdata
は cell 配列を返します。メモ
SISO 伝達関数モデルの場合は、以下を使用して係数を抽出することもできます。
num = H.Numerator{1}; den = H.Denominator{1};
むだ時間を抽出します。
H
のどのプロパティがむだ時間を含んでいるかを判断します。SISO
tf
モデルでは、入力遅延、出力遅延、または伝達遅延 (I/O 遅延) としてむだ時間を表現することができます。get(H)
Numerator: {[0 1]} Denominator: {[1 12]} Variable: 's' IODelay: 0 InputDelay: 0 OutputDelay: 2.5000 Ts: 0 TimeUnit: 'seconds' InputName: {''} InputUnit: {''} InputGroup: [1×1 struct] OutputName: {''} OutputUnit: {''} OutputGroup: [1×1 struct] Notes: [0×1 string] UserData: [] Name: '' SamplingGrid: [1×1 struct]
むだ時間は
OutputDelay
プロパティに格納されます。出力遅延を抽出します。
delay = H.OutputDelay;
伝達関数からの PID ゲインの抽出
この例では、piddata
を使用して、伝達関数から PID (比例-積分-微分) ゲインを抽出する方法を示します。piddata
または pidstddata
を使用して、同じ手順を用いて PID コントローラーを表す任意のタイプのモデルから PID ゲインを抽出することができます。
微分項の 1 次フィルターで PID コントローラーを表す伝達関数を作成します。
Czpk = zpk([-6.6,-0.7],[0,-2],0.2)
PID ゲインとフィルター定数を取得します。
[Kp,Ki,Kd,Tf] = piddata(Czpk)
このコマンドは比例ゲイン
Kp
、積分ゲインKi
、微分ゲインKd
、および微分フィルター時定数Tf
を返します。piddata
が自動的に PID コントローラー パラメーターを計算するので、pid
モデルを作成せずに PID 係数を抽出することができます。