Main Content

setTestValue

データ関数を検証するテスト値の変更

R2023a 以降

説明

msys = setTestValue(vSys,t0) は、データ関数の検証に使用されるテスト時間 t0 を変更します。この新しい値でデータ関数が再評価されます。

msys = setTestValue(vSys,t0,p0) は、LPV モデルのデータ関数の検証に使用されるテスト パラメーター p0 も変更します。

すべて折りたたむ

この例では、LPV モデルのデータ関数のテスト値を変更する方法を示します。

この例では、磁気浮上システムのダイナミクスを記述するデータ関数 dataFcnMaglev.m について考えます。

既定のテスト値で LPV モデルを作成します。

vsys = lpvss('h',@dataFcnMaglev);

このモデルは、行列 A が (t,h) = (0,0) に対して有限でないため、高さ h = 0 において有効でありません。

A = vsys.DataFunction(0,0)
A = 2×2

     0     1
   Inf     0

テスト値を h = 1 に変更します。

h0 = 1;
msys = setTestValue(vsys,0,h0)
Continuous-time state-space LPV model with 1 outputs, 1 inputs, 2 states, and 1 parameters.
Model Properties
A = vsys.DataFunction(0,h0)
A = 2×2

         0    1.0000
   19.6200         0

データ関数のコード。

type dataFcnMaglev.m
function [A,B,C,D,E,dx0,x0,u0,y0,Delays] = dataFcnMaglev(~,p)
% MAGLEV example:
% x = [h ; dh/dt]
% p=hbar (equilibrium height)
mb = 0.02; % kg
g = 9.81;
alpha = 2.4832e-5;
A = [0 1;2*g/p 0];
B = [0 ; -2*sqrt(g*alpha/mb)/p];
C = [1 0];  % h
D = 0;
E = [];
dx0 = [];
x0 = [p;0];
u0 = sqrt(mb*g/alpha)*p;  % ibar
y0 = p;                   % y = h = hbar + (h-hbar)
Delays = [];

入力引数

すべて折りたたむ

LTV モデルまたは LPV モデル。それぞれ ltvss オブジェクトまたは lpvss オブジェクトとして指定します。

データ関数を別の時間に検証する必要があるモデルを指定します。ソフトウェアで共有パラメーターをもつモデルを結合できるのは、それらのデータ関数をそのパラメーターの同じ値で検証する場合のみです。

時間の新しいテスト値。スカラーとして指定します。

パラメーターの新しいテスト値。パラメーターの数と等しい長さのベクトルとして指定します。

出力引数

すべて折りたたむ

データ関数のテスト値が変更された LTV モデルまたは LPV モデル。それぞれ ltvss オブジェクトまたは lpvss オブジェクトとして返されます。

バージョン履歴

R2023a で導入