symWriteSSC
新規 Simscape コンポーネントの作成
構文
説明
symWriteSSC(
は、既存のコンポーネント newComponentName
,templateComponentName
,eqns
)templateComponentName
をテンプレートとして使用し、eqns
を追加して、新規の Simscape™ コンポーネント newComponentName
を作成します。そのため、新規のコンポーネントは、テンプレート コンポーネントから取得された既存の方程式と、追加された方程式の両方をもつことになります。
symWriteSSC(
は、1 つ以上の newComponentName
,templateComponentName
,eqns
,Name,Value
)Name,Value
引数のペアによって指定された追加オプションを使用します。
例
追加の方程式をもつコンポーネントの作成
既存のコンポーネントをテンプレートとして使用し、方程式を追加して、新規の Simscape コンポーネントを作成します。
現在のフォルダーに Simscape コンポーネント spring.ssc
があるとします。
type('spring.ssc');
component spring < foundation.mechanical.rotational.branch parameters spr_rate = { 10, 'N*m/rad' }; end variables phi = { value = { 0, 'rad'}, priority = priority.high }; end function setup if spr_rate <= 0 pm_error('simscape:GreaterThanZero','Spring rate' ) end end equations w == phi.der; t == spr_rate*phi; end end
新規方程式を作成する際、これから使用するコンポーネントのパラメーター名や変数名をもつシンボリック変数を作成します。さらに、シンボリック変数 u
を作成して、回転バネのエネルギーを表します。
syms spr_rate phi u
エネルギー u
を定義する方程式を作成します。
eq = u == spr_rate*phi^2/2;
新規のコンポーネント myRotationalSpring.ssc
は、コンポーネント spring.ssc
のコピーに回転バネのエネルギーを定義する方程式を追加したものになります。
symWriteSSC('myRotationalSpring.ssc','spring.ssc',eq)
Warning: Equations contain undeclared variables 'u'. > In symWriteSSC (line 94)
symWriteSSC
はコンポーネント myRotationalSpring.ssc
を作成します。
type('myRotationalSpring.ssc');
component myRotationalSpring parameters spr_rate = { 10, 'N*m/rad' }; end variables phi = { value = { 0, 'rad'}, priority = priority.high }; end function setup if spr_rate <= 0 pm_error('simscape:GreaterThanZero','Spring rate' ) end end equations w == phi.der; t == spr_rate*phi; u == phi^2*spr_rate*(1.0/2.0); end end
コンポーネントのタイトルおよび説明の追加
テンプレート コンポーネントとは異なるタイトルおよび説明テキストをもつ Simscape コンポーネントを作成します。
現在のフォルダーに Simscape コンポーネント spring.ssc
があるとします。このコンポーネントにはタイトルまたは説明テキストがありません。
type('spring.ssc');
component spring < foundation.mechanical.rotational.branch parameters spr_rate = { 10, 'N*m/rad' }; end variables phi = { value = { 0, 'rad'}, priority = priority.high }; end function setup if spr_rate <= 0 pm_error('simscape:GreaterThanZero','Spring rate' ) end end equations w == phi.der; t == spr_rate*phi; end end
新規方程式を作成する際、これから使用するコンポーネントのパラメーター名や変数名をもつシンボリック変数を作成します。さらに、シンボリック変数 u
を作成して、回転バネのエネルギーを表します。
syms spr_rate phi u
エネルギー u
を定義する方程式を作成します。
eq = u == spr_rate*phi^2/2;
コンポーネント spring.ssc
に基づいて、新規のコンポーネント myRotationalSpring.ssc
を作成します。方程式 eq
、"Rotational Spring" というタイトルおよび数行の説明テキストを新規のコンポーネントに追加します。
symWriteSSC('myRotationalSpring.ssc','spring.ssc',eq,... 'H1Header','% Rotational Spring',... 'HelpText',{'% The block represents an ideal mechanical rotational linear spring.',... '% Connections R and C are mechanical rotational conserving ports.'... '% The block positive direction is from port R to port C. This means'... '% that the torque is positive if it acts in the direction from R to C.'})
Warning: Equations contain undeclared variables 'u'. > In symWriteSSC (line 94)
symWriteSSC
はコンポーネント myRotationalSpring.ssc
を作成します。
type('myRotationalSpring.ssc');
component myRotationalSpring % Rotational Spring % The block represents an ideal mechanical rotational linear spring. % Connections R and C are mechanical rotational conserving ports. % The block positive direction is from port R to port C. This means % that the torque is positive if it acts in the direction from R to C. parameters spr_rate = { 10, 'N*m/rad' }; end variables phi = { value = { 0, 'rad'}, priority = priority.high }; end function setup if spr_rate <= 0 pm_error('simscape:GreaterThanZero','Spring rate' ) end end equations w == phi.der; t == spr_rate*phi; u == phi^2*spr_rate*(1.0/2.0); end end
入力引数
newComponentName
— 作成する Simscape コンポーネントの名前
一重引用符で囲まれたファイル名
作成する Simscape コンポーネントの名前。一重引用符で囲まれたファイル名として指定します。ファイルには拡張子 .ssc
が付いていなければなりません。ファイル拡張子を指定しない場合、symWriteSSC
によって .ssc
であると仮定されます。絶対パスを指定しない場合は、symWriteSSC
によって現在のフォルダーに新規のコンポーネントが作成されます。
例: 'MyNewComponent.ssc'
templateComponentName
— テンプレートとなる Simscape コンポーネントの名前
一重引用符で囲まれたファイル名
テンプレートとなる Simscape コンポーネントの名前。一重引用符で囲まれたファイル名として指定します。ファイルには拡張子 .ssc
が付いていなければなりません。ファイル拡張子を指定しない場合、symWriteSSC
によって .ssc
であると仮定されます。コンポーネントは MATLAB® パス上または現在のフォルダーになければなりません。
例: 'TemplateComponent.ssc'
eqns
— シンボリック方程式
行ベクトル
シンボリック方程式。行ベクトルとして指定します。
例: [ y(t) == diff(x(t), t), m*diff(y(t), t, t) + b*y(t) + k*x(t) == F]
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: symWriteSSC('myComp.ssc','template.ssc',eq,'H1Header','% New title','HelpText',{'% Description of the','% new component'})
H1Header
— タイトル
文字の行ベクトル
タイトル。% で始まる文字 (char
型) の行ベクトルとして指定します。最初の文字が % ではない場合、symWriteSSC
によって % が追加されます。
テンプレート コンポーネントにタイトルが指定されている場合に H1Header
を使用すると、新規のコンポーネントには H1Header
によって指定されたタイトルが使用されます。テンプレート コンポーネントにタイトルが指定されている場合に H1Header
を使用せずに symWriteSSC
を呼び出すと、新規のコンポーネントにはテンプレート コンポーネントと同じタイトルが使用されます。
例: 'H1Header','% New title'
HelpText
— 説明テキスト
文字の行ベクトルの cell 配列
説明テキスト。文字の行ベクトルの cell 配列として指定します。それぞれの行ベクトルは % で始めなければなりません。最初の文字が % ではない場合、symWriteSSC
によって % が追加されます。
テンプレート コンポーネントに説明テキストが指定されている場合に HelpText
を使用すると、新規のコンポーネントには HelpText
によって指定されたテキストのみが使用されます。この場合、symWriteSSC
は、テンプレート コンポーネントの説明テキストを新規のコンポーネントにコピーしません。テンプレート コンポーネントにタイトルが指定されている場合に HelpText
を使用せずに symWriteSSC
を呼び出すと、新規のコンポーネントにはテンプレート コンポーネントと同じ説明テキストが使用されます。
例: 'HelpText',{'% Description of the','% new component'}
バージョン履歴
R2016a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)