Maple Professional
Maple Academic
Maple Student Edition
Maple Personal Edition
Maple Player
Maple Player for iPad
MapleSim Professional
MapleSim Academic
Maple T.A. - Testing & Assessment
Maple T.A. MAA Placement Test Suite
Möbius - Online Courseware
Machine Design / Industrial Automation
Aerospace
Vehicle Engineering
Robotics
Power Industries
System Simulation and Analysis
Model development for HIL
Plant Modeling for Control Design
Robotics/Motion Control/Mechatronics
Other Application Areas
Mathematics Education
Engineering Education
High Schools & Two-Year Colleges
Testing & Assessment
Students
Financial Modeling
Operations Research
High Performance Computing
Physics
Live Webinars
Recorded Webinars
Upcoming Events
MaplePrimes
Maplesoft Blog
Maplesoft Membership
Maple Ambassador Program
MapleCloud
Technical Whitepapers
E-Mail Newsletters
Maple Books
Math Matters
Application Center
MapleSim Model Gallery
User Case Studies
Exploring Engineering Fundamentals
Teaching Concepts with Maple
Maplesoft Welcome Center
Teacher Resource Center
Student Help Center
MapleSimConnector[SBlock][GenerateSBlock] - Simulink(R) ダイアグラムを作成するためのコードを生成
使い方
GenerateSBlock(system, sourcename, blockname, opts)
パラメータ
system
-
System; エクスポートするオブジェクト
sourcename
string; メインの S-Function ブロックのファイル名
blockname
string; Simulink(R) ブロックダイアグラムのファイル名
opts
(省略可) option = value 形式の式; GenerateSBlock のオプションを指定
説明
GenerateSBlock コマンドは、 system オブジェクトのために MapleSimConnector[SBlock] が生成したコードをコンパイルする一連の MATLAB(R) コマンドと、そのコンパイルされたコード(ソースファイルは sourcename により指定)を呼ぶ Simulink(R) ダイアグラム(名前は blockname で指定)を生成します。
m-script コマンドは単一の文字列として生成されます(コードの各行は、改行文字 "\n" で区切られます)。その m-script コード文字列はファイルに保存できます(MapleSimConnector[SaveCode] により保存)。
target オプションが C のとき、生成されたスクリプトは最初に C ファイルをコンパイルするため mex MATLAB コマンドのコールを作成します。このため、生成したコードを実行する前に MATLAB で mex コマンドを設定する必要があります。mex コマンドの設定方法については MapleSimConnector[setup] をご覧ください。
生成された m-script コマンドは、MATLAB で実行されると、Simulink(R) を呼び出してモデルダイアグラムまたはライブラリダイアグラムを作成します。作成するダイアグラムのタイプは、model オプションで指定します (「オプション」のセクションを参照)。なお生成されたコードは、Simulink(R) をインストールおよび設定しておかないと実行できません。
結果として得られる Simulink(R) ブロックは、blockname で指定された名前を持つ単一のサブシステムブロックで構成されています。この blockname サブシステムには、指定の system にあるのと同数の入出力ポートがあります。blockname サブシステム内には 5 つの主要な要素が含まれており、それらは各入力ポート、MUX ブロック 1 つ、S-Function ブロック 1 つ、DEMUX ブロック 1 つ、および各出力ポートです。
入力ポート (inports) の名前は、指定の system オブジェクトから抽出されます。
MUX ブロックでは入力内容が、単一の信号ベクトルに集約されて、S-Function ブロックに接続されます。MUX ブロックに付与される名前は Inputs です。
S-Function ブロックには、単一の入力ベクトルと、単一の出力ベクトルのみがあります。S-Function ブロックの名前は blockname で設定されます。
DEMUX ブロックでは、S-Function ブロックからの複数の出力信号が分離されます。DEMUX ブロックに付与される名前は Outputs です。
出力ポート (outports) の名前も、指定の system オブジェクトから抽出されます。
parameters オプションを指定すると、サブシステムブロックに対してマスクが作成されます。パラメータのタイプは symbol でなければなりません。マスクで使用できるパラメータ変数により、MATLAB 内での実行時にユーザーによる変更が可能となります。マスクにリストされる各パラメータに対するプロンプトのラベルは、labels オプションで指定された文字列から生成されます。labels オプションを指定しない場合は、parameters オプションで定義された式の左辺を使用して、マスク用のプロンプトのラベルが生成されます。
オプション
opts 引数は、option = value 形式の省略可能な引数です。ここで、option は以下に列挙された名前の 1 つです。これらの引数はキーワードパラメータに相当し、等式の左辺がキーワードで、右辺は値です。各キーワードパラメータには、そのパラメータが渡されなかった場合に指定されるデフォルト値があります。
各キーワードパラメータの説明を以下に示します。各項の先頭行は引数の書式を表し、左側がキーワード、右側が値の型となります。型が truefalse の場合は、キーワードのみを渡すと keyword = と見なされます。
labels = list(string)
Simulink ブロックの生成マスクで使用される、プロンプトのラベルのリストです。labels リストに含まれる要素の数は、parameters リストのものと同じでなければなりません。デフォルトでは、parameters オプションの各変数の名前 (式の左辺) となります。
model = truefalse
生成される Simulink ダイアグラムのタイプを指定します。Simulink ダイアグラムのファイルには、モデルおよびライブラリという 2 つのタイプがあります。model を true に設定すると、モデルタイプの Simulink ダイアグラムが生成されます。true でない場合は、ライブラリタイプの Simulink ダイアログが生成されます。デフォルトは false です。
parameters = list
システムに対するパラメータ式のリストです。parameters リストを指定すると、メインのサブブロックに対してマスクが生成されます。これにより、個々のパラメータ変数が、生成される Simulink ダイアグラムのマスク・ダイアログボックスにリストされて編集可能となります。parameters を省略すると、SystemOptions(parameters) の設定内容が使用されます。parameters オプションは、指定のシステムに記号パラメータが含まれている場合に必要です。さもないと、MATLAB(R) 内で生成コードを実行した際にエラーとなります。デフォルトは空のリストです。
target = C または Matlab
メインのサブブロックのタイプを指定します。C は、Level-2 C S-Function ブロック用にメイン・サブブロックを生成することを表します。Matlab は、Level-1 M-file S-Function ブロック用にメイン・サブブロックを生成することを表します。デフォルトは C です。
例
with(MapleSimConnector):
パラメータ値
par := [m=5, b=2, k=3];
微分方程式
de := m*diff(y(t), t, t) + b*diff(y(t), t) + k*y(t) = u(t);
sys1 := DynamicSystems:-DiffEquation(de, inputvariable=[u(t)], outputvariable=[y(t)]);
script := SBlock:-GenerateSBlock(sys1, "SpringMassDamper_C1", "Block", parameters=par):
参照
MapleSimConnector, MapleSimConnector[SaveCode], MapleSimConnector[setup], Matlab, Matlab[evalM], Matlab[setup]
Download Help Document