主要内容

中文:

你怎么看?你怎么看

この例は,コードジェネレーターが時間カウンターに割り当てるメモリ量を最適化する方法を示しています。2、。

。時間カウンターのワードサイズは,モデルコンフィギュレーションパラメーター[]★★★★★★。。。

時間カウンターが使用するビット数は,[]。たとえば,時間カウンターがオーバーフローを回避するために1 kHzのレートでインクリメントする場合,カウンターのビット数は次のようになります。

  • < 0.25档:8档

  • < 1分:16

  • < 49 32

  • 50

64年ビット時間カウンターは,9000億万年オーバーフローしません。

英文怎么说

翻译:rtwdemo_abstime

モデルは,魔法石,第1章SS2SS33 .。[モデルコンフィギュレーションパラメーター]ダイアログボックスを開きます。[中文]【翻译】[]パラメーターは既定値の★★★★★★★★★★

3つのサブシステムには,出力値を計算するための入力として経過時間を必要とする离散时间积分器が含まれます。。

  • SS1 - 1千赫,。。【翻译[]周期[英语听力原文]0.001 > > > > > > > > > > > > >

  • SS2 - 100赫兹,。。1。

  • SS3 - 0.5 Hz。。1。

モデルのシミュレーション

。。3つのサブシステムの離散サンプル時間は,赤,緑,青で表示されます。。

コードとレポートの生成

1.。

2.GRT

3.。

# # #开始构建过程:rtwdemo_abstime # # #成功完成构建过程:rtwdemo_abstime模型建立目标:总结构建模型重建行动的理由  ================================================================================================= rtwdemo_abstime代码生成和编译。代码生成信息文件不存在。构建1个模型中的1个(0个已经更新的模型)构建持续时间:0小时0分钟11.857秒

生成コードのレビュー

生成されたソースファイルrtwdemo_abstime.h

struct tag_RTM_rtwdemo_abstime_T {const char_T *errorStatus;/* *定时:下面的子结构包含了关于模型定时信息的信息。*/ struct {uint32_T clockTick1;uint32_T clockTickH1;uint32_T clockTick2;uint32_T clockTickH2;struct {uint16_T TID[3];uint16_T cLimit [3];} TaskCounters;}时机; }; /* Block states (default storage) */ extern DW_rtwdemo_abstime_T rtwdemo_abstime_DW; /* Zero-crossing (trigger) state */ extern PrevZCX_rtwdemo_abstime_T rtwdemo_abstime_PrevZCX; /* External inputs (root inport signals with default storage) */ extern ExtU_rtwdemo_abstime_T rtwdemo_abstime_U; /* External outputs (root outports fed by signals with default storage) */ extern ExtY_rtwdemo_abstime_T rtwdemo_abstime_Y; /* Model entry point functions */ extern void rtwdemo_abstime_initialize(void); extern void rtwdemo_abstime_step0(void); extern void rtwdemo_abstime_step1(void); extern void rtwdemo_abstime_step2(void); extern void rtwdemo_abstime_terminate(void); /* Real-time Model object */ extern RT_MODEL_rtwdemo_abstime_T *const rtwdemo_abstime_M; /*- * The generated code includes comments that allow you to trace directly * back to the appropriate location in the model. The basic format * is /block_name, where system is the system number (uniquely * assigned by Simulink) and block_name is the name of the block. * * Use the MATLAB hilite_system command to trace the generated code back * to the model. For example, * * hilite_system('') - opens system 3 * hilite_system('/Kp') - opens and selects block Kp which resides in S3 * * Here is the system hierarchy for this model * * '' : 'rtwdemo_abstime' * '' : 'rtwdemo_abstime/SS1' * '' : 'rtwdemo_abstime/SS2' * '' : 'rtwdemo_abstime/SS3' */ #endif /* RTW_HEADER_rtwdemo_abstime_h_ */

4 \ \ 32 \ \ \ \ \ \ \clockTick1clockTickH1clockTick2?clockTickH2が,サブシステムSS2SS3

最適化の有効化とコードの再生成

1.。

2.。

###为rtwdemo_abstime开始构建过程###成功完成构建过程:rtwdemo_abstime构建摘要构建了顶级模型目标:模型动作重建原因============================================================================== rtwdemo_abstime代码生成并编译。增量校验和已更改。构建1个模型中的1个(0个已经更新的模型)构建持续时间:0小时0分钟7.6493秒

再生成コードのレビュー

struct tag_RTM_rtwdemo_abstime_T {const char_T *errorStatus;/* *定时:下面的子结构包含了关于模型定时信息的信息。*/ struct {uint32_T clockTick1;uint16_T clockTick2;struct {uint16_T TID[3];uint16_T cLimit [3];} TaskCounters;}时机;};/*块状态(默认存储)*/ extern DW_rtwdemo_abstime_T rtwdemo_abstime_DW; /* Zero-crossing (trigger) state */ extern PrevZCX_rtwdemo_abstime_T rtwdemo_abstime_PrevZCX; /* External inputs (root inport signals with default storage) */ extern ExtU_rtwdemo_abstime_T rtwdemo_abstime_U; /* External outputs (root outports fed by signals with default storage) */ extern ExtY_rtwdemo_abstime_T rtwdemo_abstime_Y; /* Model entry point functions */ extern void rtwdemo_abstime_initialize(void); extern void rtwdemo_abstime_step0(void); extern void rtwdemo_abstime_step1(void); extern void rtwdemo_abstime_step2(void); extern void rtwdemo_abstime_terminate(void); /* Real-time Model object */ extern RT_MODEL_rtwdemo_abstime_T *const rtwdemo_abstime_M; /*- * The generated code includes comments that allow you to trace directly * back to the appropriate location in the model. The basic format * is /block_name, where system is the system number (uniquely * assigned by Simulink) and block_name is the name of the block. * * Use the MATLAB hilite_system command to trace the generated code back * to the model. For example, * * hilite_system('') - opens system 3 * hilite_system('/Kp') - opens and selects block Kp which resides in S3 * * Here is the system hierarchy for this model * * '' : 'rtwdemo_abstime' * '' : 'rtwdemo_abstime/SS1' * '' : 'rtwdemo_abstime/SS2' * '' : 'rtwdemo_abstime/SS3' */ #endif /* RTW_HEADER_rtwdemo_abstime_h_ */

[]パラメーターの新しい設定では,コードジェネレーターに,時間カウンター用に確保するメモリを少なくするよう指示します。。

  • 32 .中文clockTick1SS2★★★★★

  • 【中文译文clockTick2SS3★★★★★

関連情報

シングルレートモデリング(OSなしのベアボード)

このモデルでは,ベアボードターゲット(オペレーティングシステムが搭載されていない)に構成したシングルレートの離散時間モデルのコード生成を示します。

英文怎么说

翻译:rtwdemo_srbb

open_system (“rtwdemo_srbb”

このモデルは1つのサンプル時間を使用し,ブロック線図の更新時にサンプル時間の色を表示するように設定されています。轮廓尺寸ブロックIn1_1sとIn2_1sは1秒のサンプル時間を指定し,これは,モデルコンフィギュレーションパラメーター[]★★★★★★★★★

。モデルを開いた後に表示するには,Ctrl + D。【中文】:Ctrl + J? ? ? ?このモデルは1つのサンプル時間で設定されているため,モデル内で最速の離散サンプル時間を表す赤色で表示されます。

シングルタスクモードのマルチレートモデル化(OSなしのベアボード)

このモデルでは,ベアボードターゲット(オペレーティングシステムが搭載されていない)に構成したマルチレートの離散時間モデルに生成されるコードを説明します。

英文怎么说

翻译:rtwdemo_mrstbb

open_system (“rtwdemo_mrstbb”

このモデルには2つのサンプル時間が含まれています。轮廓尺寸ブロック1と尺寸ブロック2はそれぞれ1秒と2秒のサンプル時間を指定します。我的意思是,我的意思是,我的意思是,我的意思是[]★★★★★★★。したがってプリエンプションは発生せず,異なるサンプル時間で実行されるブロック間に率过渡ブロックは含められません。

。モデルを開いた後に表示するには,Ctrl + D。【中文】:Ctrl + J? ? ? ?赤色はモデル内の最速の離散サンプル時間を表し,緑色は2番目に速いサンプル時間を,黄色は混在しているサンプル時間を表します。

マルチタスクモードのマルチレートモデル化(OSなしのベアボード)

このモデルでは,マルチタスクのベアボードターゲット(オペレーティングシステムのないもの)に構成したマルチレートの離散時間モデル用の生成コードを説明します。

英文怎么说

翻译:rtwdemo_mrmtbb

open_system (“rtwdemo_mrmtbb”

这是我的梦想

このモデルには2つのサンプル時間が含まれています。轮廓尺寸ブロック1と尺寸ブロック2はそれぞれ1秒と2秒のサンプル時間を指定します。我的意思是,我的意思是,我的意思是,我的意思是[]★★★★★★★。つまり1秒のタスクが2秒のタスクをプリエンプトする場合に,速度过渡ブロックではデータの整合性が確実に維持される必要があります。金宝app仿真软件®および仿真软件编码器™によって適切なレート変換が常に適用されます。速率转换(Rate Transition)または,モデルコンフィギュレーションパラメーター[データ転送に対するレート変換を自動的に取り扱う)。金宝app

。モデルを開いた後に表示するには,Ctrl + D。【中文】:Ctrl + J? ? ? ?赤色はモデル内の最速の離散サンプル時間を表し,緑色は2番目に速いサンプル時間を,黄色は混在しているサンプル時間を表します。

データ転送の仮定

タスク間データ転送の操作の基礎:

  • 1。

  • データの遷移中に2つのタスクが対話した場合,一方のタスクがもう一方のタスクをプリエンプトする場合がある。

  • 。。

  • 1、。。

(VxWorks®OS)

この例では,マルチタスクオペレーティングシステムターゲット(VxWorks®)用に設定されたマルチレート離散モデルのコードを生成します。このモデルには2つのサンプル時間が含まれています。轮廓尺寸ブロック1と尺寸ブロック2はそれぞれ1秒と2秒のサンプル時間を指定します。我的意思是,我的意思是,我的意思是,我的意思是[]★★★★★★★。つまり1秒のタスクが2秒のタスクをプリエンプトする場合に,速度过渡ブロックではデータの整合性が確実に維持される必要があります。金宝app仿真软件®とコードジェネレーターは,適切なレート変換を適用します。速率转换(Rate Transition)または,モデルコンフィギュレーションパラメーター[データ転送に対するレート変換を自動的に取り扱う)。金宝app

。。Ctrl+J。赤色はモデル内の最速の離散サンプル時間を表し,緑色は2番目に速いサンプル時間を,黄色は混在しているサンプル時間を表します。

翻译:

模型=“rtwdemo_mrmtos”;open_system(模型);

確定性とデータの整合性のトレードによるシステム性能の改善

このモデルは,速度过渡ブロックがマルチレート,マルチタスクモデルで使用された場合の操作モードの相違点を説明します。率过渡ブロックの柔軟なオプションにより,アプリケーションに最適なモードを選択できます。。

速率转换

(DetAndInteg):信号(幅の広い信号のすべての要素を含む)のすべてのデータバイトが同じタイムステップからとなるようにデータが転送されます。また,データがあるレートから別のレートに転送される相対サンプル時間(遅延)は常に同じになります。ANSI®Cコードのみが使用され,ターゲット固有の”クリティカルセクション“保護は必要ありません。

(IntegOnly):信号(幅の広い信号のすべての要素を含む)のすべてのデータバイトが同じタイムステップからとなるようにデータが転送されます。ただし,あるデータ転送から次のデータ転送までの,データが転送される相対サンプル時間(遅延)は異なることがあります。このモードでは,データの読み取り/書き込みを行うコードがDetandIntモードよりも頻繁に実行されます。最悪の場合,遅延はDetandIntモードと等しくなりますが,遅延は短くなる可能性があり,これは一部のアプリケーションにおいて重要です。また,このモードはDetandIntモードでサポートされない非同期レートとの間のデータ転送をサポートします。ansi cコードのみが使用され,ターゲット固有の”クリティカルセクション“保護は必要ありません。

(无)【单词翻译】:速率转换このモードは,スカラーデータ型のアトミックアクセスが保証される一部のアプリケーションにおいて,データの相対時相値が重要でない場合に許容されます。。

データ転送の仮定

タスク間データ転送の操作の基礎:

  • 1。

  • データの遷移中に2つのタスクが対話した場合,一方のタスクがもう一方のタスクをプリエンプトする場合がある。

  • 。。

  • 1。。

モデルrtwdemo_ratetrans

open_system (“rtwdemo_ratetrans”

モデルrtwdemo_ratetrans速率转换。

速率转换DetAndIntegF2S

確定性とデータの整合性(高速から低速への遷移):

  • 。遅いレートが実行されている間,速いレートによる後続のステップ(および関連付けられたデータ更新)は,遅いレートからは見えない。

速率转换DetAndIntegS2F

確定性とデータの整合性(低速から高速への遷移):

  • 2 .。

  • 速いレートから見えるデータは常に遅延しており,したがってデータは遅いレートコードの前のステップからのものとなる。

速率转换IntegOnlyF2S

【中文翻译】:

  • 読み取り処理中のフラグが立っていなければ,データは速いレートコンテキスト時にバッファーに書き込まれる。

  • フラグが設定されるとデータが遅いレートでバッファーから出力にコピーされ,その後フラグはクリアされる。。

  • 遅いレートから見えるデータは,遅いレートと速いレートの両方が実行された時点からのものではなく,速いレートのより最近のステップからのものである場合がある。

速率转换IntegOnlyS2F

【中文翻译】:

  • 2 .。

  • 2、。

  • 2つのバッファーの一方は遅いレートで遅いレートコンテキスト時に書き込まれ,その後アクティブなバッファーが切り替わる。

  • 。遅いレートと速いレートの両方にヒットがある場合は特に,速いレートからは遅いレートの前の値が見える。ただし,速いレートの後続のステップからは更新された値が見えることがある(遅いレートによってアクティブでないバッファーが更新され,アクティブなバッファーフラグが切り替わる場合)。

速率转换NoneF2S

確定性とデータの整合性が見送られる場合,速度过渡ブロックのコードは生成されません。

速率转换NoneS2F

確定性とデータの整合性が見送られる場合,速度过渡ブロックのコードは生成されません。

bdclose (“rtwdemo_ratetrans”);

関連するトピック