symReadSSCVariables
Simscape コンポーネントからの変数の読み込み
構文
説明
[ は、names,values,units] = symReadSSCVariables(componentName)componentName と呼ばれる Simscape™ コンポーネントから、すべての変数の名前、値および単位を含む cell 配列を返します。
[ は、名前を変数 names,values,units] = symReadSSCVariables(componentName,'ReturnFunctions',true)t のシンボリック関数として返します。
例
Simscape コンポーネントの変数の名前、値および単位を読み込みます。
現在のフォルダーに Simscape コンポーネント friction.ssc があるとします。
type('friction.ssc');component friction < foundation.mechanical.rotational.branch
parameters
brkwy_trq = { 25, 'N*m' }; % Breakaway friction torque
Col_trq = { 20, 'N*m' }; % Coulomb friction torque
visc_coef = { 0.001, 'N*m*s/rad' }; % Viscous friction coefficient
trans_coef = { 10, 's/rad' }; % Transition approximation coefficient
vel_thr = { 1e-4, 'rad/s' }; % Linear region velocity threshold
end
parameters (Access=private)
brkwy_trq_th = { 24.995, 'N*m' }; % Breakaway torque at threshold velocity
end
function setup
% Parameter range checking
if brkwy_trq <= 0
pm_error('simscape:GreaterThanZero','Breakaway friction torque' )
end
if Col_trq <= 0
pm_error('simscape:GreaterThanZero','Coulomb friction torque' )
end
if Col_trq > brkwy_trq
pm_error('simscape:LessThanOrEqual','Coulomb friction torque',...
'Breakaway friction torque')
end
if visc_coef < 0
pm_error('simscape:GreaterThanOrEqualToZero','Viscous friction coefficient')
end
if trans_coef <= 0
pm_error('simscape:GreaterThanZero','Transition approximation coefficient')
end
if vel_thr <= 0
pm_error('simscape:GreaterThanZero','Linear region velocity threshold')
end
% Computing breakaway torque at threshold velocity
brkwy_trq_th = visc_coef * vel_thr + Col_trq + (brkwy_trq - Col_trq) * ...
exp(-trans_coef * vel_thr);
end
equations
if (abs(w) <= vel_thr)
% Linear region
t == brkwy_trq_th * w / vel_thr;
elseif w > 0
t == visc_coef * w + Col_trq + ...
(brkwy_trq - Col_trq) * exp(-trans_coef * w);
else
t == visc_coef * w - Col_trq - ...
(brkwy_trq - Col_trq) * exp(-trans_coef * abs(w));
end
end
endコンポーネント friction.ssc の変数の名前、値および単位を読み込みます。
[names,values,units] = symReadSSCVariables('friction.ssc');この例では、結果の cell 配列のすべての要素がスカラーです。cell 配列はシンボリック ベクトルに変換できます。
names_sym = cell2sym(names)
names_sym = [ t, w]
values_sym = cell2sym(values)
values_sym = [ 0, 0]
MATLAB® ワークスペースにある cell 配列 names の要素から個々のシンボリック変数を作成します。このコマンドは、シンボリック変数 t と w を sym オブジェクトとしてワークスペースに作成します。
syms(names)
Simscape コンポーネントの変数の名前を読み込むと共に、それらを変数 t のシンボリック関数に変換します。
現在のフォルダーに Simscape コンポーネント source.ssc があるとします。
type('source.ssc');component source
% Electrical Source
% Defines an electrical source with positive and negative external nodes.
% Also defines associated through and across variables.
nodes
p = foundation.electrical.electrical; % :top
n = foundation.electrical.electrical; % :bottom
end
variables(Access=protected)
i = { 0, 'A' }; % Current
v = { 0, 'V' }; % Voltage
end
branches
i : p.i -> n.i;
end
equations
v == p.v - n.v;
end
end'ReturnFunctions' を true に設定して、コンポーネント source.ssc の変数の名前を読み込みます。
[names,~,~] = symReadSSCVariables('source.ssc','ReturnFunctions',true);
この例では、結果の cell 配列のすべての要素がスカラーです。cell 配列はシンボリック ベクトルに変換できます。
names_symfun = cell2sym(names)
names_symfun = [ i(t), v(t)]
MATLAB ワークスペースにある cell 配列 names の要素から個々のシンボリック関数を作成します。このコマンドは、シンボリック関数 i と v を symfun オブジェクト、変数 t を sym オブジェクトとしてワークスペースに作成します。
syms(names)
入力引数
Simscape コンポーネント名。一重引用符で囲まれたファイル名として指定します。ファイルには拡張子 .ssc が付いていなければなりません。ファイル拡張子を指定しない場合、symReadSSCVariables によって .ssc であると仮定されます。コンポーネントは MATLAB パス上または現在のフォルダーになければなりません。
例: 'MyComponent.ssc'
出力引数
Simscape コンポーネントのすべての変数の名前。cell 配列として返されます。
データ型: cell
Simscape コンポーネントのすべての変数の値。cell 配列として返されます。
データ型: cell
Simscape コンポーネントのすべての変数の単位。cell 配列として返されます。
データ型: cell
バージョン履歴
R2016a で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)