2

私はMatlab 7を使用していますが、特定の時間「1」にレイズし、その後「0」にフォールするモノフロップの作成に問題があります。Matlab/Simulink 7 でこれを行うにはどうすればよいですか? 私は他のバージョンを持っていないので、新しいバージョンの「単安定」ブロックを使用できません。

何か案は?

こんにちは、ポエシュクロン

4

1 に答える 1

2

これを行うには、所定の時間にパルス(つまり「モノフロップ」)を発生させるかどうか、または別の信号(立ち上がりエッジなど)に応答して発生させるかどうかに応じて、いくつかの方法があります。


所定の時間にパルスを作成する:

一度に0から1にステップし、時間が経過しtOnsetた後に0に戻る単一のパルスを作成する場合は、 StepブロックTransport Delayブロック、およびSumブロックを使用してこれを行うことができます。レイアウトは次のようになります。tDur

代替テキスト

StepブロックのSteptimeをにtOnset設定し、Transport DelayブロックのTimedelayをtDur設定してから、元の信号から遅延信号を減算します。


立ち上がりエッジに応答してパルスを作成する:

これはもう少し複雑になります。2つのDetectIncreaseブロックRelayブロックTransport DelayブロックGainブロック、およびSumブロックが必要になります。レイアウトは次のようになります。

代替テキスト

入力信号が1または0のいずれかであるとすると、Relayブロックのスイッチオンポイントを0.5に設定し、スイッチオフポイントを-0.5に設定することにより、最初のDetectIncreaseブロックは入力が0から1にステップするときに1を出力します。、これにより、リレーにヒステリシスが生じ、立ち上がりエッジが検出されたときに発生する短いパルスの後、出力が「オン」状態(つまり、出力1)で持続します。

指定された時間の後にRelayブロックを「オフ」状態(つまり、出力0)に戻すには、TransportDelayブロックの時間遅延tDurをに設定します。フィードバックループのDetectIncreaseブロックは、遅延信号が0から1にステップするときに1を出力し、この出力は、GainブロックのGainを2に設定することによってスケーリングされます。tDur

入力信号から差し引くと、このゲインにより、正の入力(0または1)に関係なく、Sumブロックからの出力を-0.5未満に引き下げることができるため、Relayブロックのスイッチオフポイントに確実に到達します。遅延信号に立ち上がりエッジがあるとき(つまり、tDur経過した後)、その出力はオフになります。この結果の1つは、最初の立ち上がりエッジのおよび時間中にtDurモデル入力で発生する追加の立ち上がりエッジが無視されることです。モデルからの出力が0に戻ると、モデル入力の次の立ち上がりエッジが別のパルスをトリガーします。

于 2011-01-13T18:17:22.317 に答える