Real-Time Workshop Release Notes    

新機能

本節では、Real-Time Workshop 4.0 以降にReal-Time Workshop 4.1 で追加された新機能および強化された機能を紹介します。

最新リリースから組み込まれているReal-Time Workshopの機能については、Release Summaryを参照してください。

Block ReductionオプションはデフォルトでOnです

Block reductionオプション(シミュレーションパラメータダイアログボックスのAdvancedページ)は、デフォルトでonに設定されます。従来のリリースでは、このオプションは、デフォルトではoffでした。

Block reductionは、ブロックの集合の中には、グループを単一の効率的なブロックにならないか、あるいはそれら全体を削除するものがあります。これにより、シミュレーション中や生成されたコード内でのモデルの実行が高速化されます。

詳細は、Real-Time Workshop User's Guide Block Reduction Optionを参照してください。

Buffer Reuse Code Generationオプション

Buffer reuseオプションは、Real-Time WorkshopページのGeneral Code Generation Options (cont.)カテゴリから利用可能です。Buffer reuseオプションを選択すると、信号のストレージは可能な場合はいつでも再利用されます。

従来のリリースでは、このオプションは、以下のように、MATLABのset_paramおよびget_paramコマンドからのみ利用可能でした。

set_paramおよびget_paramコマンドもサポートされています。

詳細は、Real-Time Workshop User's Guide Buffer Reuse OptionSignals: Storage, Optimization, and Interfacingを参照してください。

ビルドディレクトリの検証

ビルドプロセスは、MATLABディレクトリツリーではプログラムをビルとできません。MATLABディレクトリツリーでコードを生成しようとすると、MATLABディレクトリツリーでない作業ディレクトリに変更するように促すエラーメッセージが表示されます。PCでは、ディレクトリmatlabroot/Workでビルドを継続することができます。

ビルドプロセスは、matlabrootでMATLABディレクトリ名にダラー記号($)がある場合は、プログラムをビルドできません。

Build Subsystemの機能強化

Real-Time Workshop 4.0で導入されたBuild Subsystem機能により、モデル内のnonvirtualサブシステムからコードを生成し、ビルドすることができます。Real-Time Workshop 4.1 では、Build Subsystem機能は、以下のように強化されています。

詳細は、Real-Time Workshop User's Guide Generating Code and Executables from Subsystemsを参照してください。

パラメータチューニング用のC API はドキュメント化されています

Real-Time Workshopは、エクスターナルモードを利用せずにモデルパラメータにアクセスするために、プログラムを実行することが可能なデータ構造体とC API を提供します。このAPIは、ドキュメント化されています。

C API によってモデルパラメータにアクセスするには、モデル固有のパラメータマッピングファイル、model_pt.cを生成します。このファイルは、パラメータチューニング用に必要な情報を含むパラメータマッピング配列を含みます。

パラメータマッピングファイルの生成や利用方法に関する情報は、Real-Time Workshop User's Guide C API for Parameter Tuningを参照してください。

コードの読みやすさの改良

生成コードの読みやすさの改良点は、以下の通りです。

Control Flowブロックのサポート

Simulink 4.1 は、if-else やswitchのようなロジック構造、およびdo-while, for, whileのようなループ構造をサポートするブロックをインプリメントしています。Real-Time Workshop 4.1 は、これらのブロックからのコード生成をサポートします。

制御フローブロックに関する詳細は、Control Flow StatementsUsing Simulink を参照してください。

Expression Folding

Expression folding は、ブロック出力の中間結果の計算を最小限にし、その結果をテンポラリバッファあるいは変数に格納するコード最適化手法です。可能な場合には、Real-Time Workshopは、モデル内の各ブロックに対して別々のコードステートメントやストレージ宣言を生成せずに、ブロックの計算を単一の表現にまとめ、"folds"します。

Expression foldingは、生成コードの効率を大きく改良しし、手動で最適化したコードと遜色ない結果になります。多くの場合において、モデルの計算は、単一の高度に最適化されたコードにまとめられます。

ほとんどのSimulinkブロックは、expression foldingをサポートします。

詳細は、Real-Time Workshop User's GuideExpression Foldingを参照してください。

エクスターナルモードの機能強化

インラインパラメータのサポート

Real-Time Workshopは、エクスターナルモードターゲットプログラムのビルド時に、Inline parametersコード生成オプションを利用します。パラメータをインライン化するとき、Model Parameter Configuration ダイアログを使って、ここのパラメータをインライン化せずに、それらをチューニング可能と宣言することができます。これにより、ほとんどのパラメータをことにより全体の効率を改良し、同時に、アプリケーションにとって重要な選択されたパラメータに対しては、実行時のチューニングを保つことができます。さらに、Model Parameter Configuration ダイアログは、パラメータが生成コード内で表現される方法を制御するためのオプションを提供します。

Inline parametersをonにして生成されたターゲットプログラムにSimulinkが接続するたびに、ターゲットプログラムは、(存在すれば)チューニング可能なパラメータのカレント値をホストにアップロードします。これらの値は、対応するMATLABワークスペース変数に割り当てられます。この手順により、ホストとターゲットは、パラメータ値に関して同期を取ることが保証されます。

エクスターナルモードをサポートするすべてのターゲット(すなわち、grt, grt_malloc, Tornado)は、パラメータをインライン化することができます。

詳細は、Real-Time Workshop User's Guide Overview of External Mode Communicationsを参照してください。

ステータスバー表示

Simulinkはエクスターナルモードターゲットを実行しているプログラムに接続されると、シミュレーション時間とその他のステータスバー情報が表示され、normalモードと同様に更新されます。

Generate Commentsオプション

このオプションは、コメントが生成コード内に書かれるかどうかを制御します。詳細は、Real-Time Workshop User's Guide Generate Commentsを参照してください。

識別子にシステム階層を含める

このオプションがonのとき、Real-Time Workshopは、(コメントに含まれるタグに加えて)system identificationタグを生成コード内に挿入します。タグを使って、ソースモデル内で、あるコードを生成したブロックのネスティングレベルを識別することができます。

詳細は、Real-Time Workshop User's Guide Include System Hierarchy in Identifiers を参照してください。

Rapid Simulation Targetはインラインパラメータをサポートします

Rapid Simulation Targetは、Inline parametersがonのとき機能します。Inline parameters がonのとき、すべてのパラメータと信号に対するストレージクラスは、何もしなくでもautoに設定されています。

S-Function Targetの機能強化

Real-Time Workshop 4.0で導入されたS-Function Target Generate S-function機能により、サブシステムからS-functionを生成します。この機能は、以下のように強化されています。

詳細は、Real-Time Workshop User's Guide Automated S-Function Generationを参照してください。

部録ステータスのストレージクラス

ブロックタイプの中には、Real-Time Workshop letsが、モデル内のブロックステータスがどのように格納され、生成コード内でどのように表現されるかを制御するものがあります。State Propertiesダイアログを利用すると、以下のことが行えます。

詳細は、Real-Time Workshop User's GuideBlock States: Storing and Interfacingを参照してください。

UNIXプラットフォームでのファイル名内のチルダ(~)のサポート

Simulinkのすべてのファイル名フィールドは、ファイル名でのチルダ(~)のマッピングをサポートします。たとえば、To Fileブロックで、<code>~/outdir/file.mat</code>を指定することができます。ほとんどのシステムにおいて、これは、/home/$USER/outdir/file.matに展開されます。Real-Time Workshopは、展開された名前を利用します。

Target Language Compiler 4.1

本節では、本リリースにおいて、Target Language Compilerに対して行われた変更点をまとめます。TLC Compatibility Issuesを参照してください。

新規TLC Debugger

TLC debuggerは、TLCコード内でのプログラミングエラーを識別します。デバッガは、TLCコード内にブレークポイントを設定し、ライン毎にTLCコードを実行し、変数を調べて変更し、その他の多くの有用な操作を行うことができます。

TLC debuggerは、コード生成中に機能し、コード生成プロセスにおいてオーバヘッドをほとんど発生しません。デバッガは以下のようにして起動することができます。

詳細は、Target Language Compiler Reference GuideDebugging TLCを参照してください。

model.rtwファイルフォーマットの変更

model.rtwファイルのフォーマットは、変更されています。 TLC Compatibility Issuesを参照してください。

TLCでのBlock I/O Connection Handlingのクリーンアップ

rtw/c/tlc/blkiolib.tlcおよびrtw/ada/tlc/blkiolib.tlcでの信号接続の取り扱いは、再機能しました。詳細は、Target Language Compiler Reference GuideTLC Function Library ReferenceLibBlockInputSignalを参照してください。

リテラル文字列のサポート

文字列定数の接頭辞がLフォーマット指定子である場合は、エスケープキャラクタ処理は、その文字列では行われません。これは、つぎの例のように、PCスタイルのパスやディレクトリ名の指定に役立ちます。

新規のTLCライブラリ関数

以下の関数は、TLC Function Libraryに追加されています。

これらの関数の詳細は、Target Language Compiler Reference GuideTLC Function Library Referenceを参照してください。

TLCバグフィックス


  Real-Time Workshop 4.1 Release Notes バグフィックス