if文から取得した回​数だけパルスを発生さ​せたいが初回以外出力​が1のままになってし​まう

1 回表示 (過去 30 日間)
mochi
mochi 2022 年 1 月 18 日
コメント済み: mochi 2022 年 1 月 18 日
ifで取得した回数だけパルスを発生させたいが初回以外出力が1のままになってしまいます.
欲しいパルスの個数をifの前に計算させ,その個数分パルスが発生したら0のままにし,
その後再びパルスが必要になったら欲しい個数を計算し現在発生したパルスの差分だけ再びパルスを発生させたいと考えています,
全体
右下のブロックは今まで発生したパルスの個数を数えるためのものです.
if内部
しかし,一回目のパルス発生は上手くいくのですが二回目のパルス発生ができません
if内部のscopeの出力
システム全体の出力
どのようにすれば二回目以降もパルスが発生できますか?

採用された回答

Toshinobu Shintai
Toshinobu Shintai 2022 年 1 月 18 日
添付のモデルのように、Stateflowで構成してはどうでしょうか。
入力されたパルス数分だけ「パルスを出力する状態」を維持し、その間、パルスを出します。終わったら計測し直し、次のパルス数分を出力します。

その他の回答 (1 件)

mochi
mochi 2022 年 1 月 18 日
本当に申し訳ないのですが私のバージョンがR2019aでしたためモデルを開くことができません,
変換していただくことは可能でしょうか?
  2 件のコメント
Toshinobu Shintai
Toshinobu Shintai 2022 年 1 月 18 日
R2019aのバージョンに変換しました。添付ファイルをご確認ください。
mochi
mochi 2022 年 1 月 18 日
開けました.ありがとうございます.
stateflowは使ったことがないので勉強してモデルを理解できるようがんばります.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeSimulink についてさらに検索

製品


リリース

R2019b

Community Treasure Hunt

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

Start Hunting!