필터 지우기
필터 지우기

simulinkで入​力値がある値を超えた​時に、プログラムが実​行し続けるプログラム​を、作りたいです。

조회 수: 21 (최근 30일)
SS
SS 2021년 10월 16일
댓글: Atsushi Ueno 2021년 10월 20일
simulinkで入力値がある値を超えた時に、プログラムが実行し続けるプログラムを、作りたいです。入力値は三角関数です。

채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 10월 16일
편집: Atsushi Ueno 2021년 10월 17일
>simulinkで入力値がある値を超えた時に、プログラムが実行し続けるプログラムを、作りたいです。入力値は三角関数です
下記の様に解釈してモデルを作成しました。
(追記)ちょっとsin波の入力の鋸波をRepeating Sequenceブロックから自作のロジックに変更しました。理由は前者がシステム時間を基にするのでEnabled Subsystemの無効時に「時間が止まらない」為で、システム時間の代わりに自分で鋸波を作成しました。(追記:開始条件追加等複雑になった為Resettable Delayを使いました)
  • 入力値(三角波)がある値(1.9)を超えた時にsin波を出力する
  • 入力値(三角波)がある値(1.9)を超えない時sin波を停止する⇒(追記)停止しない
(さらに追記)コメントを受けてモデルと画像を差し替えました。「simulinkで入力値がある値を超えた」条件判定結果を保持(ラッチ)して、その値でEnabled Subsystemを動かせばやりたい事が実現します。
保持(ラッチ)にはDelayとSwitchを使いましたが、将来この保持状態をリセットする条件等も必要になってくるでしょう。その際にはS-R flip-flopブロックを使っても良いと思います。Model an S-R flip-flop - Simulink - MathWorks 日本
  댓글 수: 4
SS
SS 2021년 10월 19일
ありがとうございます。
ステップの立ち上がりにsin波の0部分を合わせたいのですが,時間遅れを考慮したいです。
その時間遅れの検出もしくは他のやり方等あるのでしょうか?
お願い致します。
Atsushi Ueno
Atsushi Ueno 2021년 10월 20일
質問内容を絵(タイミングチャートや想定するブロック図)で描いてご説明頂けませんか?

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 イベント関数에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!