ADコンバーター

ADコンバーターでL電流をサンプリングする

Note

回路ファイルはTOPページからダウンロードできます。


Example

adc/ADC.cvt2

ADコンバーターの挙動を示します。 本サンプルモデルでは、ADCブロックを用いてL電流をサンプリングします。L電流はスイッチング周波数のリップル電流があるため、サンプリングポイントで電流の値が大きく変わります。その様子を確認しましょう。

この例では、L電流を IVSensor を用いて、電圧に変換し、ADCブロックの両端でサンプリングします。

ADCブロックの内部パラメーターは、上図の様になっており、サンプリングした電圧をPRCブロックに取り込んで利用します。PRCブロックには以下の様に記述することでADCブロックのサンプリング結果を取り込むことができます。

IL = output("L","I","FIN");
ADCin = ADC1;
ADCin_int = ADC1DO;

setoutvar(IL);
setoutvar(ADCin);
setoutvar(ADCin_int);

ここで、プログラム中 ADC1 はシンボル名:ADC1 のADCブロックのサンプリング結果であり、 ADC1DOADC1 のサンプリング結果を指定ビット分量子化した結果です。
出力は、ADCブロックを用いずにL電流の FIN を取得する場合、 ADC1 の出力、ADC1 の量子化された出力の3つを、直接出力変数としてグラフに表示します。 また、 ADC1DO は以下の式に従って出力されます。

ここで Y は出力(PRCブロック内では シンボル名+DO の変数名となります)、 Vi はADCブロックの両端の電圧です。

Waveformを1[ms]実行し波形を確認してください。 図の様に80us付近を確認すると、電流リップルのどの位置をサンプリングしているかが分かります。

PRCブロックが動作するメイン周期10usの間にPRC.IL:FINはリップル電流の最終値を保持し、PRC.ADCin:FIN はメイン周期の開始から2us(Tsmplで設定)の点を保持しています。

ADCブロックを用いると、このようにメイン周期から任意の点をサンプリングし、PRCブロックに受け渡すことが可能です。

Note

変数をPRCブロックに受け渡すには、プログラム例の様に Output変数(出力変数) で行う場合と、 ADCブロック を用いる場合があります。特に理由がなければ、 Output変数 を用いて、 Mode:AVE でサンプリングすることをお勧めいたします。ADCブロックは、リップルのサンプリングなどPWMと同期させ任意の点をサンプリングしたい場合にご利用いただければ効果的です。

Note

ADCブロックはPRCブロックのほかに、DSPブロック、SLCブロックにも値を受け渡すことが可能です。