ホワイト ペーパー: pynq フレームワークおよび …wp502 (v1.0) 2018 年 6 月 15 日...

12
WP502 (v1.0) 2018 6 15 japan .xilinx.com 1 © Copyright 2018 Xilinx, Inc. XilinxXilinx のロゴ、 ArtixISEKintexSpartanVirtexVivadoZynq、 およびこの文書に含まれるその他の指定されたブラン ドは、 米国お よびその他各国のザイ リ ン クス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属し ます。 この資料は表記のバージ ョ ンの英語版を翻訳したもので、 内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。 ザ イ リ ン ク ス が提供す る PYNQ フレームワークは、 Python 言語が利 用でき、 そのランタイムを Zynq® ポー ト フ ォ リ オに統合 し ま す。 Python の生産性を Zynq SoC アーキテクチャで直接利用するこ とで、 ユーザーはプログラマブル ロジックおよびマイクロプロセッサの利 点を活用し、 人工知能、 機械学習、 IT アプ リ ケーシ ョ ン向けデザイ ン を簡単に構築で き る よ う にな り ます。 ホワイ ト ペーパー : PYNQ フレームワークおよび Zynq ポートフォリオ WP502 (v1.0) 2018 6 15 Python の生産性の価値: ザイリンクス Zynq ポー ト フ ォ リ オの エッジ アナリティクス 著者: Giulio Corradi (PhD) 概要 Python オープンソース プログ ラ ミ ング言語は、 工学、 科学、 データ サイエンス、 機械学 習、 情報技術、 および人工知能にわた る さ ま ざ ま なアプ リ ケーシ ョ ンで事実上の標準規格 になっています。 エンベデッ ド アプ リ ケーシ ョ ンに最新のシステム オン チップ (SoC) を使用す る こ と で、 デ スクトップ ワークステーシ ョ ンに近い性能を実現しつつ、 はるかに小さいフォーム ファク ターと極めて低い電力要件で、 複雑な解析アルゴ リ ズム処理を Python で実行でき ます。 ザ イリンクスの Zynq ポー ト フ ォ リ オでは、 センサーから読み取ったデータ を事前処理する こ とで、 低いレイテンシとはるかに高いレベルの性能および確定性を実現できます。 PYNQ フレームワーク と呼ばれるこのアプローチでは、 重要ではあるが反復的でプロセッ サ帯域幅を無駄に消費する演算の多 く をアプ リ ケーシ ョ ン プロセッサから効果的にオフ ロードします。 このオフロードは、 IIoT エッジ アプリケーションにおけるインテリジェン ス向上に対応する上で必要不可欠です。

Upload: others

Post on 31-Dec-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 1

© Copyright 2018 Xilinx, Inc. Xilinx、 Xilinx のロゴ、 Artix、 ISE、 Kintex、 Spartan、 Virtex、 Vivado、 Zynq、 およびこの文書に含まれるその他の指定されたブランドは、 米国およびその他各国のザイリンクス社の商標です。 すべてのその他の商標は、 それぞれの保有者に帰属します。

この資料は表記のバージ ョ ンの英語版を翻訳したもので、 内容に相違が生じる場合には原文を優先します。 資料によっては英語版の更新に対応していないものがあります。

ザイ リ ンクスが提供する PYNQ フレームワークは、 Python 言語が利用でき、 そのランタイムを Zynq® ポート フォ リオに統合します。Python の生産性を Zynq SoC アーキテクチャで直接利用するこ とで、ユーザーはプログラマブル ロジッ クおよびマイ クロプロセッサの利点を活用し、 人工知能、 機械学習、 IT アプリ ケーシ ョ ン向けデザインを簡単に構築できるよ うにな り ます。

ホワイ ト ペーパー : PYNQ フレームワークおよび Zynq ポート フォリオ

WP502 (v1.0) 2018 年 6 月 15 日

Python の生産性の価値: ザイリンクス Zynq ポートフォリオの

エッジ アナリテ ィ クス著者: Giulio Corradi (PhD)

概要

Python オープンソース プログラ ミ ング言語は、 工学、 科学、 データ サイエンス、 機械学習、 情報技術、 および人工知能にわたるさまざまなアプリ ケーシ ョ ンで事実上の標準規格になっています。

エンベデッ ド アプリ ケーシ ョ ンに最新のシステム オン チップ (SoC) を使用するこ とで、デスク ト ップ ワークステーシ ョ ンに近い性能を実現しつつ、 はるかに小さいフォーム ファ クターと極めて低い電力要件で、 複雑な解析アルゴ リズム処理を Python で実行できます。 ザイ リ ンクスの Zynq ポート フォ リオでは、 センサーから読み取ったデータを事前処理することで、 低いレイテンシとはるかに高いレベルの性能および確定性を実現できます。

PYNQ フレームワーク と呼ばれるこのアプローチでは、 重要ではあるが反復的でプロセッサ帯域幅を無駄に消費する演算の多くをアプリ ケーシ ョ ン プロセッサから効果的にオフロード します。 このオフロードは、 IIoT エッジ アプリ ケーシ ョ ンにおけるインテ リジェンス向上に対応する上で必要不可欠です。

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 2

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

エンベデッ ド コンピューテ ィングの新しいパラダイム最近の IEEE の調査による と、 2017 年に最もよ く使用されたプログラ ミ ング言語は Python と C の 2 つでした。 エンベデッ ド コンピューティング分野では、 C が長きにわたって不動の存在でした。 従来は Python と言えばウェブやデスク ト ップ コンピューティング向けの言語であ り、 エンベデッ ド コンピューティング向けではあ り ませんでしたが、 この状況は変化しつつあ り ます。

Python およびそれに関連するフレームワークによって、 データ アナリティ クス、 機械学習 (ML)、 人工知能 (AI) などのアプリケーシ ョ ンで使用される複雑なアルゴ リズムの開発が可能です。 もちろん、 これらのアプリ ケーシ ョ ンはエンベデッ ド コンピューティングの分野でも注目される ト ピッ クであ り、特にエッジ側でのインダス ト リ アル IoT (IIoT) において Python の採用が推し進められています。

C、 C++、および Python は密接な関係にあ り ます。 Python 自体が最も内部のライブラ リで C と C++ の両方に依存しているためです。 ただし、 コンパイラ言語であ りベアメ タル アプローチを使用して実行可能な C および C++ とは異なり、 Python はインタープリ タ言語です。 この違いによ り、 エンベデッ ド コンピューティングで Python 固有の課題が発生します。 たとえば、Python にはオペレーティング システム (通常は Linux) と、 揮発性および不揮発性のメモ リ リ ソースが必要です。

IIoT エッジにおけるエンベデッ ド コンピューティングに関して言えば、 ML と AI の実装はデジタル ツイン(1) と しての役割が大き くな り、 物理アクチュエータを制御しています。 したがって、 確定的な低レイテンシでソ リ ューシ ョ ンが リアルタイムに応答できるこ とが極めて重要です。 さ らに、 IIoT ソ リ ューシ ョ ンは、 次のよ うな業界ト レンド もサポートできる必要があ ります。

• 問題の緊迫性に応じて リ アルタイム プロセッサ、 アプリ ケーシ ョ ン プロセッサ、 および専用プロセッシング エレ メン トを分割する

• 性能が重視されるカーネルを高速化するために、 特別なプロセッサ オフロード エンジンへのインターフェイスを作成する

• Linux などの標準的なオペレーティング システムを使用する

• スケジューリ ングおよび確定性を実現するソ リ ューシ ョ ンを提供する

• プロ ト タイピングおよびプロダクシ ョ ンのための高生産性フレームワークを提供する

• IT と OT のネッ ト ワークの融合を含む、 標準およびレガシのネッ ト ワーク通信インターフェイスおよびプロ ト コルに対応する

• 機械学習およびアナリティ クス向けの豊富なライブラ リ を提供する

• 機能的安全性

• サイバーセキュ リティ

IIoT プラ ッ ト フォームを構築する試みは簡単ではあ り ません。 物理的な世界のエッジから、 AI や ML を含むクラウ ドまでをつなぐチェーンは複雑で、 いくつかの特殊化が必要です。 したがって、 IIoT ソ リ ューシ ョ ンを開発するには、 プロジェク トに関与するさまざまなジ ョブ機能と結びついた多くのレベルの抽象化を用いる必要があ り、 そ うするこ とで、 容認される時間と コス ト内での開発が可能になり ます。 詳細は、 図 1 を参照して ください。

1. デジタル ツインは物理的な資産、 プロセス、 およびシステムをデジタル上で複製したものであ り、 現実世界の動作をモデル化して、 モニ

タ リ ング、 予知、 および診断できます。

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 3

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

I IoT における機械学習の探求IIoT ソ リ ューシ ョ ンでエッジ側にインテ リジェンスを埋め込むこ とがますます増えています。 これは、 多くのアプリ ケーシ ョ ンにとって、 機械学習の推論を実装するこ とを意味します。 実装した場合、 ML アルゴ リズムはその経験を使用して、 一連の入力データに基づいて結論に達します。 ML では、 ト レーニングと呼ばれる学習プロセスによって経験が与えられます。ML アプリ ケーシ ョ ンの ト レーニングの実施方法は、 (1) 人間による監視または (2) 判断機能の実行のいずれかです。 どちらの方法も、 大量の肯定的事例および否定的事例のデータセッ ト を ML ネッ ト ワークに適用する必要があ り ます。 ML アルゴ リズムの ト レーニングが十分に実施された後、 エッジ側に展開して新しい未知の入力から推論できるよ うになり ます。

IIoT ソ リ ューシ ョ ン アプリ ケーシ ョ ンは ML の利点を利用したものであ り、 特に再キャ リブレーシ ョ ン、 メンテナンス、 診断、 フェイルセーフ操作など、 従来の方法では性能面で受け入れられなかったり人手による介入が絶えず必要となるよ う な次のアプリ ケーシ ョ ンです。

• センサーおよび測定システム

• システムの特定

• 機械学習システム制御

• 高度な信号処理

• 自律型システムの強化学習

• 画像処理

したがって、 ML ソ リ ューシ ョ ンを開発する際は、 ソ リ ューシ ョ ンの単独の要素だけではなく、 開発モデル全体をサポートするだけの十分な汎用性を備えたプラ ッ ト フォームとエコシステムの両方が必要になり ます。

X-Ref Target - Figure 1

図 1: 同じプラッ ト フォームに対する異なるレベルの抽象化

WP502_01_061218

Open CL Python

DATA

O.S. AbstractSensors

Data Scientists

Barrier

Embedded Engineer Hardware Engineer

O.S. Sensors

FPGA

Sensors

FPGA

FPGA

FPGA

FPGA

FPGA

Barrier

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 4

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

PYNQ フレームワークザイ リ ンクス Zynq-7000 SoC には、 最新の SoC 向けの事実上の標準機能を提供するよ うに設計された、 デュアル コア Arm® Cortex®-A9 プロセッサ システム (PS) およびプログラマブル ロジッ ク (PL) が搭載されており、 重要なタスクを PL にオフロードするための独創的で差別化された柔軟性も備わっています。 Zynq UltraScale+ MPSoC および Zynq UltraScale+ RFSoC は、 このモデルを拡張したもので、 クワ ッ ド コア Arm Cortex-A53 PS、 PL、 および製品番号によって異なるその他の処理ブロ ッ クを備えます。

このよ うな PS と PL が密に結合しているこ とによ り、 従来のアプローチと比べて高い応答性、 リ コンフ ィギュレーシ ョ ン可能性、 および電力消費効率を持ったシステムを構築できます。 従来の CPU ベースのアプローチでは、 画像などの大きなデータ構造を共有するために外部メモ リ を使用する必要があ り ます。 これによ りオフチップのアービ ト レーシ ョ ンおよび通信が必要になるため、 確定性が低下し消費電力とレイテンシの両方が増加します。 Zynq ポート フォ リオに含まれるよ うなヘテロジニアスなシステムオンチップ デバイスでは、 PL 内の機能を高速化できます。 これによ り、 レイテンシが削減され最適な電力ソ リ ューシ ョ ンが達成できるため、 確定的な応答時間が実現します。 詳細は、 図 2 を参照して ください。

PL 機能を使用するこ とで、 インターフェイスが固定されている従来の CPU アプローチよ り もデータ幅の広いインターフェイス機能を利用できます。 PL の I/O 構造の柔軟性によ り Any-to-Any コネクティビティが可能になり、 業界標準インターフェイス、 独自インターフェイス、 またはレガシ インターフェイスを実装できます。

高位合成ツール SDSoC™ および Vivado® HLS によ り、開発者は C および C++ のコンパイル済みコードをハード ウェア内で直接変換できます。

プログラマブル ロジッ クの機能の高速化に加えて、 1 つまたはそれ以上の MicroBlaze™ 32 ビッ ト ソフ ト コア プロセッサをインスタンシエートするこ と もできます。 MicroBlaze コアによってク リ ティカルなアプリ ケーシ ョ ンのリ アルタイム実行が可能になり ます。 これらの機能によ り、 Zynq ポート フォ リオで Python 対応のエンベデッ ド プラ ッ ト フォームのすべての要件を満たすこ とができます。

PYNQ フレームワークによって Python と Zynq ポート フォ リオの連携が可能になり、プログラマブル ロジッ クで実現されるアクセラレーシ ョ ンを利用できます。 これを可能にするために、 PYNQ はハイブ リ ッ ド ラ イブラ リ と してパッケージ化された PL オーバーレイを利用します。 ハイブ リ ッ ド ライブラ リはオーバーレイ ビッ ト ス ト リームを含む新しい形式のライブラ リであ り、 関連付けられたハード ウェア依存の C コードおよび Python API も含まれています。 ハイブリ ッ ド ライブラ リは再利用を可能にする上で欠かせないメカニズムであ り、 PIP Install (Python で記述されたソフ ト ウェア パッケージのインス トールおよび管理に使用されるパッケージ管理システム) を使用して簡単にインス トールできます。

X-Ref Target - Figure 2

図 2: 標準的な SoC と比較した場合の Zynq ポート フォリオの利点

WP502_07_061218

DSP/GPU

CPUs

SensorFusion

MotorControl IP

Motoring/ UI

CriticalDecision

DDR

Typical SoC

Image Sensor

Ultrasonic

Radar

Lidar

IMU

DDR

Programmable Logic

CPUs

Monitor / UI

MotorControl IP

CriticalDecision

SensorFusion

Image Sensor

Ultrasonic

Radar

Lidar

IMU

MPSoC

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 5

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

したがって、 PYNQ フレームワークには、 データ サイエンティ ス ト 、 エンベデッ ド エンジニア、 ハード ウェア エンジニア、およびシステム エンジニアといったさまざまな開発者に必要な抽象化レベルが用意されています。 詳細は、 図 3 を参照してください。

PYNQ は Zynq ポート フォ リオ ベースのデザインをシンプルにして向上させる初のフレームワークであ り、 次の要素を統合します。

• 高生産性言語 (Python)

• プログラマブル ロジッ クを高速化できるハイブリ ッ ド ライブラ リ

• エンベデッ ド プロセッサで処理するウェブ ベース アーキテクチャ

• Jupyter Notebook フレームワーク

これらの要素を使用するこ とで、 PYNQ フレームワークでは、 プログラマブル ロジッ クを十分に活用できない従来の SoC アプローチと比べて大きな利点が得られます。

データ サイエンティ ス トは、 ザイ リ ンクスが Python フレームワークで作成したシステムと使い慣れたパッケージをすぐに使用できます。 図 3 は、 一部の標準パッケージを使用できる、 実現可能なスタッ クを図示したものです。 Panda、 Scikit-learn、 および NumPy が上部に位置し、ほかのパッケージでロボッ ト用の ROS やシ ミ ュレーシ ョ ン用の SimPy などのさらに特殊な機能を提供します。

すぐに使用できる事前構成された 1 つまたはそれ以上のハードウェア モジュールを Python でインポート し、 アプリ ケーシ ョンの高速化を実現してボ トルネッ クを解消できます。 これによ り、 すべてのパッケージを Jupyter 環境内で検索して使用できるよ うにな り、 FPGA オーバーレイに基づくハード ウェア ラ イブラ リ を用いてプログラマブル ロジッ クへインターフェイスできます。

X-Ref Target - Figure 3

図 3: PYNQ フレームワークでの高い抽象化レベル

WP502_02_052318

EmbeddedAcceleration

HardwareAcceleration

QuickPrototyping

DataAnalytics

DataAnalytics

Sensors

Robots

StatisticalMachineLearing

DiscreteEventSimulation

CFFI

Higher Level Python Frameworks Embedded Realization

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 6

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

PYNQ フレームワークはオープンソース コ ミ ュニティを中心にして設計され、 オーバーレイが開発者の間で作成および共有されています。 これを使用する と、 新しいオーバーレイを作成する必要が生じるまで、 すなわち必要な機能を持つオーバーレイが存在しないこ とがわかるまで、 オーバーレイを作成する必要があ り ません。 理想を言えば、 新しいオーバーレイは、 IIoT 向けに確立された 「設計パターン」 に従っている必要があ り ます。 これらの設計パターンは、 次を含みます (ただしこれらに制限されるわけではない)。

• アクセラレータ : 計算の共有と メ イン プロセッサとのデータ交換を加速します。 交換は、 PL メモ リ (ブロ ッ ク RAM)、 オンチップ メモ リ (OCM)、 L2 キャ ッシュ、 および DDR メモ リ内でデータ サイズおよび性能に応じて実行されます。

• ロガー : メ イン プロセッサと共有されているデータ (一般的に生データ ) を取得します。 ロギングは、 PL メモ リ (ブロック RAM)、 オンチップ メモ リ (OCM)、 L2 キャ ッシュ、 および DDR メモ リ内でデータ サイズおよび性能に応じて実行されます。 取得プロセスは、 メ イン プロセッサからイベン ト を明示的にト リガーするか、 外部イベン ト をキャプチャするこ とによって開始されます。

• シーケンサー : 論理値の自動シーケンスを生成します。 複雑さに応じて、 自動シーケンスにはブール関数、 FSM、 および任意のデジタル パターンを実行するためのプログラマブル ジェネレーターのインスタンスが含まれる可能性があ り ます。

• ワーカー : C/C++ でプログラム可能で、 MicroBlaze 32 ビッ ト ソフ ト コア プロセッサに基づく リ アルタイム制御を実現し、メ イン プロセッサから繰り返しタスクをオフロード して確定性を提供します。

• セーフティ モジュール: ワーカーをセーフティ モジュールと して使用するこ と も可能です。 MicroBlaze プロセッサはロ ックステップ動作用に構成できます。 Zynq ポート フォ リオは機能的安全性を確保するよ うに設計されていますが、 製品が初期のプロ ト タイプから量産体制に移行する と きに、 この機能が重要になり ます。

センサーおよび測定システムセンサーはあらゆる産業用システムで重要な要素であ り、 IIoT ソ リ ューシ ョ ンにとって特に重要です。 IIoT ソ リ ューシ ョ ンはいくつかの異なるセンサー モダ リティを導入しており、 温度測定用の単純な熱電対もあれば、 特定の物理量を測定するためのヘテロジニアスなセンサーを複数組み合わせた複雑なセンサー フュージ ョ ンもあ り ます。 IIoT ソ リ ューシ ョ ン内に ML を実装するこ とで、 開発者は特定のセンサーの性能を最大限に引き出すこ とができ、 次を効率化できます。

• センサー データの取得 (例: 振動解析)

• センサー データの正規化

• センサーの線形化

• センサーの診断

• 高レベル センサー

• センサー フュージ ョ ン

• キャ リブレーシ ョ ンおよび自動キャ リブレーシ ョ ン

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 7

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

センサーの診断センサーの性能は、 動作寿命期間を通じて経時変化します。 このこ とはセンサーが過酷な環境で使用されている場合に特に当てはま り、 経時変化によ り信頼性が損なわれ、 ずれや逸脱が生じます。 センサーを診断する機能は、 センサーがセーフティ アプリ ケーシ ョ ンで使用されている場合にも極めて有用です。 この場合、 適切な診断プロセスもセーフティ システムの一部とな り ます。

設計者は ML を使用して、 実際のセンサー出力を継続的にモニターしながらセンサー出力を予測するためのセンサー モデル (いわゆる 「デジタル ツイン」 ) を作成できます。 通常動作では、 センサー信号はシステム ノ イズおよび測定ノ イズによる特定のばらつき度合いに応じて既知のパターンに従います。 ただし、 センサーの故障が発生した場合、 観測可能な出力が予測値から逸脱し、 この逸脱が指定されたタイ ミ ングまたはしきい値を超えた場合にセンサーの故障が宣言されるこ とがあ り ます。解析的冗長性技法によ り、 通常動作のセンサーからの情報を使用して動的システム向けモデルを作成できるため、 「デジタル ツイン」 は経時変化したり故障が発生したりせず、 いつまでも使用できます。

予知保全の使用例: 診断および安全のためのボール ベアリングの故障検出

包装資材業界は、 装置の信頼性を向上するための先進的なシステムと して総合的設備管理の重要性を認識しています。 ベア リングの故障は業界で最も多い故障原因の 1 つであ り、 通常は徐々に発生します。 したがって、 こ う した故障を早期の段階で検出するこ とは、 動作の信頼性と効率性を両立させるために極めて重要です。 個々の包装機には 8 つを超えるモーターと数多くの軸が使用されており、 ライン停止状態をもたらすおそれがある故障原因が複数存在します。

ボール ベア リ ングは最小限の摩擦で軸または車軸が自由に回転するこ とを可能にし、 軸または車軸を正しい位置に保持します。 回転システムのボール ベア リ ングが故障した場合、 壊滅的な結果となり得ます。 ベア リ ングの破損には、 次のよ うな原因があ り ます。

• ベア リ ングの調整不良

• ベア リ ングの接触面の腐食性損傷であるフレッチング摩耗

• 可変周波数駆動による軸電流の発生 (点食、 フルーティング、 溶融クレーターの原因となる )

• ベア リ ングの潤滑不良

• ベア リ ングの腐食

• ベア リ ングの疲労

• 高温およびその他の要因

故障の発生前にこのよ うな不具合を検出するこ とは、 運用コス トおよび保守コス ト削減の面で非常に重要です。 広帯域測定が可能な低コス トの加速度計を利用できるよ うになった結果、 極めて強力な振動データ収集システムを利用できます。 高度なモーター制御機能と一緒に配備した場合、 考えられる故障を PYNQ フレームワークに基づいて リ アルタイムで検出可能なシステムを実現できます。

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 8

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

このアプリ ケーシ ョ ンでは、 PYNQ フレームワークは ARTY-Z7 ボードに展開されます。 このボードは PYNQ ベースのオーバーレイをサポート しますが、 これは PYNQ フレームワークの実用化のほんの一例です。 この例のシステムのセッ ト アップには 5 つの Konix(1) 3 軸加速度計で構成される高性能モーター制御システムと取得システムが含まれています。

振動のモニタ リ ングでは、 振動測定、 音響測定、 温度測定、 摩耗解析などの手法を使用できます。 シ リ コン加速度計を使用するやり方は、 3 つのすべての軸で振動を感知するための経済的な方法で、 システム内で発生している、 考えられるすべての振動モードの全体像を把握できます。 これを図 4 に示します。

正確な測定のために、 加速度計はモーター、 ギアボッ クス、 およびメ インプーリーのボール ベア リ ングの付近に配置します。

モーター電流、 固定子電圧、 軸の角度の位置などのシステム パラ メーターがモニターされます。 角度および内部電圧の推定にはモーター モデルが使用されます。

1. Kionix Inc. (https://jp.kionix.com/) は微小電気機械 (MEMS) システムのメーカーで、 加速度計、 ジャイロスコープ、 センサー フュージ ョ ン慣

性センサー テク ノ ロジなどを扱っています。

X-Ref Target - Figure 4

図 4: 不具合の検出およびモーターの制御

WP502_05_052318

Z

Xy

Z

Xy

Z

Xy

Z

Xy

Z

Xy

MotorBrushless

=

High-Speed I2C

Zynq-7000 SoC

Ethernet

Wideband Accelerator 3 Axes

Motor ControlPower Stage

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 9

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

図 5 からわかるよ うに、 次の要素を使用して、 PYNQ 環境向けの新しいオーバーレイが作成されます。

• モーター制御システム: QDESYS (www.qdesys.com) の高性能モーター制御 IP セッ ト を使用して HDL ブロッ ク と してインスタンシエート されます。

• ロガー : Vivado HLS モジュールと してインスタンシエート され、 高性能 AXI バス 0 に接続されます。

• オンザフライの高速フーリエ変換 (FFT): Vivado HLS モジュールと してインスタンシエート され、 これも高性能 AXI バス 0 に接続されます。

• MicroBlaze ソフ ト コア プロセッサ: 加速度計データを分離して管理するワーカーを実装し、 これを DDR メモ リ内で共有セグメン ト と して利用できるよ うにします。 MicroBlaze プロセッサによ り、 Arm プロセッサは加速度計の管理から解放されます。 これらに個別に対処する I2C プロ ト コルは、 バイアス誤差、 感度誤差、 温度誤差、 およびレシオメ ト リ ッ ク誤差を補正します。

新しいオーバーレイを PYNQ フレームワーク と連動させるには、 Python C Foreign Function Interface (CFFI) を使用します。 このインターフェイスでは、 Python を使用する場合ほとんどすべての C コード との相互作用が可能です。 PYNQ フレームワーク内にはプログラマブル ロジッ クのアクセラレーシ ョ ン関数があ り、 フレームワークの C/C++ ベースのソフ ト ウェア ド ラ イバーにアクセスできます。 PYNQ フレームワークには、 アプ リ ケーシ ョ ンを開発する と きに役立つ追加機能もあ り ます。PYNQ の中核機能の例と して、 次の 2 つがあ り ます。 (a) MMIO はメモ リ マップされた I/O が可能です。 (b) xlnk は、 NumPy (Python による科学計算用の基本的なパッケージ) から認識可能なバッファー空間と して DDR メモ リの割り当てが可能です。xlnk は、 記録されたベクターがマップされる PL の仮想アドレスおよび物理アドレスを取得する役割を担っています。

X-Ref Target - Figure 5

図 5: 取得およびモーター制御の内部ブロック

WP502_05_052318

Angle Feedback

Currents

HP0 HP1 PL

Zynq-7000 SoC

PS

Motor

I2C HighSpeed

Load

1.6µs

DC Link

MechanicalSensors

Accelerometers

DDR3Logging

Vector MotorLinux

SegmentLogging

Vector Segment Z

Xy

Z

Xy

Z

Xy

Z

Xy

Block RAMDPR

6.4µs

Positioning

3.2µs

Speed

1.6µs

Torque

1.6µs

PowerModulation

MicroBlazeProcessor(Worker)

LinuxCortex-A9

Cluster

1.6µsFFT

Module

1.6µsLogger

8 Channels

Motor Model

Ethernet

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 10

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

たとえば、 加速度計からの振動信号を、 モーターを流れる電流を観察して検出される振動信号と相関させて、 従来の振動解析またはよ り高度な特性解析を使用して相関付けできます。 これらの測定法およびシステム全体の説明は、 こ こには記載していません。 図 6 は、 しきい値を超過したボール ベア リ ングの周波数の制限を例示目的で示しています。 この信号は、 図 7 に示す、 良好に見える電流波形から抽出されています。

上記の例は、 問題および Zynq ポート フォ リオを正し く理解すれば、 高度な診断が実際に可能であ り、 機械学習に対応した IIoT システムに対してよ り インテ リジェン ト なアプローチが可能になるこ とを示しています。

X-Ref Target - Figure 6

図 6: 電流特性による振動解析

X-Ref Target - Figure 7

図 7: 3 相モーターの波形 (ボール ベアリングの特性はノイズに埋もれている)

WP502_05_040318

0

-10

0 100 200 300 400 500

-8

-6

-4

-2

WP502_06_040318

1.0

-1.0

0 500 1000 1500 2000

-0.5

0.0

0.5

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 11

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

まとめこのホワイ トペーパーでは Python と Zynq ポート フォ リオを結び付ける PYNQ フレームワークの基本的事項の一部を扱いました。 PYNQ フレームワークによって、 IIoT のすべての機能と機械学習から得られる新たな機能を活用できるシステムを構築するための新たな可能性がすぐにもたらされています。

エッジ側での機械学習はまだ揺籃期にあ り ますが、 ザイ リ ンクスは、 インテ リジェン ト な適応型の資産の設計、 展開、 保守を高速化および簡素化するためのクラス最高の製品および設計フレームワークの実現に取り組んでいます。 この文書に記載されている ト ピッ クの多くは今後のホワイ トペーパー、 アプリ ケーシ ョ ン ノート、 および事例でさらに詳し く説明していきます。これらの資料の一部は PYNQ GitHub リ ポジ ト リから入手できます。

これから開発を始められる方へ• PYNQ フレームワークは http://www.pynq.io から入手できます。

• このホワイ トペーパーで説明している Digilent Inc. の Arty Z7 ボードは、 次のサイ トから入手できます。store.digilentinc.com/arty-z7-apsoc-zynq-7000-development-board-for-makers-and-hobbyists/

• Arty Z7 ボード、 モーター制御用の電源モジュール、 および BLDC モーターは、 次のサイ トから入手できます。https://shop.trenz-electronic.de/en/TEC0053-04-K1-EDDP-Motor-Control-Kit-with-Motor-Power-Supplies

WP502 (v1.0) 2018 年 6 月 15 日 japan.xilinx.com 12

Python の生産性の価値: ザイリンクス Zynq ポート フォリオの エッジ アナリティ クス

改訂履歴次の表に、 この文書の改訂履歴を示します。

免責事項本通知に基づいて貴殿または貴社 (本通知の被通知者が個人の場合には 「貴殿」、 法人その他の団体の場合には 「貴社」。 以下同じ ) に開示され

る情報 (以下 「本情報」 といいます) は、 ザイ リ ンクスの製品を選択および使用するこ とのためにのみ提供されます。 適用される法律が許容す

る最大限の範囲で、 (1) 本情報は 「現状有姿」 、 およびすべて受領者の責任で (with all faults) とい う状態で提供され、 ザイ リ ンクスは、 本通知

をもって、 明示、 黙示、 法定を問わず (商品性、 非侵害、 特定目的適合性の保証を含みますがこれらに限られません)、 すべての保証および条

件を負わない (否認する ) ものと します。 また、 (2) ザイ リ ンクスは、本情報 (貴殿または貴社による本情報の使用を含む) に関係し、起因し、関

連する、 いかなる種類・性質の損失または損害についても、責任を負わない (契約上、不法行為上 (過失の場合を含む)、 その他のいかなる責任

の法理によるかを問わない) ものと し、 当該損失または損害には、 直接、 間接、 特別、 付随的、 結果的な損失または損害 (第三者が起こした行

為の結果被った、 データ、 利益、 業務上の信用の損失、 その他あらゆる種類の損失や損害を含みます) が含まれるものと し、 それは、 たとえ

当該損害や損失が合理的に予見可能であった り、 ザイ リ ンクスがそれらの可能性について助言を受けていた場合であったと しても同様です。

ザイ リ ンクスは、 本情報に含まれるいかなる誤り も訂正する義務を負わず、 本情報または製品仕様のアップデート を貴殿または貴社に知らせ

る義務も負いません。事前の書面による同意のない限り、貴殿または貴社は本情報を再生産、変更、頒布、 または公に展示してはなり ません。

一定の製品は、ザイ リ ンクスの限定的保証の諸条件に従う こ と となるので、https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売

条件を参照して ください。 IP コアは、 ザイ リ ンクスが貴殿または貴社に付与したライセンスに含まれる保証と補助的条件に従う こ とになり ま

す。 ザイ リ ンクスの製品は、 フェイルセーフと して、 または、 フェイルセーフの動作を要求するアプリ ケーシ ョ ンに使用するために、 設計さ

れたり意図されたり していません。 そのよ うな重大なアプリ ケーシ ョ ンにザイ リ ンクスの製品を使用する場合のリ スク と責任は、 貴殿または

貴社が単独で負う ものです。 https://japan.xilinx.com/legal.htm#tos で見られるザイ リ ンクスの販売条件を参照してください。

自動車用のアプリケーシ ョ ンの免責条項オート モーテ ィブ製品 (製品番号に 「XA」 が含まれる ) は、 ISO 26262 自動車用機能安全規格に従った安全コンセプ ト または余剰性の機能 (「セーフティ設計」 ) がない限り、エアバッグの展開における使用または車両の制御に影響するアプリ ケーシ ョ ン ( 「セーフティ アプリ ケーシ ョ

ン」 ) における使用は保証されていません。 顧客は、 製品を組み込むすべてのシステムについて、 その使用前または提供前に安全を目的と し

て十分なテス ト を行う ものと します。 セーフティ設計なしにセーフティ アプリ ケーシ ョ ンで製品を使用する リ スクはすべて顧客が負い、製品

の責任の制限を規定する適用法令および規則にのみ従う ものと します。

この資料に関するフ ィードバッ クおよびリ ンクなどの問題につきましては、 [email protected] まで、 または各ページの右下にある

[フ ィードバッ ク送信] ボタンをク リ ッ クする と表示されるフォームからお知らせください。 いただきましたご意見を参考に早急に対応させて

いただきます。 なお、 このメール アドレスへのお問い合わせは受け付けており ません。 あらかじめご了承ください。

日付 バージョ ン 内容

2018 年 6 月 15 日 1.0 初版