このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
メーターの自動読み取り
この例では、Communications Toolbox™ を使用して、Encoder-Receiver-Transmitter (ERT) 互換メーターが出力する Standard Consumption Message (SCM) 信号と Interval Data Message (IDM) 信号を処理することにより、公共事業メーターを読み取る方法を示します。ファイルから記録されたデータを使用するか、RTL-SDR 無線機または ADALM-PLUTO 無線機を使用してリアルタイムに無線信号を受信できます。
Simulink® で、Simulink でのメーターの自動読み取りの例を検索できます。
必要なソフトウェアとハードウェア
ファイルから記録したデータを使用してこの例を実行するには、Communications Toolbox™ が必要です。
信号をリアルタイムで受信するには、さらに、以下の SDR デバイスのいずれかと、対応するソフトウェア アドオンが必要です。
RTL-SDR 無線機と Communications Toolbox Support Package for RTL-SDR Radio アドオン
ADALM-PLUTO 無線機と Communications Toolbox Support Package for Analog Devices® ADALM-PLUTO Radio アドオン
詳細については、"Software-Defined Radio (SDR) 情報ページ" を参照してください。
背景
メーターの自動読み取り (AMR) は、公共事業メーター (電気、ガス、水道のメーターなど) から消費データとステータス データを自動的に収集し、そのデータを請求や解析目的のためにユーティリティ プロバイダーに送信する技術です。AMR システムはパワーの低い無線周波数 (RF) 通信を利用して、メーターの測定値をリモート受信機に送信します。RF 伝送のプロパティには、以下が含まれます。
範囲内の送信周波数: 910 ~ 920 MHz
データ転送速度: 32768 bps
オン-オフ キー付きマンチェスター符号化信号
SCM と IDM は、メーターが送信する 2 種類の通常のメッセージ タイプです。SCM パケットは、96 ビットの固定長で使用されるのに対し、IDM パケットは 736 ビットの固定長で使用されます。次の表に、SCM メッセージと IDM メッセージのパケット形式を示します。
SCM メッセージと IDM メッセージの両方を送信できるメーターは、約 275 ms の間隔でこれらを同じチャネルで送信します。各メーターは、ホッピング パターンを使用して複数の周波数で SCM メッセージと IDM メッセージを送信します。実際の送信周波数、周波数ホッピング パターン、および送信間の時間間隔は、他の送信との干渉を避けるためにランダムに選ばれます。詳細については、[ 1 ] を参照してください。
例の実行
例を実行すると、以下が行われます。
受信機はシミュレーション パラメーターを初期化し、AMR パラメーターを計算します。
データ ビューアー表示には、メーター ID、消費情報、および商品の種類が示されます。
シミュレーション ループで、信号ソース、物理レイヤー、メッセージ パーサー、およびデータ ビューアーを呼び出します。
処理ループは、フレーム時間を使用して無線時間を追跡します。
データの取得ごとに表示が更新され、最新の消費情報と一意のメーター ID が表示されます。
パラメーターの初期化
既定の信号ソースは 'File' です。この場合、記録されたベースバンド信号ファイル amr_capture_01.bb
を使用して例が実行されます。RTL または ADALM-PLUTO SDR を使用して例を実行するには、helperAMRInit.m ファイルの呼び出し時に signalSource
の設定を変更します。signalSource
の有効なオプションは、'File'、'RTL-SDR' および 'ADALM-PLUTO' です。
signalSource = 'File'; initParam = helperAMRInit(signalSource); % Calculate AMR system parameters based on the initialized parameters [amrParam,sigSrc] = helperAMRConfig(initParam); % Create the data viewer object viewer = helperAMRViewer('MeterID',initParam.MeterID, ... 'LogData',initParam.LogData, ... 'LogFilename',initParam.LogFilename, ... 'Fc',amrParam.CenterFrequency, ... 'SignalSourceType',initParam.SignalSourceType); start(viewer); radioTime = 0; % Initialize the radio time % Main Processing Loop while radioTime < initParam.Duration rcvdSignal = sigSrc(); amrBits = helperAMRRxPHY(rcvdSignal,amrParam); amrMessages = helperAMRMessageParser(amrBits,amrParam); update(viewer,amrMessages); radioTime = radioTime + amrParam.FrameDuration; end stop(viewer); % Stop the viewer release(sigSrc); % Release the signal source
受信機コードの構造
このフロー チャートは、受信機コードの構造をまとめています。処理には 4 つの主要な部分があります。信号ソース、物理レイヤー、メッセージ パーサー、およびデータ ビューアー。
信号ソース
この例では、3 つの信号ソースを使用できます。
''File'': ファイルに書き込まれ、1.0 Msps でBaseband File Readerオブジェクトを使用して読み取られる無線信号
''RTL-SDR'': 1.0 Msps のサンプル レートの RTL-SDR 無線
''ADALM-PLUTO'': 1.0 Msps のサンプル レートの ADALM-PLUTO 無線
"RTL-SDR" または "ADALM-PLUTO" を信号ソースとして割り当てる場合、例は、指定した無線機 (無線アドレス '0' の RTL-SDR 無線機または無線アドレス 'usb:0' の ADALM-PLUTO 無線機のいずれか) のコンピューターを検索し、信号ソースとして使用します。
物理レイヤー
信号ソースから受信したベースバンド サンプルは物理レイヤー (PHY) によって処理され、SCM 情報または IDM 情報を含むパケットが生成されます。この図は、物理レイヤーの受信処理を示しています。
RTL-SDR 無線機は、225-300 kHz または 900-2560 kHz の範囲のサンプル レートを使用できます。ADALM-PLUTO 無線機は、520 kHz-61.44 MHz の範囲のサンプル レートを使用できます。1.0 Msps のサンプル レートは、マンチェスター符号化されたデータ ビットごとに十分なサンプル数を作成するために使用されます。ホッピング パターンの各周波数では、すべての AMR データ パケットが送信されます。周波数ホッピングは、時間の経過ともに信頼性を向上することができます。すべてのパケットが各周波数ホップに送信されるため、この例では 1 つの周波数を監視するだけで十分です。無線機の中心周波数は、全区間のシミュレーション ランタイムに対して 915 MHz に調整されます。
受信した複素数サンプルは、振幅の抽出により振幅復調されます。オン-オフ キーをもつマンチェスター符号化は、ビット選択ブロックにクロック リカバリが含まれることを意味します。このブロックは、ビット シーケンス (送信でのアイドル時間を無視) を出力し、引き続き既知のプリアンブルについて確認されます。プリアンブルが一致すると、ビット シーケンスがさらに復号化されます。そうでない場合は、破棄され、次のシーケンスが処理されます。
ビット シーケンスで既知の SCM プリアンブルが検出された場合、受信したメッセージ ビットは 2 ビット 誤りまで修復可能な短縮された (255,239) BCH 符号を使用して復号化されます。既知の IDM プリアンブルが検出された場合、受信機はメーターのシリアル番号と、Packet type (5 番目のバイト) から始まるパケット全体の巡回冗長検査 (CRC) を実行して、パケットが有効かどうかを検証します。有効な修正されたメッセージが、AMR メッセージ パーサー上で渡されます。
メッセージ パーサー
有効なメッセージの場合、次にビットが SCM または IDM 形式の特定のフィールドとして解析されます。
データ ビューアー
データ ビューアーでは、別の MATLAB® Figure に、復号化されたパケットが表示されます。正常に復号化されたパケットごとに、メーター ID、商品の種類、AMR パケット タイプ、消費情報および取得時間が表示されます。データが取得され復号化されるたびに、アプリケーションでは、これらのメッセージから復号化された情報が表形式で一覧表示されます。表には、一意のメーター ID と最新の消費情報のみが表示されます。
また、メーター ID を変更して、データ ビューアーを使用してテキスト ファイルのログ記録を開始することもできます。
Meter ID - メーター ID を 0 (検出されたすべてのメーターを表示するために予約されている既定値) から表示したい特定のメーター ID に変更します。
Log data to file - 復号化したメッセージを TXT ファイルに保存します。保存されたデータは後処理で使用できます。
その他の調査
この例に付属するデータ ファイルには、1 つのメーターの測定値しかなく、915 MHz の中心周波数で取得されています。RTL-SDR または ADALM-PLUTO を使用して、この例を住宅街で長時間にわたって実行すると、複数のメーターの測定値が表示されます。
AMRExampleApp ユーザー インターフェイスを使用して、AMR 信号をさらに調査することができます。このアプリでは、信号ソースを選択して、RTL-SDR または ADALM-PLUTO の中心周波数を変更できます。このリンクは、下に示している AMRExampleApp アプリを起動します。
物理レイヤー、AMR メッセージ形式の詳細については、次の関数も参照してください。
複数の無線機を利用する場合の例については、AMRMultipleRadios.m を参照してください。複数無線機のバージョンでは、使用可能な無線デバイスごとに異なる中心周波数を設定して、1 つのメーターの周波数ホップ パターンを調べることができます。スクリプトは、2 つの無線用に設定されていますが、任意の数に拡張できます。
参考文献
Automatic meter reading, https://en.wikipedia.org/wiki/Encoder_receiver_transmitter, 2016.