簡便なラッチ回路の構成

37 ビュー (過去 30 日間)
Ryo Shinohara
Ryo Shinohara 2019 年 8 月 19 日
コメント済み: Ryo Shinohara 2019 年 8 月 20 日
下記のようなコードを作りました。中身は1度でも1の入力がされると、その後は1の入力が続く仕組みとなっています。
これよりも簡便な関数もしくは、simulinkのブロック図がありましたら教えて頂けないでしょうか。
よろしくお願い致します。
clear;
aa = 0 : 0.01 : 10;
u = ones(1,numel(aa));
flg = zeros(1,numel(aa));
for x = 2 : 1 : 10002
u(x) = sin(deg2rad(x / 10));
if flg(x-1) == 1
flg(x) = 1;
else % flg == 0
if u(x) == 1
flg(x) = 1;
end
end
end
hold on
plot(flg);
plot(u);
hold off

採用された回答

Shoumei
Shoumei 2019 年 8 月 19 日
MATLABコードがあるのであれば、ラッチ回路部分はMATLAB Functionブロックに移植するのが良いと思います。
SIN波は外部から入力したとして、MATLAB Functionブロック内部のコードはこんな感じになります。
function y = fcn(u)
persistent flg
if isempty(flg)
flg = 0;
end
if flg == 1
flg = 1;
else
if u == 1
flg = 1;
end
end
y = flg;
Simulinkブロック線図で書くのであれば下図のようになります。
latch.png
latch_scope.png
  1 件のコメント
Ryo Shinohara
Ryo Shinohara 2019 年 8 月 20 日
回答ありがとうございます。
参考にさせて頂きます。

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeRF Blockset Models for Transceivers についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!