Main Content

MATLAB System ブロックを使用したパルス幅変調

この例では、制御可能なサンプル時間と setNumTicksUntilNextHit を使用して、MATLAB System ブロックで入力期間とデューティ比の信号に基づいてパルス幅変調 (PWM) 信号を生成する方法を示します。

この例では、MATLAB System ブロックで出力値を変えながら次のヒットをスケジュールできるように制御可能なサンプル時間を登録します。この例の MATLAB System ブロックには、2 つの入力端子と 1 つの出力端子があります。1 つ目の入力端子はデューティ比の信号で、2 つ目の入力端子は期間の信号です。MATLAB System ブロックのブロック パラメーターは、生成される PWM 信号の振幅と制御可能なサンプル時間の分解能の 2 つです。

この例の MATLAB System ブロックでは、関数 createSampleTime(obj, 'Type', 'Controllable', 'TickTime', obj.Resolution) の使用法を示しています。この関数は、getSampleTimeImpl メソッドで制御可能なサンプル時間を登録します。分解能は、そのサンプル時間の次のヒットを MATLAB System ブロックでスケジュールできる基本ステップ サイズを定義する有限の正の整数でなければなりません。

MATLAB System ブロックでは、メソッド setNumTicksUntilNextHit(obj, numTicks) の使用法を示しています。このメソッドは、制御可能なサンプル時間の次のヒットをスケジュールします。次のヒットは、t = t_current + numTicks * resolution の後に発生します。numTicks は正の整数でなければなりません。このメソッドを MATLAB System ブロックの setupImpl と stepImpl で使用して、制御可能なサンプル時間の実行をスケジュールできます。