- 入力値(三角波)がある値(1.9)を超えた時にsin波を出力する
- 入力値(三角波)がある値(1.9)を超えない時sin波を停止する⇒(追記)停止しない
simulinkで入力値がある値を超えた時に、プログラムが実行し続けるプログラムを、作りたいです。
23 ビュー (過去 30 日間)
古いコメントを表示
simulinkで入力値がある値を超えた時に、プログラムが実行し続けるプログラムを、作りたいです。入力値は三角関数です。
0 件のコメント
採用された回答
Atsushi Ueno
2021 年 10 月 16 日
編集済み: Atsushi Ueno
2021 年 10 月 17 日
>simulinkで入力値がある値を超えた時に、プログラムが実行し続けるプログラムを、作りたいです。入力値は三角関数です
下記の様に解釈してモデルを作成しました。
(追記)ちょっとsin波の入力の鋸波をRepeating Sequenceブロックから自作のロジックに変更しました。理由は前者がシステム時間を基にするのでEnabled Subsystemの無効時に「時間が止まらない」為で、システム時間の代わりに自分で鋸波を作成しました。(追記:開始条件追加等複雑になった為Resettable Delayを使いました)
(さらに追記)コメントを受けてモデルと画像を差し替えました。「simulinkで入力値がある値を超えた」条件判定結果を保持(ラッチ)して、その値でEnabled Subsystemを動かせばやりたい事が実現します。
保持(ラッチ)にはDelayとSwitchを使いましたが、将来この保持状態をリセットする条件等も必要になってくるでしょう。その際にはS-R flip-flopブロックを使っても良いと思います。Model an S-R flip-flop - Simulink - MathWorks 日本
4 件のコメント
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!