主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

異なるデータ型のコンテキストでパラメーターデータを再利用

金宝app仿真软件。参数オブジェクトまたはMATLABの数値変数を使用して2つ以上のブロックパラメーター値を設定するときにブロックパラメーターのデータ型が異なる場合,オブジェクトまたは変数のデータ型を明示的に指定しなければなりません。たとえば,パラメーターオブジェクトのデータ型を既定値汽车のままにしておくことはできません。

モデル例の作成および設定

ex_paramdt_contextsモデルを作成します。

ex_paramdt_contexts

[モデル化)タブで[モデルデータエディター]をクリックします。

モデルデータエディターの[入力端子/出力端子]タブで,[データ型)列を使用して三机一体轮廓尺寸ブロックのデータ型をに,In2ブロックのデータ型をint8に設定します。

[信号]タブで,获得ブロック出力のデータ型を[继承:与输入相同]に設定します。

[パラメーター]タブで,获得ブロックの[ゲイン]パラメーターに対し,[データ型)を[继承:与输入相同]に設定します。

[ゲイン]パラメーターに対し,[値]myGainParamに設定します。

または,ブロックを設定するために,次のコマンドをコマンドプロンプトで使用します。

set_param (“ex_paramdt_contexts /三机一体”“OutDataTypeStr”“单一”) set_param (“ex_paramdt_contexts / In2”“OutDataTypeStr”'int8') set_param (“ex_paramdt_contexts /增益-单”“获得”“myGainParam”...“OutDataTypeStr”“继承:与输入相同”...“ParamDataTypeStr”“继承:与输入相同”) set_param ('ex_paramdt_contexts / gain  -  int8'“获得”“myGainParam”...“OutDataTypeStr”“继承:与输入相同”...“ParamDataTypeStr”“继承:与输入相同”

モデルデータエディターのいずれかの“获得”ブロックパラメーターで,(价值)列のセルをクリックします。myGainParamの横にあるアクションボタン(3つの縦向きのドット)をクリックし,[作成]を選択します。

(新規データの作成)ダイアログボックスで,[値]金宝appSimulink.Parameter (3)に设定して[作成]をクリックします。値が3.金宝app仿真软件。参数オブジェクトがモデルワークスペースに表示されます。

myGainParamプロパティダイアログボックスで,[データ型)int8に設定します。

代码生成タブで(编码器アプリでの構成)をクリックします。

コードマッピングエディターでmyGainParamのストレージクラスをExportedGlobalに設定します。ストレージクラスExportedGlobalでは,オブジェクトは生成されたコードにグローバル変数として表示されます。

または,パラメーターオブジェクトを作用成し构成するに,コマンドコマンドプロンプトで以ののを使用しし。

多工作站系统= get_param (“ex_paramdt_contexts”“modelworkspace”);mws.assignin (“myGainParam”,金宝app Simulink.Parameter (3));setVariablePart(多工作站系统,“myGainParam。数据类型的'int8');厘米= coder.mapping.utils.create (“ex_paramdt_contexts”);setModelParameter(厘米,“myGainParam”“StorageClass”'ExportedGlobal');

このモデルでは,パラメーターオブジェクトmyGainParamをを使て2つのブロックパラメーター値を设定ます。ブロックブロックパラメーターはブロックブロック入入またはint8)を継承します。これらの異なるデータ型のコンテキストでmyGainParamを使用するには,(数据类型]プロパティをint8に設定することでパラメーターオブジェクトのデータ型を明示的に指定します。

パラメーターオブジェクトのデータ型と信号のデータ型の一致

オプションで,金宝app仿真软件。NumericTypeオブジェクトまたは金宝app仿真软件。AliasTypeオブジェクトをを使し,パラメーターオブジェクトのデータ型型信号の型のいずれかをしますますますますますますます。このこの法,パラメーターオブジェクトのデータ型と信号のデータのののデータデータのののに起因するするに起因が,生成されたコードで除去されます。

コマンドプロンプトで,データ型int8を表す金宝app仿真软件。NumericTypeオブジェクトを作成します。

sharedType_int8 = fixdt ('int8');

モデルデータエディターの[入力端子/出力端子]タブで,In2轮廓尺寸ブロックのデータ型をsharedType_int8に設定します。

[パラメーター]タブでブロック線図を更新します。データテーブルに,パラメーターオブジェクトmyGainParamを表す行が含まれるようになります。

[データ型)列を使用して,パラメーターオブジェクトのデータ型をsharedType_int8に設定します。

または,ブロックおよびオブジェクトを設定するために,次のコマンドをコマンドプロンプトで使用します。

myGainParam。数据类型=“sharedType_int8”;set_param (“ex_paramdt_contexts / In2”“OutDataTypeStr”“sharedType_int8”

パラメーターオブジェクトおよび信号はデータ型int8を使用します。このデータ型を変更するには,データ型オブジェクトsharedType_int8のプロパティを調整します。

コードの生成と検査

モデルからコードを生成します。

slbuild (“ex_paramdt_contexts”
###开始构建过程:ex_paramdt_contexts ###成功完成构建过程:ex_paramdt_contexts构建摘要顶部模型目标构建:模型动作重建原因==================================================================================================== ex_paramdt_contexts代码生成和编译的代码生成信息文件不存在。1个型号中的1个(0型号已达到迄今为止)构建持续时间:0H 0M 10.581S

生成されたファイルex_paramdt_contexts.cは,データ型int8_T(これは,金宝app仿真软件でのデータ型int8に対応)を使用してグローバル変数myGainParamを定義します。

文件= fullfile (“ex_paramdt_contexts_grt_rtw”“ex_paramdt_contexts.c”);rtwdemodbtype(文件,'/*导出块参数*/''Int8_t mygainparam = 3;', 1, 1)
/*导出块参数*/ int8_T myGainParam = 3;/ *变量:myGainParam

モデルの関数一步の生成されたコードのアルゴリズムは,myGainParamを使用して2つの获得ブロックの出力を計算します。入力信号がデータ型を使用する获得ブロックの場合,コードアルゴリズムはmyGainParamをデータ型real32_T(これは,金宝app仿真软件でのデータ型に対応)にキャストします。

rtwdemodbtype(文件,'/* Model step函数*/'.../*模型初始化函数*/, 1,0)
/* Model step函数*/ void ex_paramdt_contexts_step(void) {/* Outport: '/Out1'合并:* Gain: '/Gain - single' */ import: '/In1' */ ex_paramdt_contexts_Y. */Out1 = (real32_T)myGainParam * ex_paramdt_contexts_U.In1;/* Inport: '/Out2'合并:* Gain: '/Gain - int8' * Inport: '/In2' */ ex_paramdt_contexts_Y。Out2 = (int8_T)(myGainParam * ex_paramdt_contexts_U.In2);}

関連するトピック