Frequently Asked Question
もし日本語字幕が自動で表示されない場合はブラウザのシークレットモードをお試しください。
キーワードの検索は "Ctrl + F" でブラウザの検索機能をご使用ください
ビデオのタイムスタンプに直接飛べるリンクが必要な場合 このガイドに従ってください
このビデオはお役に立てたでしょうか?HIL Academyの無料のHIL Specialistコースを受講してさらに理解を深めてみませんか?
もしこのビデオをあなたの母国語への翻訳するのに協力してくださる場合、我々までご連絡 ください
TRANSCRIPT
前のレッスンではHILアーキテクチャ モデルマッピングとこれらがモデルの設計方法にどのように影響するかについて説明しました
これまでは 特にモデルの最適化を行わなくてもモデルのコンパイル出来るシンプルな事例を見てきました
このビデオでは ハードウェアの限界を回避する最適化が必要なモデルを紹介します
コンパイルを成功させ シミュレーションを安定させる方法を紹介します
コンパイラコンソールでのオフライントラブルシューティングに加えて
HIL SCADAでのランタイム中のモデルトラブルシューティングも学習します
画面に表示されているように
このコースで開発したモデルを使用してこれらの典型的な状況をデモンストレーションします
まずマトリクスメモリについて説明します
マトリックスメモリの包括的な説明はレッスン3.1コンパイラコンソールでのモデルマッピングで行いました
そこではマトリクスメモリが受動部品の数と理想的なスイッチの数が
標準処理コア(SPC=Standard Processing Core)の最大サイズを定義することを示しました
最大マトリクスメモリを超えた場合に何が起こるかを調べてみましょう
これを実現するためにいくつかの受動要素とスイッチを追加しましょう
DCリンクに2つのコンタクタと1つの可変受動負荷を追加します
この負荷は単純な可変抵抗器として実装されSCADA入力がそのコントローラとして提供される予定です
最後にインバータと残りのDCリンクの間にコンデンサを追加しましょう
これでモデルをコンパイルするとマトリクスメモリの使用率が
100%を超えているというエラーが表示されるので必要な修正を行ってコンパイルを再開する必要があります
この問題を解決するために必要な次の手順は何でしょうか?
方法はいくつかあります
主な方法はモデルをコアに分割することでしょう
現在HIL404を使用しているためConfiguration1では最大3つの標準SPCを使用できることがわかります
それではそれらを利用して回路を2つの別々のコアに分割しましょう
モデルを2つのコアに分割するために Ideal Transformer CouplingつまりITカップリングを使用します
これを行うにはSingle Phase Core Coupling コンポーネントを使用します
これにより2つのコアができました
最初のコアには 電圧源 理想的なスイッチ可変抵抗器 およびコンデンサがあります
2番目のコアにはインバータ 残りの理想的なスイッチおよび誘導機があります
これでモデルをコンパイルするとMessageLogに2つのコアがあることがわかります
回路図上の部品の位置を追跡し
どのサブサーキットが どのコアに属しているかを特定するために使用できるコンポーネントへのリンクがあります
マトリクスメモリ使用率のセクションでは
マトリクスメモリ使用率が大幅に低下し メモリ負荷が2つのコア間で分散されたことがわかります
これでコンパイラはコンパイルを正常に終了しました
コアカップリングについてはレッスン3.3.1「Introduction to model partitioning」でより詳しく説明します
マトリクスメモリが過負荷になったときに
モデルのパーティション分割を実行するためのより詳しい説明に興味がある場合は
資料のセクションにリンクされているドキュメントを確認してください
またこの機会にコンパイラログをさらに詳しく見てみましょう
ご覧のとおり メッセージコンソールには
コンパイラレポートと警告の両方を含む[Output]タブと
警告とエラーのみを含む2番目のタブがあります
2番目のタブに移動しましょう
ここでは2つ目の警告すなわちbad voltage loop(電圧ループの不良)を警告するものだけを取り上げます
よく見るとこの警告の意味は
コンバータスイッチの特定の配置に対してHILが正しいシミュレーション結果を提供しないことを
警告することであることがわかります
このエラーを受け取った場合
外部接続されたコントローラや内部で開発されたコントローラの制御がコンバータをこの状態にしないことを確認する必要があります
これがモデルにとって何を意味するのかを判断しましょう括弧内のブール値が示すように
この警告はすべてのスイッチが閉じており前面のコンタクタが開いているコンバータの状態に対するものです
私たちの制御アルゴリズムはコンバータをこの組み合わせに入れることは決してないので
このエラーについて心配する必要はありません
資料編にリンクされているFAQの記事にはこの警告のより詳しい説明と警告が表示された場合の対処方法が含まれています
ここでマトリクスメモリの使用率に関する説明に戻りましょう
ITカップリングはマトリクスメモリ使用率の問題に対処する良い方法ですが
対処方法として唯一の方法ではありませんモデルをリセットして別の方法を試してみましょう
マトリクスメモリが不足した場合に対処する2番目の方法は
より多くのマトリクスメモリを提供するconfigurationまたはデバイスを選択することです
メニューの[Module]→[Model Setting]からHIL404の可能な構成を確認してみましょう
残念ながらどのconfigurationもマトリクスメモリの容量は同じです
したがってHIL404しか利用できない場合はより多くのマトリクスメモリを搭載した構成を利用することができません
ここではHIL604デバイスも利用できる場合の使用できるConfigurationを見てみましょう
Device Configuration Tableでわかるように
HIL604デバイスのConfiguration4ははるかに多くのマトリクスメモリを提供します
したがってConfiguration4のHIL604を選択して今回のモデルをどのように扱うか見てみましょう
これでコンパイルしようとするとコンパイルは正常に終了します
これはHIL404のConfiguration1では不可能だった1つのコアで実行されることに注意してください
重要なのは実際にHILデバイスに接続しなくても目的のハードウェア構成を設定し
モデルをコンパイルするだけでこれらのコンパイルテストを実行できることです
つまりHILデバイスを購入またはリースする前に 特定のモデルを想定している場合
どのHILデバイスまたはデバイスがニーズに合っているかを判断するためにモデルの構築を開始することができるのです
最後の解決策はモデルの動作・ふるまいに不可欠ではないコンポーネントを削除することによってモデルを縮小することです
ただし モデルの忠実度に影響を与える可能性があるためモデルを縮小することは最後の手段としてのみ検討する必要があります
次にタイムスロットの使用時に発生する可能性のある問題に対処する方法について説明します
レッスン3.1「Model Mapping in Compiler Console」で説明したようにタイムスロットの使用はマトリクス乗算器に関連しています
現在Configuration4のHIL604を使用しているので
シミュレーションのタイムステップを 0.5μsにしてシミュレーションしてみましょう
Model Settingsで変更します
今このモデルをコンパイルしようとするとタイミング制約が満たされていないことが通知されます
core0のタイムスロット使用率とマシンのタイムスロット使用率の2つが制限を超えました
ここではcore0のタイムスロット使用率について説明します
core0のタイムロット使用率を低減させる最も効果的な方法はモデルを2つのコアに分割することです
ただしこれでもマシンのタイムスロット使用率の2番目の問題は解決されません
コアのタイムスロット使用率についてはよりピーク処理能力の高いConfigurationに変更することが考えられます
今HIL604のConfiguration4を使用していますが別のConfigurationに変更することも可能です
Configuration5を使用するとピーク処理能力を高めコアのタイムスロット使用率を下げることができるでしょう
それでもこれはマシンのタイムスロット使用率の問題に対処するには十分ではありません
モデル内の素子数を減らすとタイムスロットの使用率の問題を解決するのに役立ちますが
これも最後の手段としてのみ使用する必要があります
コアとマシンのタイムスロット使用率の両方の問題を解決できるソリューションがいくつかあります
最も簡単な方法はシミュレーションのタイムステップを増やすことです
現在は0.5μsのシミュレーションタイムステップでモデルのシミュレーションを試みています
これを1μsに増やすとタイムスロット使用率の問題が解決されます
しかしアプリケーションがより小さなタイムステップを要求する場合
VBR誘導機を通常の電流源ベースのモデルに置き換えることでモデルの最適化を試みることができます
コンパイルを成功させるためには計算方法をconstrain matrixに変更する必要があります
このようにしてモデル全体を0.5μsで実行できるようにしました
HIL404デバイスを使用していた場合はこれ(タイムスロットの使用率)は問題ではなかったことに注意してください
HIL404デバイスはメモリや最大モデルサイズなどの性能は小さいですが
回路ソルバの性能は非常に高くこのモデルを0.5μsで実行することが可能です
ではHIL404に戻りましょう
モデルをコンパイルしてみましょう
ご覧のとおりこのモデルはHIL404デバイス用に正常にコンパイルされています
このような試みはモデルに最適なHILデバイスを見つけデバイス選定の間違いをなくすのに役立ちます
それではモデルの作成中に生じやすいより一般的な問題をいくつか説明しましょう
より完全なドライブセットアップに似せるために最初にモデルをより詳細なものに変更します
これを行うため
グリッドをモデル化するためにDC電圧源 スイッチ および可変抵抗器を各相をパッシブコンポーネントを備えた
三相電圧源コンポーネントに 置き換えましょうRMS電圧を230Vに設定します
次にDCバスに接続できる三相ダイオード整流器を接続しましょう
最後に単相コアカップリングを接続します
今回はこのドライブセットアップを 複数のコアに分割しコンパイルを完了するために コアカップリングを配置し赤い電流源側をインバータに接続します
SCADAに移動してシミュレーションを開始すると
算術オーバーフローフラグが立てられ シミュレーション結果は正しくありません
これが発生する理由は ITカップリングの方向が正しくないためですITカップリングを反転させることで修正できます
この問題の根本的な原因についてはレッスン3.2.1で詳しく説明します
トポロジの競合とモデルの無視についてはレッスン3.3で詳しく説明します
算術オーバーフローが発生すると考えられる原因はカップリングの配置が正しくないことだけではありません
電動機器はスナバがコンポーネント内で誤って計算された場合にも算術オーバーフローを引き起こす可能性があります
負荷トルクが電気トルクを超えている間に 潜在的な負荷が機械に加えられ機械の速度が計算限界を超えてしまうため
算術オーバーフローが発生する可能性もあります
算術オーバーフローのデバッグ中に役立つコンポーネントはHIL Flags Statusです
Schematic Editorに戻りモデルにドラッグアンドドロップして 追跡する出力をデジタルプローブに接続します
HIL Flags Statusは 発生している算術オーバーフローのタイプおよび
それがコアまたはマシンの算術オーバーフローであるかどうかを参照するバイナリ信号を出力に提供します
算術オーバーフローとその原因について詳しく知りたい場合はビデオの説明に記載されているFAQ記事を確認してください
次に発生する可能性のあるその他の問題について説明します
このコースで信号処理について前に説明したときに信号処理の実行率を定義することを説明しました
たとえば三相インバータを 制御するために作成したこの単純な制御アルゴリズムの実行速度は100μsです
CPUがリアルタイムの計算を保証するには小さすぎる実行レートを設定した場合はどうなるでしょうか?
CPUが指定されたタイムスロットでこのコードを実行できない場合
HIL SCADAで計算間隔のオーバーランまたはCIOフラグによって警告が表示されます
制御アルゴリズムの実行速度を1μsに下げてこれを試してみましょう
ご覧のとおりコンパイルは正常に終了しますが
シミュレーションを実行すると CIOフラグが現れ
1μsの指定されたタイムスロットでは制御アルゴリズムを実行できないことを警告します
経験則としてほとんどのパワーエレクトロニクスモデルの実行速度は10μsを下回ってはならず
ほとんどのマイクログリッドモデルは100μsを下回ってはなりません
ただし第4世代のHIL404およびHIL606はさらに高速な実行速度を実現できます
CIOの問題はリアルタイムシミュレーション中だけに発生するためこのトラブルシューティングプロセスは実際のHILデバイスでのみ再現できます
CIOフラグについて詳しく知りたい場合は
資料セクションにあるタイムスロット使用率のドキュメントへのリンクを確認してください
この知識をコンパイラコンソールのレッスン3.1モデルマッピングで説明した知識と組み合わせることで
2種類の時間検証を識別できます
電気ドメイン時間の検証は静的に実行され
コンパイラは FPGAが必要なシミュレーションステップでソルバを実行できるかどうかを判断します
一方 信号処理時間の検証は今見たように動的に行われます
このためコンパイラは 小さすぎる電気領域シミュレーションステップでシミュレーションを開始することを防ぎますが
シミュレーション中の信号処理時間ステップが不十分であることを通知するだけです
このレッスンではコンパイルおよびシミュレーション中に発生する可能性のある最も一般的な問題について説明しました
回路ソルバの過度な使用を解決するための最も効果的で最も重要なツールである回路分割コンポーネントについて説明しました
このモジュールの後半でそれらに特化する一連の専用レッスンがあります
ただしデバイスコアの数には限りがあるため 合理的に使用する必要があります
これが このレッスンで取り上げた代替ソリューションとモデリングのトリックについて知る必要がある理由です
これらの問題について詳しく知りたい場合は資料に記載されているナレッジベースの記事を参照してください
ありがとうございました