PLECS Getting Started

190

Click here to load reader

description

PLECS_Getting_Started

Transcript of PLECS Getting Started

Page 1: PLECS Getting Started

Circuit Simulation at System Level

Getting Started

Plexim GmbH

Technoparkstrasse 1 8005 Zürich

Piece-wise Linear Electrical Circuit Simulation

Page 2: PLECS Getting Started

PLECS Getting Started

2002–2012 by Plexim GmbH

The software PLECS described in this manual is furnished under a license agreement. The

software may be used or copied only under the terms of the license agreement. No part of this

manual may be photocopied or reproduced in any form without prior written consent from

Plexim GmbH. PLECS has been developed under license of ETH Zurich. PLECS is a registered

trademark of Plexim GmbH. MATLAB and Simulink are registered trademarks of The MathWorks,

Inc. Other product or brand names are trademarks or registered trademarks of their respective

holders.

お問い合わせ

Piece-wiseiar Electrical Circuit Simulation

Page 3: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

1

PLECSをご利用になる前に

PLECS Blocksetのインストール(Version 3.3) PLECS Blocksetのインストールは非常に簡単です。インストールに管理者権限は必要ありません。

PLECSはMATLABおよびSimulinkがインストールされた環境で動作しますので、これらのソフト

ウェアがインストールされた環境が必要になります。

下記テーブルは現行PLECS Blocksetが対応するMATLABバージョンになります。また、ご利用に

なるプラットフォームで必要となる仕様も表記されています。

インストールパッケージはPlexim社Webからダウンロードして取得、もしくは

[email protected] までご連絡をお願いします。

必要動作環境およびインストールパッケージ プラットフォーム MATLABバージョン パッケージファイル

Windows 32-bit 6.5~7.13 plecs-blockset-3-3-x_win32.exe

Windows 64-bit 7.4~7.13 plecs-blockset-3-3-x_win64.exe

Mac Intel 32-bit 7.4~7.10 plecs-blockset-3-3-x_maci.tar.gz

Mac Intel 64-bit 7.9~7.13 plecs-blockset-3-3-x_maci64.tar.gz

Linux 32-bit 7.4~7.13 plecs-blockset-3-3-x_linux32.tar.gz

Linux 64-bit 7.4~7.13 plecs-blockset-3-3-x_linux64.tar.gz

M-ファイルによる自動インストール

PLECS Blocksetは インストーラM-ファイル(installplecs.m)による自動インストールが可能です。

このM-ファイル(installplecs.m)を実行するとMATLABは自動でプラットフォームを検知し、ご

利用環境に適した最新のPLECS BlocksetバージョンをWebからダウンロードし任意のフォルダ

にPLECS Blocksetをインストールした後、MATLABパスを設定します。このインストーラファイ

ルは新規インストールおよび、ソフトウェアアップデートでご利用可能です。

*注* インストール時、MATLABが外部ネットワークに接続します。セキュリティー環境によ

っては、ご利用の際に、ファイアウォールの設定等を調整する必要があります。

(MALTAB バージョン7.0.0 以降対応)

Page 4: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

2

日本語対応インストーラ(M-ファイル)での新規インストール手順

(OS:Microsoft Windows) 手順 1 日本語対応インストーラファイル「installplecs_j.m」(M-ファイル)を入手し、MATLAB

にてインストーラファイルを開き、コマンドラインにてカレントディレクトリをインストーラフ

ァイルの格納場所に変更しM-ファイルを実行します。または、MATLAB Editorにてインストー

ラファイルを開き「実行ボタン」をクリック、もしくは「F5キー」を押してインストーラを実

行します。

インストーラは起動時に、最新バージョンのPLECSをオンライン上で検索しますので、MATLAB

がネットワークに接続可能な環境でなければMATLABコマンドライン上にエラーメッセージが

出力され、インストールは強制終了し、インストーラを利用できません。

この場合、事前にWebサイトからパッケージファイルをローカルディスクにダウンロードし、イ

ンストーラファイルと同じ場所(フォルダ)に格納して、インストールを実行して下さい。

手順 2 インストーラを実行すると、ご利用環境に適した最新パッケージファイルを自動でダウ

ンロードして、インストールを開始します。パッケージファイルダウンロード完了後に下記画像

のインストーラが起動しますので、指示に沿って、PLECS Blocksetをインストールして下さい(パ

ッケージのダウンロードおよび展開には数分かかります)。

ログインユーザー以外にもPLECSをインストールする場合は、管理者権限でインストーラを実行

する必要があります。

Page 5: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

3

また、デフォルト設定以外のインストールフォルダを指定することも可能ですが、ウイルスソフ

トまたはファイアウォールの設定によっては、インストールフォルダを任意のフォルダに指定す

ることができない場合があります。(例:C:¥Program Files)

ここまでの設定に問題がなければ、下記画像のInstallボタンをクリックして、インストールを実

行して下さい。

続いて、MATLABパス設定が実行されますので、インストーラの指示に沿って設定を続けて下

さい。

ログインユーザー名が

表示されます Windows7であれば、デフォルト設定で、

"C:\Users\ユーザー名\Documents\Plexim\PLECS Blockset 3.2 (64 bit)"

にインストールされます。

Page 6: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

4

ライセンスファイルを所持している場合は、使用するファイル指定し、さらにPLECS Blockset

を使用するバージョンのMATLABを選択して下さい。

自動でMATLABが起動し、パス設定が終了するとインストールが完了します。

手順 3 インストールが成功した場合は、以下のメッセージがMATLABコマンドライン上に出

力され、インストールは終了します。

MATLAB コマンドライン出力メッセージ

終了しました。

PLECSバージョン「3.3.x」のインストールは成功しました。

コマンドラインで「plecslib」と入力してPLECSを起動して下さい。

既に、ライセンスファイル

(license.dat)を所持して

いる場合は、こちらからフ

ァイルをコピーして下さい

複数の MATLABバージョンがインストールされ

ている場合は PLECS Blockset を使用する

MATLABバージョンを選択して下さい

Page 7: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

5

日本語対応インストーラ(M-ファイル)でのソフトウェア更新手順

(OS:Microsoft Windows) 手順 1 日本語対応インストーラファイル「installplecs_j.m」(M-ファイル)を入手し、MATLAB

にてインストーラファイルを開き、コマンドラインにてカレントディレクトリをインストーラフ

ァイルの格納場所に変更しM-ファイルを実行します。または、MATLAB Editorにてインストー

ラファイルを開き「実行ボタン」をクリック、もしくは「F5キー」を押してインストーラを実

行します。

インストーラは起動時に、最新バージョンのPLECS Blocksetをオンライン上で検索しますので、

MATLABがネットワークに接続可能な環境でなければMATLABコマンドライン上にエラーメッ

セージが出力され、インストールは強制終了し、インストーラを利用できません。

この場合、事前にWebサイトからパッケージファイルをローカルディスクにダウンロードし、イ

ンストーラファイルと同じ場所(フォルダ)に格納して、インストールを実行して下さい。

手順 2 インストーラを起動すると、既にインストールしてあるPLECS Blocksetの上書きを確認

するダイアログボックスが表示されます。

手順 3 ここで「はい」ボタンを押すと自動的にソフトウェアの更新が実行されます。全ての

PLECSモジュールは、新しいバージョンに上書きされますので、既存のモジュールを保存したい

場合は、MATLABの「パス設定」よりPLECS Blocksetに関連するパスの設定を削除した後に、既

存モジュールがインストールしてあるフォルダとは異なるフォルダを選択して、インストールを

実行して下さい。

Page 8: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

6

Microsoft Windowsでの手動インストール手順

手順 1 インストールパッケージは実行ファイル(例:plecs-blockset-3-3-x_win64.exe)です。フ

ァイルをダブルクリックすると、下記画像のインストーラが起動しますので、指示に沿って、

PLECS Blocksetをインストールして下さい。

ログインユーザー以外にもPLECSをインストールする場合は、管理者権限でインストーラを実行

する必要があります。また、デフォルト設定以外のインストールフォルダを指定することも可能

ですが、ウイルスソフトまたはファイアウォールの設定によっては、インストールフォルダを任

意のフォルダに指定することができない場合があります。(例:C:¥Program Files)

ここまでの設定に問題がなければ、下記画像のInstallボタンをクリックして、インストールを実

行して下さい。

ログインユーザー名が

表示されます Windows7であれば、デフォルト設定で、

"C:\Users\ユーザー名\Documents\Plexim\PLECS Blockset 3.2 (64 bit)"

にインストールされます。

Page 9: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

7

続いて、MATLABパス設定が実行されますので、インストーラの指示に沿って設定を続けて下

さい。

ライセンスファイルを所持している場合は、使用するファイル指定し、さらにPLECS Blockset

を使用するバージョンのMATLABを選択して下さい。

自動でMATLABが起動し、パス設定が終了するとインストールが完了します。

既に、ライセンスファイル

(license.dat)を所持して

いる場合は、こちらからフ

ァイルをコピーして下さい

複数の MATLABバージョンがインストールされ

ている場合は PLECS Blockset を使用する

MATLABバージョンを選択して下さい

Page 10: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

8

手順 2 製品版ライセンス(正規ライセンスおよびトライアルライセンス)をご依頼頂くと、開

発元よりライセンスファイルが発行されます(license.dat)。手順 1 のインストール中に、ライ

センスファイルをコピーしなかった場合は、ライセンスファイルを「plecs.m」が格納されてい

るフォルダに格納して下さい。手動で機能限定ライセンス(PLECS Viewer)をご利用頂くには、

PLECS Blocksetインストールフォルダ内の、「private」フォルダに格納されている

「viewerlicense.dat」をコピーし、ファイル名を「license.dat」へ変更し、「plecs.m」が格納さ

れているフォルダに格納して下さい。

*注* 使用するライセンスファイル名は、必ず「license.dat」に書き直して格納して下さい。

手順 3 手順 1 で、MATLABパス設定に「エラーが発生した場合」は、手動でMATLABパスを

設定して下さい。手順 1 にて作成した「PLECS Blockset」フォルダを、

MATLABファイルメニュー → パス設定 → フォルダ追加 にて指定します。

「demos」フォルダも、「サブフォルダも追加」にて指定して下さい。

MATLABの操作方法詳細は、Mathworks社サイトをご確認下さい。

手順 4 古いバージョンのPLECSが既にインストールされている場合、パスのリフレッシュが必

要になります。MATLABコマンドラインにて下記コマンドを入力して下さい。

plecsclear rehash toolboxcache

ライセンスファイル指定、またはMATLABパスを変更する場合、インストールフォルダの

「bin¥win64(またはwin32)」フォルダ内の「plecs.exe」を起動し、インストールアシスタン

トを使用することが可能です。

Page 11: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

9

Mac OS X / Linuxでの手動インストール手順

手順 1 インストールパッケージはtar.gzファイル(例:plecs-blockset-3-3-x_maci.tar.gz)です。コマン

ドラインにて解凍して下さい。下記コマンドを入力するとtarファイルが生成されます。

tar -xzf ファイル名.tar.gz

(例:tar -xvf plecs-blockset-3-3-x_maci.tar.gz)

手順 2 製品版ライセンス(正規ライセンスおよびトライアルライセンス)をご依頼頂くと、開

発元よりライセンスファイルが発行されます(license.dat)。送付されたライセンスファイルを 手

順 1 にて作成した最上位ディレクトリ内に格納して下さい。

*注* 使用するライセンスファイル名は、必ず「license.dat」に書き直して格納して下さい。

手順 3 MATLABにて「パス設定」をおこないます。手順 1 にて作成したディレクトリを、

MATLABファイルメニュー → パス設定 → フォルダ追加 にて指定します。

「demos」ディレクトリも、同手順で、「サブフォルダも追加」にて指定して下さい。

「パス設定」はM-ファイルを直接編集することでも変更可能です。MATLABルートディレクト

リ内の「pathdef.m」ファイル(パス:matlabroot/toolbox/local/)に必要なパスを追加して下さい

(要管理者権限)。管理者権限がない場合は、「startup.m」ファイルにADDPATHコマンドを用

いることによりパスを設定可能です(「startup.m」が無い場合は、ホームディレクトリ内のmatlab

ディレクトリに作成して下さい)。

addpath(’plecs_directory’); addpath(’plecs_directory/demos’);

例:

addpath / home / user / plecs_33 addpath / home / user / plecs_33 / demos

手順 4 古いバージョンのPLECSが既にインストールされている場合、パスのリフレッシュが必

要になります。MATLABコマンドラインにて下記コマンドを入力して下さい。

plecsclear rehash toolboxcache

Page 12: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

10

USBドングル・ライセンスのインストール手順(Microsoft Windows)

手順 1 PLECSはUSBドングル・ライセンスマネージャとして「FLEXId」を使用します。USB

ドングル・ライセンスをご利用になる場合は、FLEXIdドライバを入手する必要があります。

[email protected] までご連絡をお願いします。)入手したFLEXIdインストーラ

(FLEXId_Dongle_Driver_Installer.exe)をご利用になるPCで実行し、デバイス・ドライバをイン

ストールして下さい。

手順 2 PLECSをご利用になる予定の全てのPCにPLECSおよび、FLEXIdドライバをインストー

ルして下さい。PLECSのインストール手順は「M-ファイルによる自動インストールおよびMicrosoft

Windowsでの手動インストール手順」をご参照下さい。

*注* USBドングル・ライセンスは、USBドングル1つに対し、1ユーザーがPLECSを使用可

能になりますので、複数台PC(ユーザー)でのPLECSの同時利用はできません。複数PC(ユ

ーザー)でのPLECSの同時利用には、別途ライセンスを追加導入して頂く必要があります。

Floating・ライセンスのインストール手順(Microsoft Windows)

手順 1 PLECSはネットワーク・ライセンス・マネージャとして「FLEXnet」を使用します。Floating

(ネットワーク)・ライセンスをご利用になる場合は、FLEXnetモジュールを入手する必要があ

ります。( [email protected] までご連絡をお願いします。)入手したFLEXnetモジュール

(flexnet_11_9_win64.zip)をサーバー機で解凍し、任意の場所に格納して下さい。(例:C:¥Program

Files¥flexnet)。

手順 2 解凍したフォルダ内の「lmtools.exe」をダブルクリックして起動して下さい。

手順 3 起動したLMTOOLSの画面から「System Setting」タブを選択して下さい。このタブで

は、ネットワーク・ライセンス発行に必要な、ご利用サーバーマシンの識別情報がリストされま

す。画面に表示される「Save HOSTID Info to a File」ボタンをクリックし、マシン情報をASCII

データ(例:HOSTID.txt)で出力し、こちらのファイルを [email protected] まで送付して下

さい。

*注* サーバーマシンのHost-ID情報は必ずご利用予定のLAN内ネットワークに接続した状態

で取得して下さい。ネットワーク・ライセンスはIPアドレス、MACアドレスの厳密な認識によ

り稼動しますので、一度Host-IDを取得したサーバーマシンのネットワークカードは絶対に交換

しないで下さい。ライセンスが認識できなくなります。

手順 4 サーバーマシン情報を送付頂いた後、開発元よりライセンスファイル(plexim.lic)が発

行されます。入手したライセンスファイルを、他のFLEXnetファイルと同様に、「lmtools.exe」

と同じフォルダに格納して下さい。

手順 5 LMTOOLSを起動し、「Servive/License File」タブより、「Configuration using Services」

を選択して下さい。

Page 13: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

11

手順 6 「Config Services」タブより、「Service Name」を選択し、任意の名前(例:Plexim License

Manager)を入力して下さい。次に「Path to the lmgrd.exe file」で「Browse」ボタンをクリック

し、「lmgrd.exe」までのパス(例:C:¥Program Files ¥flexnet¥ lmgrd.exe)を指定します。

同様に、「Path to the license file」を指定(例:C:¥Program Files ¥flexnet¥ plexim.lic)します。

オプション指定としてサーバー稼動状況のログを保存することが可能ですので、同様にログファ

イルを指定して下さい。ここまでの設定が終了した時点で、「Save Service」ボタンをクリック

して設定を保存して下さい。

手順 7 「Start/Stop/Reread」タブより「Start Server」ボタンをクリックし、サーバーを起動し

て下さい。

手順 8 「Server Status」タブより、サーバーの稼動状況を確認して下さい。「Individual Daemon」

欄に「plexim」と入力し、「Perform Status Enquiry」ボタンをクリックして下さい。LMTOOLS

のGUI上に下記の様な、サーバー稼動状況が表示されます。

License server status: ***** @ *** . *** . *** . ***

License file(s) on *** . *** . *** . *** : C:¥Program Files ¥flexnet¥ plexim.lic:

*** . *** . *** . *** : license server UP v11.4

Vendor daemon status (on coulomb):

plexim: UP v11.4

Feature usage info:

Users of plecsedit: (Total of 1 license issued; Total of 0 licenses in use)

手順 9 サーバーの稼動状況に問題が無ければ、再度「Config Services」タブを開き、「Use

Services」、および「Start Server at Power Up」チェックボックスをクリックして下さい。

手順 10 サーバーマシンでライセンスマネージャーの稼動が確認できたら、クライアントマシ

ンのPLECSフォルダにテキスト文書で、下記内容の「license.dat」を作成する必要があります。

SERVER hostname(ホストネーム:サーバー機の名前) ANY

USE_SERVER

例:ライセンス発行時に登録したサーバー機のホストネーム=plecs

SERVER plecs ANY USE_SERVER

これによりクライアントマシンから、PLECSが使用可能になります。

*注* ネットワーク・ライセンスは、導入頂いたライセンス本数まで同時利用可能です。また、

セキュリティー環境によっては、クライアントマシンから、サーバーマシンを認識できない状

況があります。この場合、ファイアウォールの設定等を調整する必要があります。

Page 14: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

12

異なるバージョンのインストール

1台のコンピュータに、複数のバージョンの異なるPLECSをインストールする場合は、MATLAB

にて使用するバージョンのフォルダパスを1つだけ指定する必要があります。

例:

× C:¥Program Files ¥plecs_33

C:¥Program Files ¥plecs_30(使用するバージョン) → 「パス設定」により指定

× C:¥Program Files ¥plecs_22

フォルダパスを明示しないでPLECSを使用した場合、データが損失する恐れがあります。

MATLABのコマンドラインで「plecsclear」と入力し、現在指定されているフォルダパスを消去

し、フォルダパスを指定した後に、MATLABを再起動して下さい。

PLECS Blocksetのアンインストール

PLECS Blockset のアンインストールはインストール同様、非常に簡単です。

手順 1 MATLABコマンドラインで下記コマンドを入力し、PLECSがインストールされた場所

を確認して下さい。

which plecsedit

手順 2 MATLABの「パス設定」から登録したフォルダパスを全て削除して下さい。コマンドラ

インからディレクトリパスを登録した場合、関連ファイル(pathdef.mもしくはstartup.m)から

PLECSのパスを記述した箇所を削除して下さい

手順 3 MATLABを終了して下さい。

手順 4 Windowsの場合は、Windowsコントロールパネル(Windows7:プログラムと機能)か

らPLECS Blocksetを削除して下さい。MacOSまたはLinuxの場合は、インストールしたPLECSデ

ィレクトリを削除して下さい。

Page 15: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

13

PLECS Standaloneのインストール(Version 3.3)

PLECS Standaloneのインストールは非常に簡単です。インストールに管理者権限は必要ありませ

ん。下記テーブルは現行PLECS Standaloneが対応するプラットフォーム(OS)になります。イン

ストールパッケージはPlexim社Webからダウンロードして取得、もしくは [email protected]

までご連絡をお願いします。

必要動作環境およびインストールパッケージ プラットフォーム パッケージファイル

Windows 32-bit plecs-standalone-3-3-x_w32.exe

Windows 64-bit plecs-standalone-3-3-x_w32.exe

Mac Intel plecs-standalone-3-3-x_maci64.dmg

Linux 32-bit plecs-standalone-3-3-x_linux32.tar.gz

Linux 64-bit plecs-standalone-3-3-x_linux64.tar.gz

Microsoft Windowsでのインストール手順

手順 1 インストールパッケージはEXEファイル(例:plecs-standalone-3-3-x_w64.exe)ですので、

ファイルをダブルクリックすると、下記画像のインストーラが起動しますので、指示に沿って、

PLECS Standaloneをインストールして下さい。

他のログインユーザーにPLECS Standaloneをインストールする場合は、PCの管理者権限が必要に

なります。

ログインユーザー名が

表示されます Windows7であれば、デフォルト設定で、

"C:\Users\ユーザー名\Documents\Plexim\PLECS Blockset 3.2 (64 bit)"

にインストールされます。

Page 16: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

14

ここまでの設定に問題がなければ、下記画像のInstallボタンをクリックして、インストールを実

行して下さい。

ライセンスファイルを所持している場合は、使用するライセンスファイルをPLECS Standaloneの

インストールフォルダ内に格納して下さい。

手順 2 製品版ライセンス(正規ライセンスおよびトライアルライセンス)をご依頼頂くと、開

発元よりライセンスファイルが発行されます(license.dat)。送付されたライセンスファイルを 手

順 1 にて作成した「plecs.exe」が存在するフォルダ内に格納して下さい。

Page 17: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

15

Mac OS X でのインストール手順

手順 1 インストールパッケージはdmgファイル(例:plecs-standalone-3-3-x_maci64.dmg)です。

取得したディスクイメージを、ダブルクリックして下さい。

手順 2 アプリケーションフォルダ内に「PLECS」をコピーして下さい。

手順 3 初めてPLECSを起動する際に、ソフトウェアがライセンスファイル(license.dat)のイン

ストールを確認しますので、インストールフォルダにライセンスファイルをコピーして下さい。

Linuxでのインストール手順

手順 1 インストールパッケージはtar.gzファイル(例:plecs-standalone-3-3-x_maci.tar.gz)です。

任意の場所でコマンドラインにて解凍して下さい。下記コマンドを入力すると「plecs」ディレ

クトリが生成されます。こちらを任意の場所に格納して下さい。ディレクトリ名を任意の名前に

変更することも可能です(例:/ home / user / plecs_33)。

tar xzf ファイル名.tar.gz

(例:tar xf plecs-blockset-3-3-x_maci.tar)

手順 2 製品版ライセンス(正規ライセンスおよびトライアルライセンス)をご依頼頂くと、開

発元よりライセンスファイルが発行されます(license.dat)。送付されたライセンスファイルを 手

順 1 にて作成した最上位ディレクトリ内に格納して下さい。

ライセンス種類

PLECS は商用、学術用で製品版ライセンスシステムが異なります。詳細はお問い合わせ下さい。

製品版ライセンス 正規ライセンス(有償)/トライアルライセンス(無償)

機能限定ライセンス(無償)PLECS Viewer(Blocksetのみ)〔回路図の確認、計算実行のみ可能〕

PLECS Blocksetトライアルライセンスは、PLECS Viewer用ファイルのエクスポートができません。

Page 18: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

16

What’s New in Version 3.3

PLECS3.3 に追加された、新機能および機能拡張を下記リストに記述します。

PLECS Scopeの表示特性を変更することが可能になりました。

PLECSプローブのコンポーネント選択手法が変更されました。

PLECS Scopeで複数出力の分離表示が可能になりました。

PLECS Scopeのトレース機能に保存・読込み機能が実装されました。詳細は「PLECS Scope」

の「トレース」の項を参照して下さい。

PLECS Standaloneでも、「状態空間マトリクス」へのアクセスが可能になりました。

磁気ドメインでインダクタ・変圧器等を設計する、磁気回路要素のライブラリが実装され

ました。

Mac OS X用PLECS Standaloneは、64ビットアプリケーションになったため、旧バージョン

(32ビット)で作成したDLLブロック用ファイルは64ビット環境用に再コンパイルする必

要があります。

PLECS 3.3に追加された新しいコンポーネント:

「移動平均」、「周期平均」、「周期インパルス平均」および磁気回路ライブラリ

Page 19: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

17

PLECSの動作原理

PLECSは、動的システムの「モデリング」、および「シミュレーション」をおこなうためのソフ

トウェアパッケージです。

どのようなソフトウェアパッケージを使用する際も、その動作原理を理解することは非常に重要

ですが、PLECSの動作原理を解説する前に、動的システムの「モデリング」および「シミュレー

ション」という2つの用語を説明します。

ここで用いられる「モデリング」とは、実世界に発生する現象を、数学によって定義される系(シ

ステム)として仮定し、その一部分を抜き出し、「具体的な数式(数理モデル)」で記述する工

程を指します。

「モデリング」では、状況に応じて、可能な限り単純化された数学モデルが適用される場合があ

ります。PLECSは、「方程式(C言語定義)、ブロック線図、物理モデル」といった3つの手法

でシステムの数学モデルを取扱います。これらの手法は、同一のモデリング環境で使用すること

が可能です。

次に、「シミュレーション」とは、上記モデリングによって定義されたシステムの数学モデルに、

仮想的に実世界の現象と同じ条件を与え、数値演算等を用いて、検証・評価(シミュレート)を

おこない、実システムの挙動を予測する工程を指します。

PLECSにおける「シミュレーション」を詳細に解説すると、モデルの状態および出力が、その時

系列(非定常)よって、常微分方程式(ODE)ソルバを用いて算出されることを指します。

動的システムのモデリング

通常、システムは以下に示す、ブラックボックスとして考えられます。

システムは、内部で、そのエネルギーを変換するのではなく、信号「u」が入力された際に、信

号「y」を出力する、といった情報を変換します。

システムは、その内部に、過去のシステムの状態を記録した情報を状態変数として保存します。

このような状態変数は、微分方程式によって管理される連続状態であるか、もしくは、定められ

た瞬間に状態変化する離散状態となります。連続状態としては、コイル(インダクタ)のフラッ

クスもしくは電流が挙げられます。離散状態としては、フリップフロップが挙げられます。

Page 20: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

18

方程式によるシステムの記述

システムを記述する手法の1つとして、直接、数式によって定義する場合が考えられます。典型

的な、数式によるシステムの記述法を下記に示します。

出力関数は、時間(t)におけるシステムの入力、およびその内部状態といった、システムの

出力について記述される。

システムに連続状態が含まれる場合は、連続状態は時間(t)に関する導関数として記述され

る。

システムに離散状態が含まれる場合は、更新関数によって、時間(t)における離散状態が、

いつ、どうやって状態が変化するのかが記述される。

上記は下記式によって記述されます。

これらの記述は、プログラミング言語Cによって定義されます。

ブロック線図によるシステムの記述

制御工学分野では、グラフィカルなモデリング手法として、以下に示すローパスフィルタのよう

なブロック線図が一般的に使用されます。

上記3つのブロックモデルは、それぞれがシステム方程式によって定義された動的システムです。

このブロックモデルは、信号の伝わる方向を示す直線によって接続され、より大きなシステムを

構築します。

ブロック線図上で、ブロックモデルが接続される順番は、評価する方程式の順番を示します。

物理モデルによるシステムの記述

ブロック線図は、ブロックモデルへの入出力が自明な制御モデルを記述するのに、非常に便利な

手法ですが、物理モデルの場合は、このような区分が明確ではないため、ブロック線図のような

記述が不可能です。

),,,( dcoutput xxutfy

),,,( dcderivativec xxutfx

),,,( dcupdate

next

d xxutfx

Page 21: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

19

例えば、電気回路要素である抵抗器は、オームの法則に従って、電流/電圧値が決まりますが、

抵抗器の電流は、電圧が与えられることによって流れるのでしょうか。また、その電圧は、電流

が流れることによって、生じるのでしょうか。抵抗器が直列にコイルへ接続される、もしくは抵

抗器が並列にコンデンサに接続される場合を考えると、上記それぞれの質問への回答は、状況に

よって変化することがわかります。これは、抵抗器を単一のブロックモデルでモデリングするこ

とが不可能である事を示します。

従って、信号の伝わる方向を示す直線によって接続されるブロック線図を、物理システムのモデ

リングへ適用することは、非常に難しいと言えます。言い換えれば、物理システムのモデリング

では、各ブロックの計算順序に依存せず、それぞれのブロックが接続される電気回路図のような

記述が、最も適していると考えられます。

PLECS は、電気と熱の物理領域で、等価回路を用いて物理モデルを記述します。

動的システムのシミュレーション

PLECS のシミュレーションは、「初期化」および「実行」の 2 段階に分けて実施されます。

モデルの初期化(物理モデルの定式化)

PLECSは始めに、キルヒホッフの法則(Kirchhoff’s current and voltage laws)に従って、システム

の物理モデル(電気、熱)を定式化します。物理モデルが線形/理想スイッチモデルのみで構成

されている場合、物理モデルは、下記に示す、区分的線形状態空間方程式(piecewise linear

state-space equation)の集合として記述されます。

添え字σは、スイッチング要素の全ての状態変化が、新しい状態空間マトリックスを導くことを

意味します。

完全な物理モデルは、単一かつ最小なサブシステムによって表現されます。物理サブシステム、

ブロック線図、ODEソルバの相互作用を示した概念図が以下になります。

物理サブシステムには、回路要素(例:制御電源、スイッチング素子)用の制御信号が入力され、

各回路要素の物理的な測定値を出力します。シミュレーションが実行される間、物理的状態変数

の導関数が算出され、状態変数の瞬時値を逐次算出するソルバに渡されます。

uBxAx

uDxCy

Page 22: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

20

スイッチ・マネージャは、ゲート信号と内部の物理計測値をモニターし、スイッチング素子の動

作を制御します。スイッチング動作が必要な場合は、新しい方程式の組み合わせを算出します。

また、スイッチ・マネージャは、スイッチング動作を的確に制御するために「ゼロクロッシング

信号」を補助信号として、ソルバに出力します。

モデルの初期化(状態空間の離散化)

離散状態空間が選択された場合、PLECSは回路モデルを固定タイムステップによる離散状態空間

モデルへ変換します。ここで連続空間状態方程式は双線形変換(タスティン法:Tustin’s Method)

によって離散化されます。これにより、状態変数の積分値は単純な更新則によって置換されます。

ここで、Δt は離散タイムステップを表す。

整流器となるダイオードやサイリスタ等のパワエレ・デバイスのスイッチングは、一般的に離散

回路モデルのタイムステップ(時間刻み)と一致しませんが、PLECS に実装されているスイッ

チ・マネージャは、上記のようなスイッチの状態をサンプリングできない状況であっても、外挿

によって、状態変数が常にスイッチの開閉と一致するようなアルゴリズムを実装しています。

モデルの初期化(ブロックモデルのソート)

物理モデルが構築された後に、PLECSはブロック線図を計算する順序を確定します。上述したよ

うに、物理モデルはブロック線図上では、単一の小さなサブシステムとして取り扱われます。

各ブロックモデルの実行順序は、以下の計算アルゴリズムによって指定されます。

ブロックモデルの出力関数が、現在の時間における、1つ以上の入力信号に依存する場合は、始

めに、これらの入力信号を出力するブロックモデルの出力関数を評価します。

モデルの初期化(直接フィードスルー)

ブロックモデルへの入力特性として、現在の時間における、出力関数を算出する必要がある場合、

ブロックモデルの入力は「直接フィードスルー(Direct feedthrough)」となります。例えば、下

記式によって定義されるように、線形ゲイン「k」は、出力「u」の関数となるため、直接フィ

ードスルーとなります。これ対し、出力関数の積分値は、現在の入力に対する積分値を出力しま

す。従って積分器入力には、直接フィードスルーが設定されません。

Bt

At

B

At

At

A

uuBxAx

d

d

nndndn

221

21

21

)(

1

1

11

uky

cxy

Page 23: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

21

モデルの初期化(代数ループ)

代数ループは、ブロックモデルのグループが循環参照に接続され、その参照出力が、次のブロッ

クの直接フィードスルーに接続される状態を指します。

そのようなグループの場合、未知の変数(前のブロックの出力)を含んでいるため出力関数を算

出できません。従って、それらのブロックモデルの出力関数は逐次算出される必要があります。

PLECSは代数ループを含むブロック線図をシミュレートすることができません。

モデルの実行

下図は実際のシミュレーションのワークフローを示しています。

モデルの実行(メインループ:メジャー・タイムステップ)

シミュレーションのメインループ(メジャータイムステップ)は2つの動作に大別されます。

1. 全てのブロックモデルの出力関数はブロックのソート順に従って算出されます。シミュレ

ーションモデルに「Scope」が配置されている場合は、この段階で結果表示が更新されます。

2. 離散状態変数を持つブロックモデルの更新関数は、次のシミュレーションステップで用い

る離散状態値を算出します。

シミュレーションモデルやソルバの設定によっては、より細かい積分ステップ(マイナー・タイ

ムステップ)で、ソルバは動作します。

モデルの実行(積分ループ:マイナー・タイムステップ)

シミュレーションモデルに連続状態変数が含まれる場合、ソルバは、状態変数の瞬時値を算出す

るため数値積分を用いて、状態変数の時間微分(導関数)を求めます。

Page 24: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

22

「積分ループ(マイナー・タイムステップ)」は、ソルバのアルゴリズムに依存して、数値積分

の精度を高めるため、メインタイムステップに比べて小さい時間刻み(複数の計算段階)で実行

されます。ソルバは全ての計算段階の中間点で、導関数を算出します。ブロックモデルの導関数

は、その入力(その他のブロックモデルの出力)に依存することになるため、ソルバは、上記の

時間刻みで、全ての出力関数を算出します。

現在の時間刻みに対する数値積分を終了するため、ソルバは局所的な積分エラーを参照し、指定

された許容誤差(ソルバ精度)と、解を比較します。解の精度が低く、許容誤差に到達しない場

合は、ソルバは、さらに小さな時間刻みで、数値積分を再計算します。

モデルの実行(イベント検知ループ:マイナー・タイムステップ)

シミュレーションモデルに、モデルの挙動が瞬時に変化するような、不連続状態が含まれる場合、

ソルバはモデルの状態変化を算出する補助用のイベント関数を使用します。

イベント関数はブロックモデルに適用される関数であり、現在の時刻における、ブロックの入力、

および内部状態に依存する、「ゼロクロッシング関数」として内部的に定義されます。

例として、ダイオードを含む物理モデルを考えると、ダイオードの電流・電圧値に依存する、「fturn

on = vD 」と「fturn off = iD 」の2つのイベント関数が定義されます。これによって、ソルバは、ダ

イオードのターンオン/オフを検出することが可能になります。

一つ以上のイベント関数が、現在の時間刻み内で、信号を変化する場合、ソルバは、最初のゼロ

-クロッシングを見つけるため、二分探索法を実行します。

この検索法は異なる中間時間における、イベント関数の評価に用いられます。導関数のようなイ

ベント関数は、ブロックモデルの入力に依存し評価されるため、ソルバは最初に、全ての出力関

数を算出する必要があります。これらの、小さな時間刻みも、「マイナー・タイムステップ」と

呼ばれます。

最初のイベントを検出した場合、ソルバは、ゼロクロッシングの直前に、始めのメジャー・タイ

ムステップを実行し、続いて、ゼロクロッシングの直後に、次のメジャー・タイムステップを実

行します。

システムのサンプリング

PLECSは、異なるサンプリングタイムで動作する離散システムをモデリングします。

周期的または可変周期で動作するシステム、異なるサンプリングレートで動作するブロックモデ

ルを含むシステム、連続または不連続ブロックが混合されたシステムといったシステムがモデリ

ング可能です。

Page 25: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

23

サンプリング時間

サンプリング時間は各ブロックモデルで定義可能で、いくつかのブロックモデルは、デフォルト

で複数のサンプリング時間を指定可能です。

PLECSは以下のサンプル時間が取り扱い可能です:

連続(Continuous)

連続サンプル時間は、全てのメジャー・タイムステップおよびマイナー・タイムステップで更新

されるブロックモデルに適用されます。積分器(Integrator)、伝達関数(Transfer Function)と

いった、内部に連続した状態変数が定義される全てのブロックモデルが含まれます。

半連続(Semi-Continuous)

半連続サンプル時間は、全てのメジャー・タイムステップで更新されるブロックモデルに適用さ

れます(マイナー・タイムステップでは出力変更なし)。例として、常に前回のメジャー・タイ

ムステップ入力値を出力するメモリ(Memory)ブロック等が挙げられます。

離散-固定周期(Discrete-Periodic)

離散(固定周期)サンプル時間は、メジャー・タイムステップ内で、一定の時間刻みで更新する

ブロックモデルに適用されます。

離散-可変周期(Discrete-Variable)

離散(可変周期)サンプル時間は、メジャー・タイムステップ内で、ブロックによって定義され

た可変時間刻みで更新するブロックモデルに適用されます。通常、大半のブロックモデルのサン

プリング時間は自動的に定義されますが「離散ブロック」と「C言語入力ブロック」には、デフ

ォルトで、外挿的なサンプリング時間を指定可能なパラメータがあります。サンプリング時間は、

サンプル周期とオフセット時間によって定義される2要素ベクトルによって構成されます。オフ

セット時間が「0」の場合は、オフセット時間入力は省略されます。

下表はサンプリング時間の種類と、対応する入力パラメータ値を示しています。

各サンプリング時間のパラメータ値

種類 パラメータ入力値

連続

(Continuous)

[0, 0]

0

半連続

(Semi-Continuous)

[0, -1]

離散-固定周期

(Discrete-Periodic)

[Tp, To] Tp:サンプリング周期 Tp > 0

Tp To:オフセット時間 0 ≤ To < Tp

離散-可変周期

(Discrete-Variable)

[-2, 0]

-2

Page 26: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

24

PLECSの使用方法 1.1

PLECS BlocksetによるRLC回路の作成

(使用環境:PLECS Blockset Version 3.3 日本語 OS:Windows)

この例題では、単純なRLC回路を作成し、最も基本的なPLECSの操作方法を学習します。

例題:RLC回路図

コイル[10mH]および抵抗器[10Ω]を介して

印加されるDC電圧[10V]により充電されるコ

ンデンサ[100μF]の電圧値確認

最初に「PLECSライブラリ」を起動します。

MATLABコマンドラインで「plecselib」と入力すると「PLECSライブラリ」が起動します。

もしくは、MATLAB「スタート」メニュー → Simulink → PLECS → Block Library

から「PLECSライブラリ」起動して下さい。

PLECS ライブラリを起動すると右図のよ

うな GUI 画面が表示されます。PLECS ブ

ロックは黄色で表示されるため、MATLAB

デフォルトブロックとは簡単に区別でき

ます。PLECS ブロックは全て Simulink モ

デルファイル(*.mdl)上でのみ稼動します。

Simulink ブロックと PLECS ブロックの組

み合わせにより、制御システムと回路シス

テムのシミュレーションを実行します。

PLECS ブロックを必要に応じて、Simulink

モデルにドラッグ&ドロップすることに

よって回路図を作成していきます。

クリック!

MATLAB「スタート」メニュー

Page 27: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

25

「PLECSライブラリ」から「新規モデル」を作成し、PLECS回路を「ドラッグ&ドロップ」しま

す。Simulinkモデル上のPLECS回路ブロックを「ダブルクリック」で開き、回路図を作成・編集

します。

PLECS 回路ブロックは図のように黄色の背景色となっており、Simulink モデルとは完全に区別

されます。MATLAB/Simulinkで用いるブロックを PLECS回路ブロックで使用することはできませ

ん。PLECS 回路ブロック上で PLECS コンポーネント(素子モデル)をドラッグ&ドロップによ

り配置し、回路図を作成・編集します。

PLECSコンポーネント

(素子モデル)は「PLECS

Library(ライブラリ)」

の「Components(コン

ポーネント)」を「ダブ

ルクリック」で開き使用

します。

新規モデル作成

ドラッグ&ドロップ!

ダブルクリック!

ダブルクリック!

Page 28: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

26

「ライブラリ・ブラウザ」はツリー構造となっています。ここで、必要なコンポーネントブロッ

ク(素子モデル)をブロックツリーから選択し、回路ブロックウィンドウに「ドラッグ&ドロッ

プ」します。

この例題では「電気回路ブロック」の、

「受動素子」から「抵抗器(R1)、インダクタ(L1)、キャパシタ(C1)」、

「電源」から「DC電圧源(V_dc)」

「電圧・電流計」から「電圧計(Vm1)」

の回路要素ブロックを選択し、PLECS回路ブロックに「ドラッグ&ドロップ」します。

PLECS は MATLAB/Simulink のツールボックスですので、回路要素ブロックの操作は基本的に、

Simulink ブロックの操作と同様になります。

回路ブロック上の回路要素ブロックをコピーするには、コピーする回路要素ブロックを選択し

「Ctrl」キーを押しながら(もしくは右クリックで)ドラッグ&ドロップします。

回路要素ブロックの向きを変更する場合は、向きを変更したい回路要素ブロックを選択し、「Ctrl

+R」キーを押してコンポーネントを回転、「Ctrl+F」キーを押してコンポーネントを反転(左

/右)、「Ctrl+I」キーを押してコンポーネントを反転(上/下)します。

「コンポーネントの検索」ウインドウをクリックすると、検索機能がアクティブになります。

ここで、任意のコンポーネント名をキーボードで入力すると、入力された文字を逐次判別し、コ

ンポーネントを検索します(日本語/英語入力対応)。検索結果をクリアするには右端のクリア

ボタンを押してください。

クリック!

クリック!

ドラッグ&ドロップ!

Page 29: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

27

回路ブロック上のコンポーネントブロックの「向きを変更」し、右上図のように配置した後、各

コンポーネントブロックを「接続」します。

ブロック端部(白い円部分)にマウスカーソルを合わせるとマウスカーソルが十字型に変化しま

す。この状態でマウスボタンを押しながらドラッグすると、マウスの動きに合わせ接続線(点線)

が表示されます。この接続線を接続対象のブロック端部(白い円部分)に合わせると、マウスカ

ーソルが二重十字型に変化します。ここでマウスボタンを離す(ドロップ)と各ブロックが接続

されます。

回路図上の任意箇所を接続するには、マウスカーソルを接続箇所に合わせ「Ctrl」キーを押しな

がら(もしくは右クリックで)ドラッグ&ドロップします。

PLECSでは、既に接続されているコンポーネントブロックのポートに、重複して接続することはできません。

各コンポーネントブロックを「ダブルクリック」するとコンポーネントの「ダイアログボックス」

が表示されます。

ここにRLC回路の各素子特性を入力します。各入力値は、

DC電圧=10 V(ボルト)、抵抗=10 Ω(オーム)、コイルインダクタンス=10 mH(ヘンリ

ー)、コンデンサ容量=100 μF(ファラド) です。

ドラッグ&ドロップ!

タイプ入力!

タイプ入力!

タイプ入力!

タイプ入力!

Page 30: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

28

入力された項目の数値は、ダイアログボックス右端のチェックボックスをクリックすると、回路

図上に表示されます。表示された数値をダブルクリックすると回路図上から直接、編集可能にな

ります。各素子名も任意の名称に変更する事が可能です。(本例題では初期値を設定していない

ので、各素子の初期値は表示していません。)

PLECS は Simulink と同様に、内部に入力数値の単位を設定していません。ユーザーが任意の単

位に従い数値を設定することが可能です。(本例題では SI 単位を基準に入力値を設定していま

す。)

RLC回路は完成しましたが、Simulinkへの出力信号が設定されていません。ここで回路図上に

Simulinkへの「出力ポート」を作成します。「システムブロック」から「出力信号ポート(Out1)」

のコンポーネントブロックを選択し、回路ブロックに「ドラッグ&ドロップ」します。「電圧計」

と「出力信号ポート」コンポーネントブロックを接続することによって電圧値をSimulinkへ出力

します。

各素子特性を入力したコンポーネントブロックの数値は右上図のように表示されます。

ダブルクリック!

クリック!

ドラッグ&ドロップ!

Page 31: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

29

PLECS回路ブロックに出力ポートが表示され、Simulink上でPLECSの出力信号が取扱い可能にな

ります。ここで、「PLECS Scope」ブロックを使用し、RLC回路のキャパシタ(コンデンサ)電

圧値を確認します。「PLECSライブラリ」から「PLECS Scope」ブロックを選択し、Simulink

モデル上に「ドラッグ&ドロップ」します。PLECS回路ブロックと「PLECS Scope」ブロックを

「接続」します。

PLECS で用いる信号は、入出力ポートを設定することによって、Simulink と接続することが可

能になります。

PLECSで作成したRLC回路のシミュレーション

を実行します。「シミュレーション時間」を「0.02」

に変更し、「シミュレーションの開始」ボタンを

クリックすると「PLECS Scope」上に、シミュ

レーション結果(キャパシタ電圧値)が出力され

ます。

PLECS は MATLAB の可変タイムステップ(Auto)

を利用して計算を実行します。これにより固定

タイムステップを利用した計算と比べて、計算

時間の短縮化、および計算精度の向上が可能に

なります。

つぎに、このRLC回路に電圧=10V、周波数=25Hz、デューティー比=50%の矩形波(パルス電

圧)を与え、「キャパシタ(コンデンサ)電圧値」および「インダクタ(コイル)電流値」を確

認します。入力用パルス信号はSimulinkブロックの「Pulse Generator」から与えられます。

クリック!

タイプ!

ドラッグ&ドロップ!

Page 32: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

30

RLC回路にパルス電圧入力ポートを追加します。「コンポーネント・ライブラリ・ブラウザ」の、

「システムブロック」から「入力信号ポート(In1)」のコンポーネントブロック、

「電源」から「可変電圧(V)」のコンポーネントブロックを選択し、

回路ブロックに「ドラッグ&ドロップ」します。

「DC電圧源(V_dc)」を削除し、「可変電圧(V)」と「入力信号ポート(In1)」コンポーネ

ントブロックを接続することによって、パルス電圧値をSimulinkからPLECS回路ブロックに入力

します。

「インダクタ(コイル)電流値」を確認するには「PLECS Probe」ブロックを利用します。「PLECS

ライブラリ」から「PLECS Probe」ブロックを選択し、Simulinkモデル上に「ドラッグ&ドロッ

プ」します。

ドラッグ&ドロップ!

ドラッグ&ドロップ!

Page 33: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

31

Simulinkモデル上の「PLECS Probe」ブロックを「ダブルクリック」すると、図のような「プロ

ーブエディタ・ウインドウ」が起動します。目的のコンポーネントブロックを「プローブエディ

タ・ウインドウ」に「ドラッグ&ドロップ」し、信号を出力します。

ここでは、PLECS回路上の「インダクタ」の「電流値」を出力します。

コンポーネント信号の「インダクタ 電流」にチェックマークを入れます。

PLECS Probe は PLECS 回路内に配置された各コンポーネント(素子モデル)から出力される信

号値を直接取り出し、外部(Simulink)へ出力します。出力ポートを別途設置する必要がないた

め、回路図上から目的とする素子の出力信号を効率良く取得できます。

出力信号は、ダイオードのオン/オフ、抵抗器の電圧(V)、モータのトルク(Nm)、損失によ

って発生する熱(温度:)といった異なる物理量を同時に選択することが可能です。1つの

PLECS プローブで異なる物理量からなる、複数信号を同時出力可能ですが、信号は多重化され

ます。従って、桁数の異なる物理量を表示するためには、複数の PLECS Probe を設置する、も

しくは Simulink 上で信号を分割する必要があります。

ダブルクリック!

ドラッグ&ドロップ!

Page 34: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

32

PLECS回路ブロックに表示された入力ポートに、Simulinkブロック「Pulse Generator」を接続

し、入力パルス信号を設定します。「Pulse Generator」の設定項目は、「大きさ:10」、

「周期(secs):0.04【25Hz】」、「パルス幅(周期の割合(%)):50(デフォルト)」 と

なります。

Simulinkブロック「Pulse Generator」の入力パルス電圧(指令値)と、PLECS回路ブロック「RLC

回路」から出力されるコンデンサ電圧を比較するため、Simulinkブロック「Mux」を用いて信号

を多重化します。

ここで、Simulinkブロック「Mux」から出力される信号と「PLECS Probe」ブロックから出力さ

れる信号を「PLECS Scope」ブロックに「接続」する必要がありますが、両ブロックから出力さ

れる信号を個別にプロットするため、事前に、「PLECS Scope」のファイルメニューから「PLECS

Scope パラメータ」を選択し、「プロット数:2」に変更します。

パルス電圧を与えたRLC回路のシミュレーションを実行します。「シミュレーション時間」を「0.1」

に変更し、「シミュレーションの開始」ボタンをクリックすると、「PLECS Scope」上にシミュ

レーション結果(入力パルス電圧値、コンデンサ電圧値、コイル電流値)が出力されます。

ここで、「PLECS Scope」の表示メニューより「データ」を選択すると、データテーブルに出力

信号名が表示されます。出力信号名は任意の名称に変更することが可能です。また各プロットに

は、それぞれ任意の表示タイトルを入力することも可能です。

クリック!

タイプ!

Page 35: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

33

PLECSの使用方法 1.2

PLECS BlocksetによるDC-DC降圧コンバータの作成

(使用環境:PLECS Blockset Version 3.3 日本語 OS:Windows)

この例題では、下図のような理想スイッチを用いたDC-DC降圧コンバータ回路を作成します。

PLECSはパワーエレクトロニクスの特徴であるスイッチングによる電力変換を、制御ロジックを

含めた、システムレベルでモデリングすることに主眼を置いた回路シミュレータです。

ここでは、外部(Simulink)から入力される制御ロジック(シンプルなヒステリシス制御)によ

って作動する、降圧コンバータ回路の設定方法を学習します。

例題:ヒステリシス制御 DC/DC降圧コンバータ

理想スイッチによるDC/DC降圧コンバータの電圧値確認

(コイル:25 mH、コンデンサ:220 μF、抵抗器:2 Ω)

最初に「PLECSライブラリ」を起動し、

「新規モデル」を作成します。

作成したモデルファイルに「PLECS回路」を

「ドラッグ&ドロップ」します。

「コンポーネント」を「ダブルクリック」で開き、必

要な素子モデルを「ライブラリ・ブラウザ」から選択

し、

「PLECS回路」に「ドラッグ&ドロップ」します。

Page 36: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

34

この例題では「ライブラリ・ブラウザ」の、

「受動素子」から「抵抗器(R1)、インダクタ(L1)、キャパシタ(C1)」、

「電源」から「可変電圧(V)」、

「電圧・電流計」から「電圧計(Vm1)、電流計(Am1)」、

「理想スイッチ」から「シングルスイッチ(S1)」、

「パワー半導体」から「ダイオード:理想モデル(D1)」、

「システムブロック」から「入力信号ポート(In1)、出力信号ポート(Out1)」、

の回路要素ブロックを選択し、PLECS回路ブロックに「ドラッグ&ドロップ」します。

この例題ではトランジスタを、単純なシングルスイッチとしてモデリングしています。このシン

グルスイッチと還流ダイオード(フリーホイールダイオード)および各受動素子によって、

DC/DC 降圧コンバータが構成されます。

理想スイッチに格納されている各理想スイッチモデルは、基本的に、オン抵抗=0、オフ抵抗=

無限という理想スイッチの概念に基づいてモデリングされており、スイッチのターン・オン/オ

フは瞬時に実行されるので、別途、数値計算を安定させる用途のスナバ回路等を設置する必要

はありません。

ただし、いくつかのパワー半導体スイッチモデルは、逆回復時間の入力、スイッチング時の電流

変化率(di/dt)等の非線形特性をモデリングする機能を実装していますので、必要に応じて、よ

り詳細な電流・電圧波形を出力することが可能です。

ドラッグ&ドロップ!

Page 37: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

35

PLECS回路ブロックに「ドラッグ&ドロップ」されたコンポーネントブロックを、右上図のよう

に「接続」します。

接続されたコンポーネントブロックを「ダブルクリック」し、各コンポーネントの

「ダイアログボックス」に降圧コンバータ回路の各回路要素特性を入力します。

各入力値は、

抵抗= 2 Ω(オーム)、コイルインダクタンス= 25 mH(ヘンリー)、

コンデンサ容量= 220 μF(ファラド) です。

PLECSで作成したDC/DC降圧コンバータ回路に、スイッチの制御信号をSimulinkから与えます。

Simulinkからのスイッチ制御信号は「システムブロック」の「入力信号ポート」ブロックを利用

することによって、PLECSへ入力されます。

PLECSのスイッチング素子は、スイッチ制御信号を「ゼロ=ターン・オフ / 非ゼロ=ターン・オ

ン」として取扱います。

ドラッグ&ドロップ!

Page 38: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

36

PLECS回路ブロックに表示された入出力ポートに、各Simulinkブロックを接続します。

≪採用されている制御ロジック≫

DC/DC降圧コンバータの負荷側電圧出力は、ヒステリシス制御器にフィードバックされ、電圧指

令値(6V)近傍で、±0.2Vの振幅で振動する電圧値を出力します。また、交流電源電圧は可変電

源として、シミュレーション開始後、0.05秒に12Vから8Vへ降下します。

≪ゲート信号入力用 Simulinkブロック≫

「Constant」設定項目=「定数:6」(電圧指令値)

「Sum」設定項目=「符号のリスト:| + -」(+=指令値電圧、-=フィードバック信号:V)

「Relay」設定項目=「スイッチオン ポイント:0.2」

≪入力電源用 Simulinkブロック≫

「Constant」の設定項目=「定数:12」(入力電圧)

「Sum」設定項目=「符号のリスト:+ | -」(+=入力電圧、-=ステップ出力)

「Step」の設定項目=「ステップ時間:0.05」、「最終値:4」

PLECS回路ブロックの電圧計・電流計から出力される信号を同一座標で表示するため、Simulink

ブロック「Mux」を用いて信号を多重化し、「PLECS Scope」ブロックに「接続」します。

可変電圧により印加される降圧コンバータのシミュレーションを実行します。「シミュレーショ

ン時間」を「0.1」に変更し、「シミュレーションの開始」ボタンをクリックすると「PLECS Scope」

上にシミュレーション結果(電流値、電圧値)が表示されます。

クリック!

タイプ!

Page 39: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

37

PLECSの使用方法 2.1

PLECS StandaloneによるRLC回路の作成

(使用環境:PLECS Standalone Version 3.2 日本語 OS:Windows)

この例題では、前節で作成したRLC回路をPLECS Standaloneを用いてモデリングします。

例題:RLC回路図

コイル[10mH]および抵抗器[10Ω]を介して

印加されるDC電圧[10V]により充電されるコ

ンデンサ[100μF]の電圧値確認

最初に「ライブラリ・ブラウザ」を起動します。

PLECS Standaloneインストールフォルダに格納されている「plecs.exe」を、マウスで選択し、

ダブルクリックすると、スプラッシュウィンドウが表示され「ライブラリ・ブラウザ」が起動し

ます。

PLECSの「ライブラリ・ブラウザ」は、ツリー

構造となっています。ここで、必要なコンポー

ネントブロック(素子モデル)をツリーメニュ

ーから選択し、回路ブロックウィンドウに「ド

ラッグ&ドロップ」し、パワエレシステムモデ

ルを構築します。

「ファイルメニュー」の「新規作成(Ctrl+N)」

を選択し、PLECSモデルファイルを新規作成し

ます。

「コンポーネントの検索」ウィンドウをクリックすると、検索機能がアクティブになります。

ここで、任意のコンポーネント名をキーボードで入力すると、入力された文字を逐次判別し、コ

ンポーネントを検索します。検索ワードに対応したコンポーネントのみが、ライブラリ・ブラウ

ザに表示されます。(検索機能は半角英数および日本語文字の入力に対応しています)

例)

半角英数字で、「d」または「ダ」を入力すると、ブロック名に「d」、「ダ」を含む全てのブロ

ックを、「diode」または「ダイオード」であれば、「diode」、「ダイオード」を含む全てのブ

ロックを表示します。(検索結果をクリアするには右端のクリアボタンを押してください)

Page 40: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

38

「ライブラリ・ブラウザ」に表示されるツリーメニューをクリックして、目的のコンポーネント

を選択し、新規作成した PLECSファイル上に「ドラッグ&ドロップ」します。

この例題では「電気回路ブロック」の、

「受動素子」から「抵抗器(R1)、インダクタ(L1)、キャパシタ(C1)」、

「電源」から「DC電圧源(V_dc)」

「電圧・電流計」から「電圧計(Vm1)」

「システムブロック」から「PLECS スコープ(Scope)」、

の回路要素ブロックを選択し、PLECS回路ブロックに「ドラッグ&ドロップ」します。

回路ブロック上の回路要素ブロックをコピーするには、コピーする回路要素ブロックを選択し

「Ctrl」キーを押しながら(もしくは右クリックで)ドラッグ&ドロップします。

回路要素ブロックの向きを変更する場合は、向きを変更したい回路要素ブロックを選択し、「Ctrl

+R」キーを押してコンポーネントを回転、「Ctrl+F」キーを押してコンポーネントを反転(左

/右)、「Ctrl+I」キーを押してコンポーネントを反転(上/下)します。

各コンポーネントの名称を変更する場合は、名称表示部分をマウスで「ダブルクリック」し、キ

ーボード入力で任意の名称へ変更して下さい。

クリック!

ドラッグ&ドロップ!

クリック!

Page 41: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

39

回路ブロック上のコンポーネントブロックの「向きを変更」し、右下図のように配置した後、各

コンポーネントブロックを「接続」します。

ブロック端部(白い円部分)にマウスカーソルを合わせるとマウスカーソルが十字型に変化しま

す。この状態でマウスボタンを押しながらドラッグすると、マウスの動きに合わせ接続線(点線)

が表示されます。この接続線を接続対象のブロック端部(白い円部分)に合わせると、マウスカ

ーソルが二重十字型に変化します。ここでマウスボタンを離す(ドロップ)と各ブロックが接続

されます。

回路図上の任意箇所を接続するには、マウスカーソルを接続箇所に合わせ「Ctrl」キーを押しな

がら(もしくは右クリックで)ドラッグ&ドロップします。

PLECSでは、既に接続されているコンポーネントブロックのポートに、重複して接続することはできません。

コンポーネントブロックを「ダブルクリック」すると各コンポーネントの「ダイアログボックス」

が表示されます。

ここにRLC回路の各素子特性を入力します。各入力値は、

DC電圧=10 V(ボルト)、抵抗=10 Ω(オーム)、コイルインダクタンス=10 mH(ヘンリ

ー)、コンデンサ容量=100 μF(ファラド) です。

ドラッグ&ドロップ!

タイプ入力!

タイプ入力!

タイプ入力!

タイプ入力!

Page 42: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

40

各素子特性を入力したコンポーネントブロックの数値は右上図のように表示されます。

入力された項目の数値は、ダイアログボックス右端のチェックボックスをクリックすると、回路

図上に表示されます。表示された数値をダブルクリックすると回路図上から直接、編集可能にな

ります。各素子名も任意の名称に変更する事が可能です。(本例題では初期値を設定していない

ので、各素子の初期値は表示していません。)

PLECS は、内部に入力数値の単位を設定していません。ユーザーが任意の単位に従い数値を設

定することが可能です。(本例題では SI 単位を基準に入力値を設定しています。)

PLECSで作成したRLC回路のシミュレーションを実行します。

PLECSファイルの「シミュレーションメニュー」からシミュレーション・パラメータを起動

(Ctrl+E)し「シミュレーション時間:終了時間」を「0.02」に変更します。ソルバ設定等のそ

の他のパラメータはデフォルト値を使用して下さい。(本例題では、滑らかな出力波形を表示す

るため、最大時間刻み幅を「1e-4」に変更してします)

PLECSファイルの「シミュレーションメニュー」から「開始(Ctrl+T)」を選択すると「PLECS

Scope」上に、シミュレーション結果(キャパシタ電圧値)が出力されます。

PLECSは可変タイムステップ(Auto)を利用して計算を実行します。これにより固定タイムステ

ップを利用した計算と比べて、計算時間の短縮化が可能になります。

ダブルクリック!

Page 43: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

41

つぎに、このRLC回路に電圧=10V、周波数=25Hz、デューティー比=50%の矩形波(パルス電

圧)を与え、「キャパシタ(コンデンサ)電圧値」および「インダクタ(コイル)電流値」を確

認します。

電源を「可変電圧(V)」に変更し、RLC回路に「パルス発生器(Pulse Generator)」を追加

します。

「ライブラリ・ブラウザ」の、

「制御器ブロック」から「パルス発生器(Pulse Generator)」のコンポーネントブロック、

「電源」から「可変電圧(V)」のコンポーネントブロックを選択し、

回路ブロックに「ドラッグ&ドロップ」します。

「DC電圧源(V_dc)」を削除し、「可変電圧(V)」と「パルス発生器(Pulse Generator)」

を接続することによって、パルス電圧を回路に入力します。

ここで、「インダクタ(コイル)電流値」を確認するために「PLECS Probe」ブロックを利用し

ます。「システムブロック」から「PLECS プローブ(Probe)」ブロックを選択し、PLECSモデ

ル上に「ドラッグ&ドロップ」します。

ドラッグ&ドロップ!

ドラッグ&ドロップ!

Page 44: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

42

PLECS モデル上の「PLECS プローブ(Probe)」ブロックを「ダブルクリック」すると、図の

ような「プローブエディタ・ウインドウ」が起動します。

目的のコンポーネントブロックを「プローブエディタ・ウインドウ」に「ドラッグ&ドロップ」

し、信号を出力します。

ここでは、PLECS回路上の「インダクタ(L1)」の「電流値」を出力します。

コンポーネント信号の「インダクタ 電流」にチェックマークを入れます。

PLECS Probe は PLECS 回路内に配置された各コンポーネント(素子モデル)から出力される信

号値を、直接取り出し出力します。出力ポートを別途設置する必要がないため、回路図上から

目的とする素子の出力信号を効率良く取得できます。

出力信号は、ダイオードのオン/オフ、抵抗器の電圧(V)、モータのトルク(Nm)、損失によ

って発生する熱(温度:)といった異なる物理量を同時に選択することが可能です。1つの

PLECS プローブで異なる物理量からなる、複数信号を同時出力可能ですが、信号は多重化され

ます。従って、桁数の異なる物理量を表示するためには、複数の PLECS Probe を設置する、も

しくは、信号を分割する必要があります。

次に、RLC回路(主回路)の「サブシステム」を作成し、PLECS回路の表示を変更します。RLC

回路に含まれる、「電気回路要素」をマウスドラッグで選択し、「ファイルメニュー」の「編集」

から「サブシステムの作成(Cntl+G)」を選択します。または、選択された電気回路要素上で右

マウスボタンをクリックし、コンテキストメニューから、「サブシステムの作成(Cntl+G)」を

選択してください。作成されたサブシステム・ブロック名をRLCへ変更して下さい。

これにより、PLECS回路は、階層構造となり、入/出力信号ブロックが配置される最上位システム、

およびRLC回路で構成される主回路ブロックによって表示されます。

ダブルクリック!

ドラッグ&ドロップ!

Page 45: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

43

ここで、シミュレーションを実行するため、「パルス発生器(Pulse Generator)」ブロックの、

入力パルス信号を設定します。「パルス発生器(Pulse Generator)」の設定項目は、

「High-state 出力:10」、「周期(Hz):25Hz」、「デューティー比:50(デフォルト)」

となります。

「パルス発生器(Pulse Generator)」の入力パルス電圧(指令値)信号と、サブシステム・ブ

ロック「RLC回路」から出力されるキャパシタ電圧信号を比較するため、「システムブロック」

から「マルチプレクサ:Signal Multiplexer」をドラッグ&ドロップし、信号を多重化します。

ブロックから出力される信号を個別にプロットするため、事前に、「PLECS Scope」のファイル

メニューから「PLECS Scope パラメータ…」を選択し、「プロット数:2」に変更します。もし

くは、プロット・ウインドウ上で右マウスボタンをクリックしコンテキストメニューから「プロ

ットを上/下に挿入追加」を選択します。

パルス電圧を与えたRLC回路のシミュレーションを実行します。「シミュレーション時間:終了

時間」を「0.1」に変更し、「シミュレーションの開始」ボタンをクリックすると、「PLECS Scope」

上にシミュレーション結果(入力パルス電圧値、キャパシタ電圧値、インダクタ電流値)が出力

されます。

「PLECS Scope」の表示メニューより「データ」を選択すると、データテーブルに出力信号名が

表示されます。出力信号名は任意の名称に変更することが可能です。また各プロットには、それ

ぞれ任意の表示タイトルを入力することも可能です。

Page 46: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

44

PLECSの使用方法 2.2

PLECS StandaloneによるDC-DC降圧コンバータの作成

(使用環境:PLECS Blockset Version 3.3 日本語 OS:Windows)

この例題では、下図のような理想スイッチを用いたDC-DC降圧コンバータ回路を作成します。

PLECSはパワーエレクトロニクスの特徴であるスイッチングによる電力変換を、制御ロジックを

含めた、システムレベルでモデリングすることに主眼を置いた回路シミュレータです。

ここでは、PLECSで作成した制御ロジック(シンプルなヒステリシス制御)によって動作する、

降圧コンバータ回路の設定方法を学習します。

例題:ヒステリシス制御 DC/DC降圧コンバータ

理想スイッチによるDC/DC降圧コンバータの電圧値確認

(コイル:25 mH、コンデンサ:220 μF、抵抗器:2 Ω)

最初に「ライブラリ・ブラウザ」を起動し、

「新規作成(Ctrl+N)」を作成します。

作成した PLECS モデルファイルに「シス

テムブロック」から「サブシステム」ブロ

ックを「ドラッグ&ドロップ」します。

作成した「サブシステム」ブロックの名称

を適当な名前に変更(例:Circuit)し、

サブシステムブロックをダブルクリック

で開いて、目的の「コンポーネント」をサ

ブシステム内に「ドラッグ&ドロップ」し

ます。

Page 47: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

45

この例題では「ライブラリ・ブラウザ」の、

「受動素子(電気回路ブロック)」から「抵抗器(R1)、インダクタ(L1)、キャパシタ(C1)」、

「電源(電気回路ブロック)」から「可変電圧(V)」、

「電圧・電流計(電気回路ブロック)」から「電圧計(Vm1)、電流計(Am1)」、

「理想スイッチ(電気回路ブロック)」から「シングルスイッチ(S1)」、

「パワー半導体(電気回路ブロック)」から「ダイオード:理想モデル(D1)」、

「システムブロック」から「入力信号ポート(In1)、出力信号ポート(Out1)」、

の回路要素ブロックを選択し、主回路サブシステム・ブロックに「ドラッグ&ドロップ」します。

この例題ではトランジスタを、単純なシングルスイッチとしてモデリングしています。このシン

グルスイッチと還流ダイオード(フリーホイールダイオード)および各受動素子によって、

DC/DC 降圧コンバータが構成されます。

理想スイッチに格納されている各理想スイッチモデルは、基本的に、オン抵抗=0、オフ抵抗=

無限という理想スイッチの概念に基づいてモデリングされており、スイッチのターン・オン/オ

フは瞬時に実行されるので、別途、数値計算を安定させる用途のスナバ回路等を設置する必要

はありません。

ただし、いくつかのパワー半導体スイッチモデルは、逆回復時間の入力、スイッチング時の電流

変化率(di/dt)等の非線形特性をモデリングする機能を実装していますので、必要に応じて、よ

り詳細な電流・電圧波形を出力することが可能です。

ドラッグ&ドロップ!

Page 48: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

46

主回路サブシステム・ブロックに「ドラッグ&ドロップ」されたコンポーネントブロックを、右

上図のように「接続」します。

接続されたコンポーネントブロックを「ダブルクリック」し、各コンポーネントの

「ダイアログボックス」に降圧コンバータ回路の回路要素特性を入力します。

各入力値は、

抵抗= 2 Ω(オーム)、コイルインダクタンス= 25 mH(ヘンリー)、

コンデンサ容量= 220 μF(ファラド) です。

作成したDC/DC降圧コンバータ回路サブシステムに、スイッチの制御信号を与えます。サブシス

テムのサイズ・ポート位置変更等は「PLECS サブシステム」を参照して下さい。

ドラッグ&ドロップ!

Page 49: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

47

ここで「ライブラリ・ブラウザ」の、

「シグナルソース(制御器ブロック)」から「定数(Constant)、ステップ信号(Step)」、

「数学(制御器ブロック)」から「加減算(Sum)」、

「不連続(制御器ブロック)」から「制御リレー(Relay)」、

「システムブロック」から「マルチプレクサ(Signal Multiplexer)、PLECS スコープ(Scope)」、

の回路要素ブロックを選択し、PLECSファイルに「ドラッグ&ドロップ」します。

コンポーネントブロックを「ダブルクリック」し、各コンポーネントの

「ダイアログボックス」に制御ブロックの各素子特性を入力します。

≪採用されている制御ロジック≫

DC/DC降圧コンバータの負荷側電圧出力は、ヒステリシス制御器にフィードバックされ、電圧指

令値(6V)近傍で、±0.2Vの振幅で振動する電圧値を出力します。また、交流電源電圧は可変電

源として、シミュレーション開始後、0.05秒に12Vから8Vへ降下します。

ドラッグ&ドロップ!

Page 50: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

48

≪スイッチ入力(ゲート)信号用ブロック≫

「定数:Constant」設定項目=「値:6」(電圧指令値)

「加減算:Sum」設定項目=「入力記号または入力数:| + -」

(+=指令値電圧、-=フィードバック信号:V)

「制御リレー:Relay」設定項目=「閾値上限:0.2」、「閾値下限:-0.2」

≪入力電源(直流電圧)用ブロック≫

「定数:Constant」の設定項目=「値:12」(入力電圧)

「加減算:Sum」設定項目=「入力記号または入力数:+ | -」

(+=入力電圧、-=ステップ出力)

「ステップ信号:Step」の設定項目=「ステップ時間:0.05」、「最終出力値:4」

主回路サブシステム・ブロックの電圧計・電流計から出力される信号を同一座標で表示するため、

「マルチプレクサ:Single Multiplexer」ブロックを用いて信号を多重化し、「PLECSスコープ

(Scope)」ブロックに「接続」します。

可変電圧により印加される降圧コンバータのシミュレーションを実行します。PLECSファイルの

「シミュレーションメニュー」からシミュレーション・パラメータを起動(Ctrl+E)し「シミュ

レーション時間:終了時間」を「0.1」に変更します。ソルバ設定等のその他のパラメータはデフ

ォルト値を使用して下さい。

PLECSファイルの「シミュレーションメニュー」から「開始(Ctrl+T)」を選択すると「PLECS

Scope」上に、シミュレーション結果(電流/電圧計からの値)が出力されます。

Page 51: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

49

PLECSの使用方法 TIPS

PLECS 環境設定

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSには環境設定項目として、使用言語、記号フォーマット、ユーザーライブラリパス、熱設

定サーチパス等を設定することが可能です。

設定を行うには、PLECSコンポーネント、PLECS Scope等のGUI画面から

ファイルメニュー → PLECS 設定… を選択(クリック)し、PLECS 設定ダイアログボック

スを起動して、各項目のメニューを選択します。

「PLECS 設定(基本設定タブ)」では以下の項目を設定します。

「言語:」プルダウン・メニューでは、GUIに表示される言語を設定します。

「システムデフォルト」を選択すると自動的に使用OSの言語を選択します。

「English」を選択するとGUIは英語表示になります。

「Japanese」を選択するとGUIは日本語表示になります。

「記号フォーマット:」プルダウン・メニューでは、PLECS回路で用いる素子記号を設定します。

「ANSI (American National Standards Institute)規格」 米国規格協会準拠

「DIN (Deutsche Industrie Normen)規格」 ドイツ連邦規格準拠

「グリッド:」PLECS回路図エディタのグリッド表示/非表示を指定します。

クリック!

DIN ANSI

Page 52: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

50

「キャッシュサイズ制限:」PLECSが使用する最大メモリ・キャッシュサイズを設定します。

使用メモリがキャッシュサイズ制限値に達した場合は、メモリにストアされたシミュレーション

結果が破棄されます。また、PCに搭載してある物理メモリの1/3以上の数値を指定した場合、シ

ミュレーションを実行する際に、仮想メモリを使用することになり、計算性能が低下しますので、

搭載してある物理メモリの1/3以下の数値を指定して下さい。また、32ビットOSをご利用の際は、

最大でも500MB以下に、キャッシュサイズを指定して下さい。

「スコープウィンドウ:」「モデル読込時に開く」チェックボタンが有効の場合は、ファイルに

配置されたPLECSスコープが、ファイルを読み込む際に開きます。

「スタートアップ画面(PLECS Standaloneのみ):」「PLECS開始時に表示」チェックボタン

が有効な場合、ソフトウェアを起動する際に、スタートアップ画面が表示されます。

「XML-RPCインターフェイス(PLECS Standaloneのみ):」外部アプリケーションとの連携(ス

クリプティング)を実行する際に、使用するプロトコル(XML-RPC)のポートを指定します。「有

効」チェックボタンが有効になっている場合、外部アプリケーションと通信を行うポート番号を

「ポート」で指定して下さい(デフォルトポート番号:1080)。XML-RPCを用いたスクリプテ

ィング機能の詳細は、「PLECSとXML-RPCとの接続確立」の項を参照して下さい。

Page 53: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

51

「PLECS 設定(ライブラリ設定タブ)PLECS Blockset」では以下の項目を設定します。

「ユーザー・ライブラリ」PLECS Extra のLibray(ユーザーライブラリ・ブロック)が格納さ

れた任意のSimulinkファイル(*.mdl)を指定します。ここで、Simulinkファイルの格納場所は

MATLABのパス設定に登録する必要があります。「記述」項目には、任意の名称を適用可能です。

「記述」項目に適用された名称が、ライブラリ・ブラウザ上に表示されます。

例)ulib.mdl 表示名:ユーザーライブラリ1

「PLECS 設定(ライブラリ設定タブ)PLECS Standalone」では以下の項目を設定します。

ライブラリ登録するブロックが格納された、任意のPLECSファイル(*.plecs)または、Simulink

ファイル(*.mdl)を指定します。ここで、ライブラリファイルの格納場所を、サーチパス上に設

定に登録する必要があります。「記述」項目には、任意の名称を適用可能です。「記述」項目に

適用された名称が、ライブラリ・ブラウザ上に表示されます。

例)ulib.plecs または ulib.mdl 表示名:ユーザーライブラリ1

Page 54: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

52

「PLECS 設定(熱設定タブ)」では以下の項目を設定します。

「熱設定サーチパス」では、PLECS熱等価回路で用いる熱設定ファイル(*.xml)を保存してある

フォルダを選択・追加します。熱設定ファイルの格 納場所をサーチパスに登録することによって、

熱設定ファイルが使用可能になります。ネットワーク上のフォルダを登録することも可能です。

例) C: ¥PLECS_Thermal_Library

熱設定ファイルの使用方法詳細は、「PLECSの損失シミュレーション」の項を参照して下さい。

「PLECS 設定(スコープ配色設定タブ)」では以下の項目を設定します。

「スコープ背景:」プルダウン・メニューで、PLECSスコープの背景色を指定します。

「背景色:黒」を選択すると、背景色は黒色になります。

「背景色:白」を選択すると、背景色は白色になります。

「スコープパレット:」プルダウン・メニューで、PLECSスコープのパレット(規定表示特性)

を指定します。

Page 55: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

53

初期設定では、「デフォルト」が選択されていますが、「複製」ボタンをクリックすることによ

って、この表示特性をコピーし、任意のパレットを複数作成することが可能です。不要なパレッ

トを削除する場合は、「削除」ボタンをクリックします。「デフォルト」パレットは、読込み専

用となっているため、削除できません。

パレットの「信号」グループボックスでは、個別に「色、線種、線幅」を指定します。プロット

に表示される信号数が、信号グループボックスに定義された信号数を超える場合は、出力される

信号の順番で、繰り返し表示特性が適用されます。デフォルト設定では、6つの出力信号に対し、

同一の線種、線幅が適用されています。

「トレースの区別」プルダウン・メニューで、トレースの表示方法を指定します。トレース機能

を有効にした場合、単一の出力信号に対し、複数の出力が表示されます。この複数の出力を「明

るさ、色、線種、線幅」によって区別します。初期設定(デフォルト)では、基本色に対して、

異なる「明るさ」を適用し、トレースの出力を区別します。任意のパレットを設定した場合に、

「トレースの区別」を選択可能になります。プロットの表示数が、信号グループボックスに定義

された信号数を超える場合は、出力される信号の順番で、繰り返し表示特性が適用されます。

Page 56: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

54

PLECS サブシステム

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSは主回路上に設置された、任意のコンポーネント(素子)による組み合わせを、サブシス

テム(副回路)として定義することが可能です。設置可能なサブシステムの数に制限はありませ

ん。

また、サブシステムにはパスワードによる機能制限を設定することも可能ですので、必要に応じ

てサブシステムの情報をブラックボックス化することも可能です。

サブシステムの作成方法は、サブシステム化したいコンポーネントを全て選択して、

ファイルメニュー → 編集 → サブシステムの作成 を選択(クリック)します。

もしくは、コンポーネントを選択した状態で、マウスを右クリックすると、プルダウン・メニュ

ーが表示されるので、ここから、

サブシステムの作成 を選択(クリック)します。

サブシステム内のコンポーネントを確認する場合は、サブシステム・ブロックをダブルクリック

します。もしくは、サブシステム・ブロックを選択した状態で、マウスを右クリックすると、プ

ルダウン・メニューが表示されるので、ここから、サブシステムのモデル表示を選択します。

*注 マスクの「パラメータ」を設定したサブシステムは、サブシステム内のコンポーネントを

「ダブルクリック」で確認することはできません。

クリック!

クリック!

ダブルクリック!

クリック!

Page 57: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

55

サブシステム・ブロックの表示名位置変更

サブシステムとして定義されたブロックは、デフォルトでは、ポート名:数字とサブシステム名:

Subで表示されます。これらの配置、名前、およびブロックサイズは任意に変更することが可能

です。

サブシステム名の表示位置は、サブシステム名をクリックして選択し、下図に示す各位置に、ド

ラッグ&ドロップすることによって、変更することが可能です。

サブシステム名はサブシステム名をダブルクリックして、直接編集(日本語入力可)することが

可能です。

*注 マスクを設定したサブシステムは、サブシステム名の表示位置を変更できません。

(ブロックの回転による表示位置の変更は可能です)

サブシステム・ブロックのブロックサイズ変更

サブシステム・ブロックを選択した状態で、マウスカーソルを各コーナーのマークに合わせる

と、カーソルが矢印に変化します。続いて、マウス左ボタンを押しながら、マークをドラッグ

すると、マウスの動きに合わせブロックサイズ(点線)が表示されるので、任意の位置でドロッ

プすることによってサブシステムのブロックサイズを変更することが可能です。

*注 マスクを設定したサブシステムは、サブシステムのブロックサイズを変更できません。

ドラッグ&ドロップ!

クリック!

ドラッグ&ドロップ!

クリック!

Page 58: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

56

サブシステム・ブロックのポート位置変更

サブシステム・ブロックに表示されるポートの配置と名前は変更することが可能です。サブシス

テムの端子に、何も接続されていない場合、マウスカーソルを目的の端子に合わせると、マウス

が十字形に変化します。ここで、Shiftキーを押しながら、マウス左ボタンで目的のポートをドラ

ッグすると、マウスカーソルが「人差し指の画像」に変化します。または、マウスの真ん中ボタ

ン(通常はマウスホイール)で目的の端子をドラッグします。人差し指の画像をドラッグすると、

マウスの動きに合わせ、サブシステム・ブロックの縁を、(点線)マークが移動するので、任

意の位置でドロップすることによって、ポートの位置を変更することが可能です。他のブロック

からサブシステム端子が接続されている場合は、マウスカーソルを目的の端子に合わせても、マ

ウスは十字形に変化しませんが、上記と同様の手法で、端子位置を変更することが可能です。

*注 マスクを設定したサブシステムは、ポートの位置を変更できません。

ポートの表示名を変更するには、サブシステム内のポート名を変更します。

*注 同じポート名は使用できません。ソフトウェアによって自動的に名前が変更されます。

ドラッグ&ドロップ!

クリック!

Page 59: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

57

サブシステム・ブロックのマスク編集

サブシステムを作成すると、PLECS 回路上にサブシステム・ブロックとして表示されます。サ

ブシステムはマスクを編集することによって、アイコン記号、パラメータ、プローブ、文書(注

釈)を設定することが可能です。

サブシステム・ブロックのマスクの設定は、編集したいサブシステム・ブロックを選択して、

ファイルメニュー → 編集 → サブシステムのマスク を選択(クリック)します。

もしくは、サブシステム・ブロックを選択した状態で、マウスを右クリックすると、プルダウン・

メニューが表示されるので、ここから、

サブシステムのマスク を選択(クリック)し、マスクエディタを起動します。

クリック!

クリック!

Page 60: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

58

マスクエディタには各設定項目タブが表示されます。アイコン・タブをクリックするとコマン

ド・ドローイング・ダイアログボックスが表示され、ここに、コマンドライン入力によってアイ

コンを設定します。

テキスト文 text(x, y, ’text’, fontsize)

例)text(0, 0, 'テスト', 14)

《定義されたテキスト文にアイコンの回転・反転等は適用されません》

線分 line(xvec, yvec)

例)line([0, 3, -18], [16, 16, 16])

パッチ patch(xvec, yvec)

例)patch([11, 14, 7.5, 11], [7.5, 12, 12, 7.5])

円 circle(x, y, r)

例)circle(11, -10, 3)

画像 image(xvec, yvec, imread(’filename’) [, ’on’])

例)image([-21 21], [-21 21], imread('C:¥plecs¥icon ¥flyback.tif'))

《画像データは、絶対または相対パスによる指定が可能です》

色 color(r, g, b) RGB指定は「0~255」までの数値です。

例)color(255, 0, 0) →赤色へ変更

《テキスト文へは適用できません》

*注 アイコン設定用コマンド入力に誤りがある場合、サブシステム・ブロックに「???」のエ

ラーメッセージが表示されます。

アイコンには画像データを使用することも可能ですので、任意のアイコン画像を作成し、既存コ

ンポーネントと区別することも可能です。

タイプ!

Page 61: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

59

パラメータ・タブをクリックすると、パラメータ追加用の各入力テーブルが表示されます。パラ

メータ入力テーブルをアクティブにするには、追加ボタンをクリックし、パラメータ・プロンプ

トおよびパラメータ・変数入力ダイアログボックスに任意の名前を入力します。ここで用いられ

る変数の名前は、サブシステムを構成するコンポーネントに定義された変数名です。

例では、サブシステムを構成するコンポーネントであるダイオードの順電圧:Vf_d を、サブシ

ステム・ブロックの引数として定義しています。

パータ・タイプには Edit、Combo Box、Check Box、Thermal のオプションがあり、コンポ

ーネントに適用可能な変数(熱設定等)を、サブシステム・ブロックの引数として選択します。

初期化コマンドでは、サブシステムにコマンド入力による初期条件を設定します。MATLAB で使

用可能な関数コマンドおよび数式を用いて任意の初期条件を設定することが可能です。

*注* ワークスペースに定義された変数を呼び出すことはできません(PLECS Blockset)

タイプ!

ダブルクリック!

クリック!

タイプ!

タイプ!

Page 62: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

60

プローブ・タブをクリックすると、マスクの信号設定入力テーブルが表示されます。信号設定入

力テーブルをアクティブにするには、追加ボタンをクリックし、マスクの信号名を入力します。

ここで、出力する信号を、プローブ・コンポーネントおよびコンポーネント信号から選択します。

これにより、サブシステム内の各コンポーネントの出力信号に直接アクセスすることが可能にな

ります(出力したい回路要素をドラッグ&ドロップします)。

各コンポーネントのプローブ設定方法は、「PLECS の使用方法 1.1:PLECS Blockset による

RLC回路の作成」、または「PLECSの使用方法 2.1:PLECS Standaloneによる RLC回路の作

成」を参照して下さい。

クリック!

タイプ!

タイプ!

Page 63: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

61

文書・タブをクリックすると、マスクの注釈入力テーブルが表示されます。マスクタイプ、マス

ク記述の各入力テーブルに、作成したサブシステムの名称、設定条件等の情報を入力して下さい。

作成したサブシステム:フライバックコンバータをダブルクリックすると、パラメータ入力ダイ

アログボックスが起動し、設定が反映されていることが確認できます。PLECSプローブでも同様

に設定の確認ができます。

タイプ!

ダブルクリック!

Page 64: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

62

PLECS パーミッション

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS回路および「サブシステム」は、パスワードによる機能制限を設定することが可能です。

パーミッション機能は、PLECSのGUI画面から設定します。

PLECS回路にパーミッションを設定する場合は、

ファイルメニュー → PLECS回路のパーミッション設定… を選択(クリック)します。

サブシステムにパーミッションを設定する場合は、サブシステムを選択した状態で、

ファイルメニュー → 編集 → サブシステムのパーミッション を選択(クリック)します。

もしくは、サブシステムを選択した状態で、マウスを右クリックすると、プルダウン・メニュー

が表示されるので、ここから、

サブシステムのパーミッション を選択(クリック)します。

クリック!

クリック!

クリック!

Page 65: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

63

パーミッション設定ダイアログボックスが起動すると、

回路図の表示

パラメータの変更およびマスク表示 のチェックボックスが表示されます。

ここで、目的のチェックボックスをクリックして、チェックを外し、OKもしくは適用をクリッ

クするとパスワード入力ダイアログボックスが起動しますので、パスワードを入力します。これ

によりパーミッションが設定されます。

*注 パスワードは半角英数文字を使用して下さい。(大文字と小文字は厳密に区別されます)

パーミッション(回路図の表示)を設定した PLECS回路のパーミッションを変更する場合は、パ

ーミッション変更ダイアログボックスを起動し、はいボタンを押して、パスワードを入力して下

さい。パスワードの入力ミスがあると警告ダイアログボックスが表示され、パーミッションは変

更されません。いいえボタンを押すとエラーメッセージが出力され、回路図は表示されません。

パーミッションを設定した、サブシステムは設定

した項目のメニューが「非表示」となり、設定の

変更が不可能になります。パーミッションを解除

するには、パーミッションを設定したサブシステ

ムを選択し、再び、サブシステムのパーミッショ

ン・ダイアログボックスを起動し、パスワードを

入力してパーミッションを変更して下さい。

クリック!

クリック!

タイプ!

Page 66: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

64

PLECS ユーザー・ライブラリ

(使用環境:PLECS Blockset Version 3.3 日本語 OS:Windows)

PLECS Blocksetは、Extras(エクストラ・ライブラリ)ブロック内に、PLECS Library(ユーザー・

ライブラリ)ブロックを実装してあるので、ユーザーは独自ライブラリを簡単に作成することが

可能です。使用頻度の高いコンポーネントや、作成したサブシステムを独自のパーツとして、ユ

ーザー・ライブラリに登録することによって、より使い易いGUI環境を構築できます。

PLECS Library(ユーザー・ライブラリ)ブロックに、コンポーネント(サブシステム)を登録

するには、SimulinkのGUIでライブラリのロックを解除する必要があります。PLECSライブラリ

を起動し、Extras(エクストラ・ライブラリ)ブロックを開き、「Libraryブロック」を選択し、

ファイルメニュー → 編集 → ライブラリのロックを解除 を選択(クリック)します。

ライブラリのロックを解除した状態で、PLECS Library(ユーザー・ライブラリ)ブロックを開

き、ここに目的とする、コンポーネントまたはサブシステムをドラッグ&ドロップして下さい。

コンポーネントをライブラリに格納した時点で、Extras(エクストラ・ライブラリ)ブロックを

保存すると、ライブラリに登録されます。ユーザー・ライブラリの操作方法はコンポーネント・

ライブラリとは異なります。(*注 Simulink ブロックは登録できません)

PLECS Standalone は、全ての Standalone ファイル(*.plecs)、および Blockset ファイル(*.mdl)

の PLECS 回路ブロックをユーザー・ライブラリとして使用することが可能です。詳細は「PLECS

環境設定」の項を参照して下さい。

ドラッグ&ドロップ!

クリック!

クリック!

Page 67: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

65

PLECS 回路ブラウザ

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS回路ブラウザを使用すると、PLECS回路内に定義されたサブシステムのツリー構造を簡単

に確認することが可能になります。回路ブラウザ機能を起動するには、

ファイルメニュー → 回路ブラウザオプション → 回路ブラウザの表示、および、サブシステ

ムの表示 を選択(クリック)します。回路ブラウザを表示すると、PLECS回路のGUI画面右端

に、回路内の全てのサブシステムがツリー構造として表示され、サブシステムの名前をクリック

すると回路図が切り替わります。

*注 「パーミッション」により、利用制限が設定されたサブシステムは表示されません。

クリック!

クリック!

クリック!

Page 68: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

66

PLECS エクスポート機能

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

「PLECS Viewerファイル」の出力(PLECS Blocksetのみ対応)

PLECS Blocksetを用いて作成した回路モデルは、Simulinkのモデルファイルも含めて、PLECS

Viewerファイルとして出力可能です。MATLAB/Simulinkが利用可能な環境であれば、PLECS

Viewer(無料)を用いて回路モデルの出力結果を確認することが可能です。PLECS Viewerファ

イルを出力するには、PLECSファイルメニュー → PLECS Viewerへ出力… を選択(クリッ

ク)します。PLECS Viewerファイルとして出力された回路モデルはシミュレーションの実行の

みが可能で、回路図およびコンポーネントのパラメータ等は一切編集・変更できません。回路図

の変更を実行するとエラーメッセージが出力されます。

PLECS Blockset用「mdlファイル」の出力(PLECS Standaloneのみ対応)

PLECS Standaloneは、PLECS BlocksetでPLECS回路を読み込むためのmdlファイルを出力すること

が可能です。PLECSファイルメニュー → ファイルエクスポート… を選択(クリック)する

と、mdlファイルが出力されます。

「回路図ファイル」の出力

PLECSの回路図は各種画像データ、ベクトルグラフィックス(SVGファイル)、PDFファイルへ

出力可能です。回路図を出力するには、PLECSファイルメニュー → 回路図の出力… を選択

(クリック)し、エクスポートファイルの種類をプルダウン・メニューから選択します。

画像データを選択した場合は、JPEG、TIFF、PNG、GIFとして保存されますので、ファイル名に、

それぞれ適当な拡張子名を入力して下さい。(デフォルトではPNGとして保存されます。)

画像データとしてエクスポートする場合は、保存ボタンを押すと、画像出力サイズ(解像度)を、

プルダウン・メニューから指定する必要があります(数値を直接入力することも可能です)。解

像度(dpi)は数値が大きいほど、ファイルサイズも大きくなりますが、より詳細な画像になり

ます。PDFファイルを選択した場合には、用紙サイズおよび方向をプルダウン・メニューから指

定する必要があります。

クリック!

Page 69: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

67

PLECS Probe

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSには回路要素からの出力信号を直接取得するため、PLECS Probeが実装されています。

PLECS ProbeはSimulinkモデル上で使用します。目的とするコンポーネント(素子)をプローブエデ

ィタ・ウインドウにドラッグ&ドロップするだけで簡単に回路要素からの出力信号を取得可能で

す。

大半のコンポーネント(素子)は、PLECS Probeと組み合わせることによって、電流・電圧値等の

波形信号を直接、Simulinkモデルへ出力可能ですので、これを用いて制御ループの参照値とする、

「PLECS Scope」で波形を確認するといった使用方法が可能になります。

Simulinkモデルファイルで「PLECS Probe」を利用するには、「PLECSライブラリ」から「PLECS

Probe」ブロックを選択し、Simulinkモデル上に「ドラッグ&ドロップ」します。

PLECS回路ブロックで目的のコンポーネントを選択し、プローブエディタ内に「ドラッグ&ドロ

ップ」します。

ドラッグ&ドロップ!

ドラッグ&ドロップ!

クリック!

ダブルクリック!

Page 70: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

68

「プローブエディタ・ウインドウ」では以下の項目が表示されます。

「種類」 コンポーネントの種類を表示します。(例:インダクタ、抵抗器等)

「名前」 PLECS回路上で指定されたコンポーネント名を表示します。(例:L1、R1等)

「パス」 コンポーネントが配置されたPLECS回路名を表示します。(例:Circuit、Buck_Conv等)

「コンポーネント信号」 各コンポーネントから出力される信号を選択します。(例:抵抗器 電圧等)

コンポーネント信号は同一種類のコンポーネントであれば、「CtrlキーまたはShiftキー」を押

しながら一括選択することによって、全ての出力信号をチェックボックスにて選択することが可

能です。

PLECS回路ブロック上で使用するPLECS Probeは、従来の方法に加えて、PLECS Probe上に目

的のコンポーネントを直接、ドラッグ&ドロップすることによって、プローブ信号の出力を指定す

ることが可能です。

異なるコンポーネントを選択した場合は、警告メッセージが出力され、チェックボックスが表示

されません。

PLECS回路ブロック上で使用するPLECS Probeをコピーする場合、下記条件が適用されます。

1. PLECS Probeが、参照しているPLECS回路が、「完全に同一の状態」でコピーされる場合は、

コピーしたPLECS回路で、コンポーネント信号のリンクを参照します。

2. PLECS Probeが、参照しているPLECS回路内でコピーされる場合は、同じコンポーネント信号

のリンクを参照します。

3. PLECS Probeが、参照しているPLECS回路と異なるPLECS回路へコピーされる場合は、コンポ

ーネント信号のリンクが削除されます。

PLECS Blocksetで使用するSimulinkファイル用PLECS Probeは、同一Simulinkファイル内でコピ

ーする場合は、コンポーネント信号のリンクを保持します。また、異なるPLECS回路ブロックに

配置されたコンポーネントから出力される信号を取扱いできません。異なるPLECS回路ブロック

のコンポーネントをドラッグ&ドロップすると、エラーが出力されます。

また、他のファイルからコピーされたPLECS Probeブロックは、内部のコンポーネントプローブ

データが全て消去されます。

クリック!

Page 71: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

69

PLECS Scope

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSには独自のPLECS Scopeが実装されています。Simulink Scopeと同様にコンポーネント(素

子)から出力される信号の他、Simulinkブロックから出力される通常のロジック信号も表示可能

です。

簡単な操作による拡大・縮小機能の他、表示された出力信号の平均値、RMS値等を出力する数

値処理機能も実装しています。

Simulinkモデルファイルで「PLECS Scope」を利用するには、「PLECSライブラリ」から「PLECS

Scope」ブロックを選択し、Simulinkモデル上に「ドラッグ&ドロップ」します。

PLECS回路内で「PLECS Scope」を利用するには、「コンポーネント・ライブラリ」の「システ

ムブロック」から「PLECS Scope」ブロックを選択し、PLECS回路内に「ドラッグ&ドロップ」

します。

ドラッグ&ドロップ!

ドラッグ&ドロップ!

Page 72: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

70

配置されたPLECS ScopeをダブルクリックするとPLECS Scopeウィンドウが起動します。

PLECS Scopeの各パラメータを設定するには、PLECS Scopeウィンドウの、

ファイルメニュー → スコープパラメータ… を選択(クリック)し、

スコープパラメータ・ウインドウを起動します。

「スコープパラメータ」では以下の項目を設定します。

「プロット数:」では、表示するプロット・ウインドウ数を設定します。

「時間軸の表示:」プルダウン・メニューでは、プロット・ウインドウに表示される時間軸(X

軸)の表示を設定します。

「全てのプロット」 プロット数で指定された各プロット・ウインドウで時間軸を表示

「下部プロットのみ」 最下部のプロット・ウインドウで時間軸を表示

「時間軸ラベル:」時間軸にラベル(名称)を指定します。

ダブルクリック!

クリック!

Page 73: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

71

「サンプリング値制限:」では、出力されるデータ数(サンプリング値)を設定します。

このオプション設定は、長時間のシミュレーションを実行する際に、最大使用メモリが制限値に

到達する場合(キャッシュサイズ制限を参照)に使用して下さい。通常、全ての出力データはメ

モリに、一時的に保存されます。

「時間レンジ(X軸):」では、出力される時間刻みを設定します。

ユーザーが表示時間刻みを指定した場合、指定された時間刻み幅でシミュレーション結果が表示

されます。自動が選択された場合、シミュレーション終了時間により表示されます。

「プロットタブ → タイトル:」では、プロット・ウインドウの表示名を設定します。

ユーザーが表示時間刻みを指定した場合、指定された時間刻み幅でシミュレーション結果が表示

されます。自動が選択された場合、シミュレーション終了時間により表示されます。

「プロットタブ → 軸ラベル:」では、プロット・ウインドウのY軸表示名を設定します。

Y軸に表示される名称を指定します。指定された座標名でシミュレーション結果が表示されます。

「プロットタブ → Y軸座標値:」では、プロット・ウインドウのY軸表示座標を設定します。

ユーザーが Y軸座標値を指定した場合、指定された座標値でシミュレーション結果が表示されま

す。自動が選択された場合、シミュレーション結果の最大・最小値を検出し、表示されます。

プロット・ウインドウの追加・削除

は、マウス操作でも指定可能です。

プロット・ウインドウ上でマウスを

右クリックすると、プルダウン・メ

ニューが表示されるので、ここから、

マスクプロットの挿入(上下)

または プロットの削除

を選択(クリック)します。

クリック!

クリック!

Page 74: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

72

PLECS Scopeウィンドウには各表示ウィンドウをおよびアイコンが表示されます。デフォルトで

表示されるのは、プロット・ウインドウのみですが、PLECS Scopeウィンドウの表示メニューか

ら任意の表示項目を選択(クリック)し、追加・削除することが可能です。

「表示メニュー」では以下の項目の表示/非表示を選択します。

「ツールバー」を選択すると「アイコン・ツールバー」が表示されます。(デフォルトは表示)

「データ」を選択すると「データ・ウインドウ」が表示されます。

「データ・ウインドウ」では、カーソルを用いることによって出力信号の数値分析値を出力しま

す。

「差」 「カーソル1」と「カーソル2」の差を表示します。

「最小値」 カーソル区間のデータ最小値を表示します。

「最大値」 カーソル区間のデータ最大値を表示します。

「絶対値(最大)」 カーソル区間のデータ最大絶対値を表示します。

「平均値」 カーソル区間のデータ平均値を表示します。

「RMS値」 カーソル区間のデータRMS値(二乗平均平方根)を表示します。

「全高調波ひずみ値」 カーソル区間の全高調波ひずみ値(THD)を表示します。

(RMS値および全高調波ひずみ値の算出では、基準周波数と同期したカーソル区間を指定して下さい)

「拡大領域」を選択すると「拡大領域・ウィンドウ」が表示されます。

「拡大領域・ウィンドウ」は常にプロット領域全体を表示し、どのデータ領域が拡大されている

かを表示します。「拡大領域・ウィンドウ」上でも拡大ツールは使用可能です。

「保存プロットビュー」を選択すると保存プロットビュー・ウインドウが表示されます。

「保存プロットビュー・ウインドウ」では保存されたプロット名を表示します。目的のプロット

名をクリックすると保存されたプロット領域が表示されます。

Page 75: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

73

「トレース」を選択するとトレース・ウインドウが表示されます。

シミュレーション終了後に、出力波形を「トレース」として保存し、異なるシミュレーションの

出力結果を、直接比較することが可能です。新しいトレースは、ツールバーに表示される「現在

のトレースの保持」ボタン、または、トレース・ウインドウに表示される緑色の十字アイコンボ

タンをクリックすることで追加されます。トレースを削除するには、トレース・ウインドウに表

示される赤色のマイナスアイコンボタンをクリックします。これらの動作はシミュレーション・

スクリプティングでも指定可能です。詳細は「PLECS シミュレーションスクリプティング」の項

を参照して下さい。

PLECS Scope上に出力されたトレースは、「ファイルメニュー → トレースデータの保存…」

を選択することによって保存可能です。保存されたトレースは、「ファイルメニュー → トレ

ースデータの読込み…」を選択することによって任意のPLECS Scope上で再表示可能ですが、読

み込まれる保存トレースと、表示させるPLECS Scopeのプロット/信号数は、同一に設定する必要

があります。信号数が同一でない場合は、シミュレーション開始時に警告メッセージが表示され、

トレースデータが削除されます。

プロット上でマウスの右ボタンをクリックすることよって、「信号表示特性の変更」機能を使用

することが可能です。

クリック!

クリック!

Page 76: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

74

初期設定では、PLECS Scope上に表示される信号線には、パレットに定義された表示特性が適用

されます。パレットの定義詳細は「PLECS 設定(スコープ配色設定タブ)」の項を参照して下

さい。

信号線の表示特性(色、線種、線幅)を個別に設定する場合は、目的の信号線が表示されている

プロット上で、マウスの右ボタンをクリックし、プルダウンメニューから「信号表示特性の変更」

を選択すると、信号表示特性を設定する「線種ウィンドウ」が表示されるので、ここから目的の

表示特性項目をダブルクリックし、任意の特性に変更します。

個別に設定された項目は、背景色が白に変化し、この設定条件がファイルに保存されます。パレ

ット(初期設定)により定義されたグローバル設定が適用されている項目の背景色は灰色に表示

されます。個別の表示特性を削除する場合は、「デフォルトに戻す」ボタンをクリックして下さ

い。

プロット上でマウスの右ボタンをクリックすることよって、「信号を分離表示」機能を使用する

ことが可能です。

単一のプロット上に、複数のゲート信号のような離散値の出力信号を表示させる場合は、特定の

信号を確認することが非常に困難になります。「信号を分離表示」機能を使用すると、自動的に

各信号を規準化し、オフセット表示することが可能です。全ての表示信号は、各信号間の表示を

適切に保つ同倍率で、規準化・オフセットされます。この表示モードを適用した場合は、垂直方

向の拡大・スクロール機能は無効化されます。

クリック!

Page 77: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

75

「PLECS Scope アイコン表示機能」では以下の項目を設定します。

「前/次のプロットビュー」

プロットの再表示、前回画面の表示をおこないます

「選択領域の拡大(X軸:Y軸)」

水平(X軸):垂直(Y軸)方向のどちらか1方向を指定し、

マウスドラッグにより拡大します。

「選択領域の拡大」

マウスドラッグにより指定された領域を拡大します。

「全体表示」

プロット領域全体を表示します。

「カーソル」

データカーソルを表示/非表示します。

データカーソルはマウスドラッグによって選択領域を変更することが可能です。

「データ・ウインドウ」にて時間を指定(入力)することによって表示時間を固

定することも可能です。また出力データに表示されるカーソル上のドットへのス

ナップ機能も実装しています。データカーソルを用いることによって、任意領域

データの「カンマ区切りデータ」が出力可能になります。

「フーリエ解析」

フーリエ解析ウィンドウが起動します。

「プロットビューの保存」

表示されているプロットビューを保存します。

保存されたプロットビューは保存プロットビュー・ウインドウに表示されます。

「現在のトレースを保持」

表示されているプロットビューをトレースとして保存します。

保存されたトレースはトレース・ウインドウに表示されます。

「PLECS Scope パラメータ」

PLECS Scope パラメータ・ウインドウを表示します。

「ヘルプ」

ヘルプファイル(英文)を表示します。

Page 78: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

76

「プロット・ウインドウ画面の設定」

プロットを拡大した状態で、各表示軸上(X軸:Y軸)にマウスを移動させると、マウスが手のひ

ら形状に変化します( )。ここでマウスをドラッグ( )すると縮尺を固定した状態で、表示

がスライドします。

各表示軸(X軸:Y軸)をダブルクリックすると拡大領域入力ウインドウが表示されます。これに

より数値入力による表示範囲の指定が可能になります。

「プロットの印刷/エクスポート設定」

PLECS Scopeは表示されたプロットを直接印刷または、PDF/画像出力することが可能です。さら

に、プロット出力のカンマ区切りデータを出力する機能も実装しています。

ファイルメニュー → エクスポート から、各出力を選択(クリック)します。

「PDF/ポストスクリプト…」 PDFまたはPS(ポストスクリプト)ファイルを出力します。

プロットをPDFまたはPSファイルに出力する場合は、背景色が自動的に白色に変更されます。

用紙サイズはプルダウン・メニューから選択可能です。(A5/A4/A3/A2/A1 等)

使用するフォントは「フォントの選択・ウィンドウ」から選択可能です。

線の色はプルダウン・メニューから選択可能です。(カラー/グレースケール/モノクロ)

凡例の配置位置はプルダウン・メニューから選択可能です。(右上/右下/左上/左下 等)

PDF ファイルの出力(カラー) PDF ファイルの出力(グレースケール)

Page 79: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

77

「画像…」 画像ファイルを出力します。

プロットを画像ファイルに出力する場合は、背景色が自動的に白色に変更されます。

出力サイズは任意に指定可能です。(単位:mm/cm/inch/point/ pixel)

使用するフォントは「フォントの選択・ウィンドウ」から選択可能です。

画像解像度はプルダウン・メニューから選択可能です。(単位:dpi 72/150/300/600)

画質は任意に指定可能です。(1~100)

アンチエイリアシング・オプション・チェックボックス

「CSV(カンマ区切り)ファイル…」 CSV(カンマ区切り)ファイルを出力します。

「全領域データ… 」 → 全ての領域データを出力します。

「カーソル選択領域データ… 」 → データカーソルが選択した領域データを出力します。

PLECS フーリエ解析ウィンドウ

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSフーリエ解析ウィンドウは、「PLECS Scope」の「表示メニュー」から起動することが

できます。フーリエ解析ウィンドウは、与えられた基本周波数+周波数帯域に対するフーリエ係

数の成分を抽出します。フーリエ解析を実施する基本周波数は、データカーソル(または数値の

直接入力)によって指定します。デフォルト設定では、データカーソルは、1周期分の基本周波

数が設定されますが、この値はフーリエ解析ウィンドウの基本周波数パラメータによって変更す

ることが可能です。データカーソルの選択領域が基本周波数の倍数となっていない場合は、エイ

リアシング効果が表示されることに留意して下さい。

画像ファイルの出力(カラー) 画像ファイルの出力(グレースケール)

Page 80: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

78

PLECS フーリエ解析ウィンドウパラメータ

「基本周波数」では、フーリエ解析を実行する基本周波数を設定します。

フーリエ解析領域:T は、PLECS Scopeのデータカーソルによって指定されます。このフーリエ

解析領域:T は、n 周期の基本周波数によって定義されます。例)T =n/f0

フーリエ解析ウィンドウの「基本周波数入力ボックス」をクリックすると、「基本周波数ダイア

ログボックス」が表示されます。基本周波数の定義には、PLECS Scopeのデータカーソルで任意

領域を指定、および基本周波数ダイアログボックスへの直接入力、といった2つの手法が提供さ

れています。

デフォルトの設定では、基本周波数ダイアログボックスに表示される「カーソルで計算領域を指

定」が選択され、フーリエ解析を実行します。この設定の場合、1周期分の基本周波数によって

フーリエ解析が実行されます。PLECS Scopeのデータカーソルは、任意の位置に指定することが

可能ですが、基本周波数の開始点および終了点に設定する必要があります。指定された基本周波

数はツールバー上に表示されます。

基本周波数が既知の場合、基本周波数ダイアログボックスで「基本周波数の指定」ボタンを選択

し、基本周波数を直接入力することが可能です。この場合、PLECS Scopeのデータカーソルは入

力された基本周波数で固定されます。PLECS Scope上でカーソルを移動しても、基本周波数領域

は固定されたまま表示されます。

「周波数帯域」では、フーリエ解析を実行する周波数帯域を設定します。

周波数領域:N は、基本周波数:f0に対するフーリエ級数算出領域を定義します。周波数帯域は、

ツールバー上に表示される周波数帯域入力ボックスで指定します。

クリック!

Page 81: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

79

「PLECS Scope パラメータ(フーリエ解析ウィンドウ)」では以下の項目を設定します。

「周波数軸表示:」プルダウン・メニューでは、プロット・ウインドウに表示される周波数軸(X

軸)の表示を設定します。

「全てのプロット」 プロット数で指定された各プロット・ウインドウで時間軸を表示

「下部プロットのみ」 最下部のプロット・ウインドウで時間軸を表示

「周波数軸ラベル:」周波数軸にラベル(名称)を指定します。

「スケーリング」では、フーリエ解析のプロット出力(単位)を設定します。

フーリエ解析ウィンドウでは、解析結果を3つの異なるプロットで表示することが可能です。

絶対値:算出されたフーリエ級数の絶対値

相対 線形:基本周波数におけるフーリエ級数を「1」とした場合の相対値

相対 対数(dB):基本周波数のフーリエ級数を基準とした対数表記

「テーブルデータ」では、データウインドウに出力される単位を設定します。

フーリエ解析ウィンドウでは、解析結果を3つの異なる数値で表示することが可能です。

振幅のみ:位相が表示されない振幅

振幅 位相(ラジアン):ラジアン表記の位相と振幅

振幅 位相(角度):角度表記の位相と振幅

「プロットタブ」の設定はPLECS Scopeと同様です。

データウインドウに表示される「表示タイプ」で、フーリエ解析結果の表示方式を設定すること

が可能です。

フーリエ解析ウィンドウでは解析結果を、棒グラフ表示、マーカー表示、連続表示の3つの異な

るグラフで表示することが可能です。データ・ウインドウに表示される信号名の横に表示される、

小さな表示タイプアイコンをダブルクリックすると、表示タイプ・プルダウンメニューが表示さ

れ任意のグラフを選択することが可能になります(デフォルト設定:棒グラフ表示)。

ダブルクリック!

Page 82: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

80

フーリエ級数の算出

PLECSのフーリエ解析は下記式を用いて、可変サンプリング時間:ΔTm における信号のフーリエ

級数を算出します。

ここで、

連続信号

離散信号

となります。

連続信号へは、区分線形近似が適用されます。高速フーリエ変換(FFT)に比べ、上記手

法は、可変サンプリング時間の信号へも適用することが可能です。この手法の解析精度は、

シミュレーションの時間刻みに大きく依存するため、シミュレーションに小さな時間刻みを

適用することによって、より正確な解を得ることが可能になります。

PLECS XYプロット

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS には入力信号 X および Y の関連性を表示する独自の XY プロットが実装されています。

全てのシミュレーションステップで入力される XY 値は新しい入力点として表示されます。それ

ぞの入力点は直線補間によって表示されます。

「時間レンジ・ウィンドウ」では、表示するXYプロット領域を設定します。

デフォルト設定では全ての計算時間に対して XYプロットが作成されますが、時間レンジ・ウィ

ンドウに配置されている左右の時間レンジ境界を、マウスで移動することにより表示領域を指

定・変更することが可能です。選択した時間レンジをマウスでドラッグすると指定された領域の

幅で、表示が変化します。

dtetfT

dtetfT

nFntj

m Tm

m

ntj

T

00

)(2

)(2

)(

mmm btatf )(

mm btf )(

Page 83: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

81

PLECS シミュレーション・パラメータ

(使用環境:PLECS Version 3.3日本語 OS:Windows)

PLECS Blockset ソルバ設定パラメータ

「PLECS Blockset」は、MATLAB/SimulinkのToolboxですので、シミュレーションの実行には、

Simulinkソルバを使用します。ここで、PLECS Blocksetの回路ブロックは、以下に示すように、

SimulinkのS-Functionとして処理されます。

PLECS Blocksetにはソルバの詳細設定として、Simulinkソルバのコンフィグレーションパラメー

タとは異なる、独自のシミュレーション・パラメータが実装されています。

PLECS Blocksetのシミュレーション・パラメータを設定するには、

ファイルメニュー → シミュレーション → PLECS回路パラメータ… を選択(クリック)し、

シミュレーション・パラメータ・ウインドウを起動します。

Page 84: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

82

「モデルタブ」の「回路モデルオプション」では以下の項目を設定します。

ダイオード ターンオン電圧閾値: 半導体スイッチのターンオン閾値(しきい値)電圧を設定

します。

回路内で用いられているダイオード、サイリスタ、GTO等の半導体スイッチのターンオン閾値

(しきい値)電圧を設定(グローバル)します。スイッチに生じる電圧が、順電圧(Vf)およ

びターンオン閾値(しきい値)電圧の合計値を超えた時点でスイッチはターンオンされます。(デ

フォルトパラメータ値: 1e-3)

大半の問題ではターンオン閾値(しきい値)電圧は「0」に設定することが可能ですが、整流器

のバウンシングを防ぐ目的で、このパラメータが必要となる場合があります(パラメータ入力

値:小さな正の整数)。バウンシングは、スイッチの開閉指令が、絶え間なく断続的にスイッチ

に入力されるような、複雑なスイッチの作動状態によって発生します。このような状態は、回路

に多数の半導体スイッチが用いられた、スティッフ・システム(Stiff System)に多くみられます。

注:

ダイオードターンオン電圧閾値(しきい値)は、素子導通時の電圧降下と等価ではありません。

閾値(しきい値)は素子がターンオンした瞬間のみ適用されます。素子導通時の電圧降下は、素

子のパラメータ設定値、順電圧:Vf またはオン抵抗:Ron で定義可能です。

タイプ: プルダウン・メニューから、「連続空間」または「離散空間」によるシミュレーショ

ンを選択します。状態空間の詳細「PLECSの動作原理」を参照して下さい。

連続状態空間

連続状態空間が選択された場合、PLECS BlocksetはSimulinkのODEソルバを用いて、常微分方程

式および状態変数の積分を解きます。ここで、PLECSに実装されているスイッチ・マネージャは、

SimulinkのODEソルバを参照し、正確なスイッチング指令を出力します。これはSimulinkのゼロ

クロッシング検出機能によって実現するため、「連続状態空間」を選択した場合は「可変ステッ

プソルバ」のみが対応可能になります。

SimulinkのODEソルバを選択する基準として、通常は、Simulinkのデフォルトソルバ「ode45」が

推奨されます。ただし、特定の回路要素(例:ダイオード逆回復モデル等)または回路トポロジ

ー(コイルと直列に抵抗値の大きな抵抗器を配置する等)によりスティッフ(Stiff)な系となる

問題では、「ode15s」または、「ode23tb」といったStiffソルバの利用を推奨します。

離散状態空間

離散状態空間が選択された場合、PLECS Blockset は回路モデルを固定タイムステップによる離散

状態空間モデルへ変換します。ここで、その他の連続状態変数は、前進オイラー法(Forward Euler

method)によって更新されます。

Page 85: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

83

t

離散空間オプションでは以下の項目を設定します 。

サンプリング時間: Simulink が参照するサンプルレート(時間刻み)を設定します。

「auto」または「-1」が入力された場合は、Simulink ソルバのサンプル時間が適用されます。

リファインファクター: PLECS Blockset が使用する離散状態空間方程式の内部ステップを制御

します。

離散状態空間方程式の離散タイムステップ は、サンプリング時間にリファインファクターを

乗じて算出されます。リファインファクターは正の整数で定義されます(デフォルト値:1)。

リファインファクターに「1」以上の値を用いた場合、動的システムの離散制御に適した、高速

なサンプル時間を使用することが可能になります。

ゼロクロッシング ステップサイズ: PLECS Blockset のスイッチ・マネージャが参照するステ

ップサイズを設定します。

PLECS Blockset のスイッチ・マネージャが、Simulink のゼロクロッシングをサンプリングできな

い状況(通常、電流または電圧値)を検知した場合、ゼロクロッシング・ステップサイズによっ

て設定された適切なステップサイズによってスイッチの開閉を制御します(デフォルト値:1e-9)。

許容誤差(相対および絶対): エラーによる許容誤差を指定します。

スイッチング後に生じる状態変数のエラー確認に使用します。

(デフォルト値:相対許容誤差 1e-3、絶対許容誤差 1e-6)。

注:

離散空間法は、タスティン法が代数ループを導出するため、非線形直接フィードバックを含む回

路では使用することができません。これは、例えば、誘導機(飽和なし)を用いることによって

確認できます。

離散空間で、誘導機を用いたシミュレーションを実行する場合は、「可飽和誘導機」を使用して

下さい。「可飽和誘導機」は、非線形フィードバックのパス上に「積分器」ブロックが含まれて

いるため、代数ループを回避できます。

Page 86: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

84

「ソルバ診断タブ」では以下の項目を設定します。

ゼロクロッシングの無効化: Simulinkのゼロクロッシング検出機能選択による、「警告」また

は、「エラー」を表示します。

Simulinkソルバのコンフィグレーションパラメータ設定項目「ゼロクロッシングコントロール」

で設定されたゼロクロッシング検出機能の選択により、PLECS Blocksetから「警告メッセージ」

または「エラーメッセージ」が出力されるようプルダウン・メニューより「警告」または「エラ

ー」を選択します。

注:PLECS BlocksetでSimulinkの可変ステップソルバを使用する際、ゼロクロッシング検出機能

が「有効」に設定されていないと、正確なシミュレーション結果が得られない場合があります。

負のスイッチング損失: 損失シミュレーションにおいて、負のスイッチング損失が生じた場合、

「切捨て」、「警告および切り捨て」、「エラー」のいずれかを表示します。

PLECS Blocksetで損失シミュレーションを実行する際、使用する熱設定ファイルの入力値によっ

ては、負のスイッチング損失が生じる場合があります。そのような状況を避けるためプルダウ

ン・メニューより「切捨て」、「警告および切り捨て」、「エラー」を選択します。

注:熱設定ファイルの各損失テーブルは、線形外挿によって補間されるため、動作温度・電流・

電圧値等が、回路で用いられるデバイスモデルと著しく異なる場合、スイッチング損失は「負」

と定義されます。この場合、正確なシミュレーション結果が得られない場合があります。

Page 87: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

85

「アドバンスド」では以下の項目を設定します。

Real-Time Workshop ラピッドシミュレーションターゲット(rsim)用 回路パラメータ:

SimulinkのReal-Time Workshop用(ラピッドプロトタイピング対応)回路パラメータを出力しま

す。このパラメータをアクティブにすると、リアルタイム・シミュレーション用Cコードを自動

で生成します。(Cコードの出力にはReal-Time Workshopが必要です)

PLECS Standalone ソルバ設定パラメータ

「PLECS Standalone」は、独自開発ソルバを使用し、シミュレーションを実行します。ここで、

PLECS Standalone回路ブロックのソルバ処理を、以下に示す概念図で示します。

PLECS Standaloneのシミュレーション・パラメータを設定するには、

ファイルメニュー → シミュレーション → シミュレーション・パラメータ…

を選択(クリック)、またはキーボードで「Ctrl + E」をタイプして、シミュレーション・パラメータ・ウ

インドウを起動します。

Page 88: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

86

シミュレーション時間: 「開始時間」は、シミュレーション時間変数「t」の初期値である、

シミュレーション開始時間を指定します(単位:秒)。ブロックモデルで入力されるシミュレー

ション時間の初期値パラメータは「開始時間」で定義された値と合致している必要があります。

「終了時間」は、シミュレーション時間変数「t」の、シミュレーション終了時間を指定します

(単位:秒)。指定された「終了時間」で、計算が停止します。

ソルバ: PLECS Standalone は、独自ソルバを実装しており、固定/可変タイムステップソルバ

を選択するパラメータが用意されています。

「固定タイムステップソルバ」は、シミュレーション時間内で、常に一定の時間刻み幅(一定の

時間増分)で計算を実行します。ユーザーは、任意の時間刻みを設定することが可能ですが、「解

の精度」と「計算時間」は、トレードオフになるので、バランスの良い時間刻み幅を検討・指定

する必要があります。

「可変タイムステップソルバ」は、シミュレーションモデルの動的特性に依存し、時間刻み幅を、

自動調整して計算を実行します。モデルの状態が急激に変化する状況では、解の精度を保持する

ため、時間刻み幅は、より小さく調整されますが、モデルの状態変化が緩やかな状況では、不要

な計算を省くため、時間刻み幅は、より大きく調整されます。また、不連続状態を含むモデルで、

正確なシミュレーション結果を得るために、時間刻み幅を調整することも可能です。

上記より、通常のシミュレーションでは、可変タイムステップソルバの使用する事を推奨します。

《 DOPRI(non-stiff)ソルバ 》

「Dormand-Prince 法:5次のルンゲクッタ(Runge-Kutta)陽解法」を採用した可変タイムステッ

プソルバです。デフォルト・ソルバであり、「non-stiff」なシステムに対し、最も効率の良いソ

ルバです。

大まかに定義すると、異なる時定数により構成されるシステムは、「stiff」なシステムと考えら

れます。そのようなシステムに対し、「non-stiff ソルバ」を適用すると、過度に小さな時間刻

みが与えられてしまい、計算時間が増加してしまいます。PLECS Standaloneに採用されている、

DOPRIソルバは、システム内の「stiff」な条件を検出し、計算を中止します。この際、「stiff ソ

ルバ」への変更を促す警告ウインドウが表示されます。

《 RADAU(stiff)ソルバ 》

「RadauⅡa 法:3段5次のルンゲクッタ(Runge-Kutta)完全陰解法」を採用した可変タイムステ

ップソルバです。「stiff」なシステムに対し、最も効率の良いソルバです。「non-stiff」なシステ

ムへも適用可能ですが、DOPRIソルバの方が計算効率は優れています。

《 離散ソルバ 》

全ての微分方程式を精度良く解くことはできませんが、一定の時間増分で、シミュレーションを

実行可能な固定タイムステップソルバです。このソルバが選択された場合、PLECS Standalone

は、「PLECS の動作原理」に記載された内容に従って、物理モデルの線形状態空間方程式を離

散化します。その他の連続状態変数は前進オイラー法(Forward Euler method)を用いて更新

されます。シミュレーションステップ内で発生する、「イベント」および「不連続」は、線形内

挿法(linear interpolation method)によって算出されます。

Page 89: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

87

ソルバタブ:ソルバオプション(可変ステップ)

最大時間刻み幅: 計算上、ソルバが自動で設定可能な、最も大きな時間刻み幅を指定します。

必要以上に小さな時間刻み幅を指定すると、計算時間が増加します。ソルバがシミュレーション

ステップ内で発生したイベントを検出できていない場合のみ、時間刻み幅を小さく変更して下さ

い。Scope から出力される線分の解像度を上げたい場合は、リファインファクターを変更して下

さい(デフォルト値:1e-3)。

初期時間刻み幅: ソルバの数値積分計算開始時に適用される時間刻み幅です。デフォルト設定

である「auto」を適用した場合、初期状態の導関数によって、初期の時間刻み幅は指定されます。

ソルバが計算開始時で発生したイベントを検出できていない場合のみ、時間刻み幅を小さく変更

して下さい(デフォルト値:auto)。

許容誤差(相対/絶対): 下記式に従い、局所的数値積分エラーによる相対または絶対許容誤

差を、個別に指定します(デフォルト値:相対許容誤差=1e-3、絶対許容誤差=auto)。

erri ≤ rtol·|xi| + atoli

ソルバは、全てのエラーが許容値内に収まった場合にのみ、数値積分ステップを進め、エラーが

許容値を超えた場合は、数値積分ステップを中止し、より小さな積分ステップを適用し、再度、

計算を実行します。絶対許容誤差のデフォルト値「auto」を適用した場合、発生する最大許容

誤差に基づいて、それぞれの状態変数における絶対許容値を個別に更新します。

リファインファクター: 高解像度の結果を出力するため、通常の出力結果に、内部的に出力点

を追加します。全ての数値積分ステップにおいて、ソルバは高次多項式による内挿を用いて、連

続状態の、中間ステップ(r-1)を算出します。このパラメータを適用することで、小さな「最

大時間刻み幅」を使用することなく、高解像度な計算結果を出力することが可能になります。

ダイオード ターンオン電圧閾値: 半導体スイッチのターンオン閾値(しきい値)電圧を設定

します。(デフォルトパラメータ値:0)

Page 90: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

88

ソルバタブ:ソルバオプション(固定ステップ)

固定ステップ刻み幅: ソルバの固定(一定増分)時間刻み幅を指定します。また、このパラメ

ータによって、物理モデルの状態空間離散化で用いるサンプリングタイムも指定されます。

回路モデルオプション: 「PLECS Blockset パラメータ」の「離散化オプション」項を参照し

て下さい。

初期化タブ:初期化オプション

初期化タブではシミュレーション開始時の初期条件を指定します。

Page 91: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

89

システム状態は、以下の3つの値により構成されます。

・ 物理保存要素の値(例:インダクタ、キャパシタ、熱キャパシタ等)

・ スイッチング要素によって構成される導通状態(例:理想スイッチ、ダイオード等)

・ 制御要素によって構成される連続/非連続状態変数値(例:積分器、伝達関数、遅延信号等)

初期化条件:

ブロックのパラメータ使用

このオプションが選択された場合、状態変数はそれぞれの回路要素パラメータに定義された物理

定数によって定義されます(デフォルト設定)。

保存されたシステム状態

このオプションが選択された場合、状態変数は保存されたシステム状態によって初期化されます。

それぞれの回路要素に定義されたパラメータは無視されます。保存されたシステム状態が存在し

ない場合は、このオプションは無効になります。

現在の状態を保存…

過渡(非定常)解析もしくは定常解析を実行した後に、このボタンを押すと、コメントおよび保

存日時を含め、システムの状態(解析結果)を保存されます。ファイルを保存すると、保存され

たシステムの状態(解析結果)も保存されるため、次回以降のシミュレーションでも利用するこ

とが可能になります。

注:保存したファイルに、連続/非連続の状態変数を有する回路要素の追加/削除を行うと、保存

されたシステムの状態(解析結果)は無効になります。

モデル初期化コマンド: コマンド入力を用いてモデル全体に、シミュレーション開始時に適用

される初期条件を設定します。MATLABで使用可能な関数コマンドおよび数式を用いて任意の初期

条件を設定することが可能です。

Page 92: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

90

PLECSの損失シミュレーション(熱解析モデリング) 近年のパワエレ・システムではモジュールのコンパクト化、およびエネルギー密度の向上により、

パワー半導体からの発熱をマネジメントすることが、重要な比重を占めています。

PLECSはパワエレ回路の設計初期段階における熱対策として、熱等価回路を電気回路上で用いる

ことによって、電源回路またはモータ駆動回路といった各使用用途に応じた、パワー回路に採用

される半導体の仕様を検討することが可能です。

PLECS ヒートシンク

(使用環境:PLECS Version 3.3)

PLECSの熱等価回路を使用する際、最も重要になる熱解析用コンポーネントは、下図で透過色(青)

に示される「理想ヒートシンク」です。ヒートシンクはヒートシンクで囲まれた領域内の回路要

素に発生した損失エネルギーを全て吸収し、同時に熱等価回路として、回路内に発生した熱を各

回路要素に伝播します。

ヒートシンクから他のヒートシンク、または外部雰囲気温度への熱伝達は集中定数素子として定

義される熱等価 RC 要素を介してモデリングされます。

Page 93: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

91

ヒートシンクの実装

全てのヒートシンクは個別に指定可能な、基準温度に対する熱容量が定義されます。全ての熱損

失(熱流)はヒートシンクに定義された熱容量に吸収され、ヒートシンクは発熱します。外部雰

囲気温度との熱交換は、ヒートシンクに設けられた外部接続ポートを介して実行されます。

ヒートシンクの熱容量を「0(J/K)」に設定することも可能ですが、この場合、ヒートシンクを

外部の熱容量ブロックもしくは、定常温度ブロック(接地条件)または、可変温度ブロック(接

地条件)といった、固定された温度条件に接続する必要があります。

PLECS 熱損失

(使用環境:PLECS Version 3.3)

パワエレ回路内で熱損失を生じる回路要素は、2 つの要素に分類されます。ひとつは半導体スイ

ッチ(パワー半導体)であり、もうひとつは抵抗になります。

半導体の損失

半導体素子が本来備えている非理想的な物理特性によって、パワー半導体には損失が生じます。

この損失は、導通損失およびスイッチング損失に分類されます。厳密に定義するならば、パワー

半導体の漏れ電流阻止に対する損失も、これに含まれますが、通常、この損失は無視されます。

PLECS ではパワー半導体の損失特性を、テーブル入力(2 次元および 3 次元)によって生成され

る「熱設定ファイル」によって定義し、各スイッチング素子は、シミュレーションを実行する際

に、この熱設定ファイルを参照し、損失を算出します。

導通損失

パワー半導体の導通損失は、デバイスに生じる電圧値と電流値を乗算することによって算出する

ことが可能です。デフォルトではデバイスのオン時に生じる電圧を、半導体素子のパラメータを

用いて、下記式により算出します。

v = Vf + Ron ・i

ここで、Vf:順電圧、Ron:オン抵抗、i:デバイスに生じる電流値 となります。

したがって、半導体素子に順電圧、オン抵抗を入力することによっても導通損失は算出されます。

PLECS は、デバイスに生じる温度および電流の任意の関数:v = Von +(i,T)として、デバ

イスのオン時に生じる電圧を定義することが可能です。この関数は、PLECS の熱設定 GUI に

実装されている「導通損失タブ」にて、2 次元テーブルに各数値(電流・電圧・温度)を入力す

ることにより定義されます。

Page 94: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

92

ここで、各電流・温度値に対する、電圧指定値を「0(V)」とした場合は、導通損失が生じない

設定となります。熱設定 GUI にて、上記のテーブル入力により、関数の定義がおこなわれなか

った場合は、各デバイスで設定されたパラメータにより算出される導通損失がデフォルト値とし

て、適用されます。

*注 PLECS のスイッチング素子は基本的に、理想スイッチに基づいて設計されているため、

熱設定ファイルのパラメータ定義による熱損失は、実際にデバイスで消散される電力損失とは

異なります。

Page 95: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

93

スイッチング損失

パワー半導体デバイスのスイッチング損失は、スイッチング時の、「ターン・オンからターン・

オフ」、「ターン・オフからターン・オン」に切り替わる、非常に小さな時間刻み(時定数:n

秒)の非定常現象として、デバイスに生じます。デバイスがスイッチングしている、この短い間

に、非常に大きな電流・電圧がデバイスを流れ、これにより、瞬間的に電力損失が生じることに

なります。

デバイス(IGBT)のスイッチングによる出力波形を下図に示します。

図中に示される各ラインは、スイッチング 1 周期分の電圧(Vce)、電流(ic)スイッチング損失

(E)の簡略化された出力結果です。

デバイスシミュレータ等で、このようなスイッチング損失をシミュレーションする場合は、正確

な物理モデル、および多くの詳細なパラメータ設定が必要となり、正確なシミュレーション結果

を得る事が、非常に困難な場合が多々あります。さらに、数百 n 秒のオーダーでスイッチング

するデバイスを正確にモデリングするためには、シミュレーションは、非常に小さな時間刻みに

よって実行される必要があります。

PLECS では、このような計算上の問題を避けるため、デバイスのオン/オフ前後の電流・電圧値、

およびデバイスのジャンクション温度によって定義されるスイッチング損失に、下記関数を適用

して、デバイスから生じる全体の損失を算出します。

E = Eon (vblock, ion, T)、E = Eoff (vblock, ion, T)

この関数は、PLECS の熱設定 GUI に実装されている「ターン・オン/オフ損失タブ」にて、3

次元テーブルに各数値(電流・電圧・温度・スイッチング損失)を入力することにより定義され

ます。

ここで、各電流・電圧値に対する、スイッチング損失指定値を「0(J)」とした場合は、スイッ

チング損失が生じない設定となります。

オン損失 オフ損失

Page 96: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

94

*注 PLECS のスイッチング素子は基本的に、理想スイッチに基づいて設計されているため、

熱設定ファイルのパラメータ定義による熱損失は、実際にデバイスで消散される電力損失とは

異なります。

熱損失ファイルを適用可能なコンポーネント

ダイオード(理想モデル)、サイリスタ(理想モデル)、GTO、GTO(ダイオード)、IGBT(理想モ

デル)、IGBT(ダイオード)、IGCT、IGCT(ダイオード)、MOSFET(理想モデル)、MOSFET(ダイオ

ード)、TRIAC、SRスイッチ

他にも、サブシステム化した任意の PLECS 回路ブロックに熱設定を入力することも可能です。

抵抗による損失

抵抗による損失は、オームの法則により求まる解:i 2・R = v

2/R として算出されます。

抵抗による損失を適用可能なコンポーネント

抵抗器、直列コイル、可変直列コイル、並列コンデンサ、可変並列コンデンサ

Page 97: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

95

PLECS ヒートシンクとサブシステムの設定

(使用環境:PLECS Version 3.3)

PLECS のサブシステム上にヒートシンク等を作成した場合、シートシンクはサブシステムに構

成された熱等価回路の全ての熱損失を吸収し、上位の回路へ伝達しますが、特殊な条件を与えた

サブシステムでは、異なる設定条件を与える方が適切な場合があります。

サブシステム上の熱等価回路に複数の「ヒートシンク」と、「雰囲気:Ambient」コンポーネント

が配置された場合、上位回路への熱伝達が、正しくモデリングされない場合があります。(雰囲

気コンポーネントはサブシステムに配置された熱等価回路から出力される損失を、上位回路へ伝

達します。)

上図は「ダイオード(逆回復モデル)」コンポーネントのサブシステムとなります。熱等価回路

のデフォルト設定では、このサブシステム内から生じる損失エネルギーは、3 つの抵抗器から出

力される抵抗損と、理想ダイオードから出力される導通損失のみとなります。電流源に入力され

る逆回復電流から生じる損失は、電流源(電圧源)に損失が発生しないという理由により、無視

されます。しかしながら、回路に生じる電力損失を検討するには、逆回復電流の損失も考慮する

必要があるため、このサブシステムでは可変熱流コンポーネントを用いて、電力損失エネルギー

を熱損失エネルギーへ変換し出力しています。具体的には、電力損失を熱損失に変換するため、

デバイス内に生じる電流・電圧値を、電流計および電圧計から検出し、それらの値を関数ブロッ

クへ入力(乗算)し、電力損失エネルギー(W:ワット)として、最終的に可変熱流ブロックへ

入力されます。

Page 98: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

96

PLECS 熱損失パラメータ

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS に実装されている大半のスイッチング素子には、熱損失設定を適用することができます。

熱設定は以下の 2 通りの手法によって設定することが可能です。

「熱設定ファイルエディタ」により各損失テーブルを入力し、スイッチング素子に適用する。

熱設定用パラメータとして、参照変数を、熱設定用マスクパラメータまたは MATLAB ワー

クスペースに定義する。

熱設定ファイルの適用

スイッチング素子へ熱設定ファイルを定義するには、コンポーネントパラメータの熱設定項目に

用意されている、熱設定用プルダウン・メニューの「ライブラリから読込み…」から、目的の熱

設定ファイルを選択します。PLECS は、選択したスイッチング素子に利用可能な熱設定ファイ

ル以外を表示しません。例えば、選択しているスイッチング素子がサイリスタであれば、熱設定

ライブラリに格納されている、サイリスタ用に設定された熱設定ファイルのみが、選択可能なフ

ァイルとして表示されます。

したがって、選択されたスイッチング素子用熱設定ファイルが熱設定ライブラリに用意されてい

ない場合は、熱設定ファイルを定義する必要があります。ただし、サブシステム化された素子ブ

ロックでは、選択されているスイッチング素子の種類に関わらず、全ての熱設定ファイルが適用

可能です。

熱設定用参照変数の適用

熱設定用参照変数を定義するには、コンポーネントパラメータの熱設定項目に用意されている、

熱設定用プルダウン・メニューの「直接入力」を選択し、ファイル名を直接入力し、指定します。

熱設定用参照変数は MATLAB ワークスペースまたは、サブシステムの熱設定用マスクパラメー

タに定義されます。MATLAB ワークスペースに熱設定用参照変数を定義する場合、熱設定ファ

イルの名前(パス)、または熱損失データの MATLAB コマンドを指定する必要があります。

クリック!

Page 99: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

97

参照用熱設定ファイル

熱設定用参照変数として、熱設定ファイルを選択する場合、熱設定用プルダウン・メニューの「直

接入力」を選択し、ファイルが格納されている場所の絶対パスも含めたファイル名を直接入力し、

指定します。

例:thlosses = ’file:C:/Thermal/Vendor/mydiode.xml’

または、熱設定サーチパスによって指定された熱設定ライブラリに格納されている熱設定ファイ

ルを指定する場合は、熱設定ファイルの拡張子名(*.xml)を含めない相対パスを指定します。

例:熱設定サーチパスにて「C:/Thermal/」を熱設定ライブラリと指定

thlosses = ’file: Vendor/mydiode’

MATLABワークスペース参照用熱損失コマンド

PLECS は熱設定用参照変数として、Von、Eon、Eoff または CauerChain といった熱損失のデータ

を、MATLAB コマンドラインにて指定することが可能です。

Von スイッチング素子の順電圧降下を 2 次元参照テーブルによって入力します。入力値は、i

(電流値)、T(ジャンクション温度)、および、i、T の各値に対応する v(電圧)の行列によっ

て定義されます。

Eon、Eoff スイッチング素子のターンオン・オフ損失を 3 次元参照テーブルによって入力しま

す。入力値は、i(電流値)、T(ジャンクション温度)、v(電圧)および、i、T、v の各値に対

応する E(スイッチング損失)の配列によって定義されます。

CauerChain 熱等価 RC モデル用コマンド構文です。要素の配列は、R(熱抵抗)と C(熱容

量)で同じ長さに指定する必要があります。

各参照テーブルの入力値が、定義された変数に対応していない場合は、インデックス・ベクトル

が、省略されることがあります。出力されるテーブルの次元数は、インデックス・ベクトルの数

に対応した次元でなければいけません。インデックス・ベクトルが定義されない場合は、出力さ

れるテーブルはスカラ値として処理されます。

コマンドラインよって定義された熱設定参照変数は、熱設定用プルダウン・メニューの「直接入

力」を選択し、MATLAB ワークスペースに定義された変数名を直接入力することによって、指

定します。

Page 100: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

98

各コマンドの記述例

von.i = [0 5 15 35 50]; von.T = [25 125]; von.v = [[0.8 1.3 1.7 2.3 2.7]' [0.6 1.1 1.6 2.6 3.2]'];

eon.v = [0 200 300]; eon.i = [0 13 23 32 50]; eon.T = [25 125];

eon.E = 1e-3 * ... [0.000 0.000 0.000 0.000 0.000 0.000 0.167 0.333 0.500 1.333 0.000 0.250 0.500 0.750 1.700];

eon.E(:,:,2) = 1e-3 * ... [0.000 0.000 0.000 0.000 0.000 0.000 0.333 0.667 1.000 2.267 0.000 0.500 1.000 1.500 3.400];

cc.C = [0.95 2.4]; cc.R = [0.118 0.172];

thLosses = struct('Von', von, 'Eon', eon, 'Eoff', 0, ...

'CauerChain', cc);

PLECS Blockset では MATLAB ワークスペース変数として、熱設定ファイルをコマンドライン

によって、変換することも可能です。

Page 101: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

99

PLECS 熱設定ライブラリ

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSはスイッチング素子の損失特性を指定するため、熱設定ファイルを使用します。熱設定フ

ァイルは熱設定ファイルエディタGUIにて作成・修正され、熱設定ライブラリに保存されます。

熱設定ライブラリに保存された熱設定ファイルは、その他のPLECSモデルでも利用することが可

能になります。PLECSは熱等価回路で用いるスイッチング素子用熱設定ファイルに、半導体製造

企業から供給される特定のデータシートによるパラメータ設定をおこなうことによって、理想ス

イッチによる電気回路シミュレーションと熱シミュレーションを組み合わせ、効率良く熱損失を

算出します。

熱設定ライブラリの構成

PLECSの熱設定ライブラリは、熱設定ファイルが格納されているフォルダを階層的に構成し、ユ

ーザーは、それぞれのフォルダに格納されている熱設定ファイルを選択して使用します。

熱設定ライブラリを定義するためには、PLECS 設定 GUI の「熱設定サーチパス」に熱設定ファ

イルを保存しているフォルダを登録する必要があります。熱設定ライブラリは、複数のフォルダ

を登録可能で、登録されたフォルダ全てがルートフォルダとなり、ルートフォルダ以下に、ツリ

ー構造で構成されるサブフォルダを参照可能になります。LAN 内の共有フォルダを熱設定サー

チパスに登録することも可能ですので、熱設定ファイルを PLECS ユーザー間で共有することが

できます。

PLECS は起動時に熱設定サーチパスに登録された全てのルートパスを検索し、格納された熱設

定ファイル(*.xml)の重複を確認し、熱設定ライブラリのフォルダツリーを構成します。PLECS

を起動した後に、熱設定ライブラリのフォルダ構成を手動で変更したい場合は、PLECS 設定 GUI

の「熱設定サーチパス」にて「再検索」ボタンをクリックすることによって、新しいライブラリ

構成が適用されます。「熱設定サーチパス」に登録されたフォルダに、新規熱設定ファイルを保

存した場合は、自動的に登録内容が更新されます。

熱設定ライブラリの一般的なフォルダ構成としては、半導体製造会社名をサブフォルダに設定し、

その中に、ダイオード、サイリスタといった各スイッチング素子フォルダを作成し、熱設定ファ

イル名(*.xml)を素子品番名にします。

複数フォルダの登録が可能

登録条件を手動で更新

Page 102: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

100

個別熱設定ファイルの設定

PLECS は熱設定ライブラリに登録された熱設定ファイル以外にも、モデル個別に保存された熱

設定ファイルを使用することが可能です。これにより、熱設定サーチパスを変更することなく、

他の PLECS ユーザーとシミュレーションモデルを共有できます。個別熱設定ファイルを設定す

るには、熱設定ファイル(*.xml)を保存するフォルダを、Simulink/PLECS モデルファイル(*.mdl

*.plecs)と同じ場所に作成し、フォルダ名を、Simulink モデルファイルから拡張子を取り除き、

「_plecs」を付け加えた名称に変更します。

例:Simulink モデルファイル名 = plThermal.mdl

PLECS ファイル名 = plThermal.plecs

熱設定ファイル保存フォルダ名 = plThermal_plecs

これにより、熱設定ライブラリに登録されていない熱設定ファイルを、プルダウン・メニューか

ら選択可能になります。

熱設定ライブラリに個別熱設定ファイルと同一名称のファイルが存在する場合は、個別熱設定フ

ァイルが適用されます。

熱設定ファイルの新規作成

熱設定ファイルを新規に作成するには、

ファイルメニュー → 新規作成 → 熱設定 を選択(クリック)します。

または、選択したスイッチング素子の熱設定プルダウン・メニューから新規熱設定を選択します。

新規作成された熱設定ファイルは、必ず「熱設定サーチパス」によって指定された、熱設定ライ

ブラリフォルダ内に保存して下さい。

*注 熱設定ライブラリフォルダ以外の場所に熱設定ファイルが保存された場合は、スイッチン

グ素子で利用することができません。

以前のバージョン(PLECS 1.x)にて作成された熱設定ファイルは、「コマンドライン」を用い

てインポート可能です。

クリック!

Page 103: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

101

PLECS 熱設定ファイルエディタ

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSの熱設定ファイルエディタは、熱設定ファイルの新規作成、または既存熱設定ファイルの、

確認・修正の用途で使用されます。

熱設定ファイルエディタは、

ファイルメニュー → 新規作成 → 熱設定 を選択(クリック)すると起動します。

また、PLECSには熱設定ライブラリに保存されている既存の熱設定ファイルを一括で確認・修正

するためのツールとして、「熱設定ライブラリブラウザ」も実装されています。

熱設定ライブラリブラウザは、

ファイルメニュー → 表示 → 熱設定ライブラリブラウザ を選択(クリック)すると起動

します。

熱設定ファイルエディタはスイッチング素子のスイッチング損失、導通損失および熱等価RCモ

デルを定義します。

熱設定ファイルエディタには、パワー半導体の「製造メーカー」、「パーツナンバー」、「タイ

プ(プルダウン・メニュー)」を入力するダイアログボックスが実装されています。ここで、パ

ワー半導体の種類を「タイプ(プルダウン・メニュー)」により指定することによって、特定の

スイッチング素子のみに適用可能な熱設定ファイルとなります。

例:プルダウン・メニューで IGBT を指定すると IGBT 以外のスイッチング素子では使用できま

せん。

Page 104: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

102

スイッチング損失の設定

スイッチング損失は、「ターンオン損失/ターンオフ損失タブ」の 3 次元参照テーブルにて定義

されます。パワー半導体のスイッチング損失エネルギーはスイッチング前後の電流・電圧および、

ジャンクション温度に依存します。PLECS では、デバイスから発生するスイッチング損失を、

参照テーブルに電流・電圧・ジャンクション温度の新しい入力値を追加・削除する場合は、ファ

イルメニューの編集から選択、もしくは GUI 画面上(3D グラフもしくは入力テーブル)でマウ

スを右クリックすると追加・削除入力項目が表示されますので、こちらから必要な項目を選択し

て下さい。

3 次元表示された入力値グラフは、マウスの左クリックでドラッグすると、表示角度を変更(回

転)することが可能です。

クリック!

右クリック!

左クリック!

Page 105: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

103

導通損失の設定

導通損失は、「導通損失タブ」の 2 次元参照テーブルにて定義されます。パワー半導体の順方向

電圧降下はデバイスの電流および、ジャンクション温度に依存します。PLECS は、パワー半導

体の順方向電圧降下を、参照テーブルに入力された各値を線形補間することによって算出します。

参照テーブルに電流・ジャンクション温度の新しい入力値を追加・削除する場合は、ファイルメ

ニューの編集から選択、もしくは GUI 画面上(2D グラフもしくは入力テーブル)でマウスを右

クリックすると追加・削除入力項目が表示されますので、こちらから必要な項目を選択して下さ

い。

熱インピーダンス(熱等価回路)の設定

熱インピーダンスは、パワー半導体のジャンクションからケースまでの、物理的な熱伝達を熱等

価 RC モデル(集中定数モデル)によって記述します。熱インピーダンスは、熱抵抗および熱容

量の入力によって構成されます。熱インピーダンスの入力項目は、「熱インピーダンスタブ」に

表示されます。熱等価 RC モデルは、Cauer もしくは Foster の式によって定義されます(プルダ

ウン・メニュー)。

タイプ!

クリック!

右クリック!

Page 106: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

104

熱等価 RCモデル:Cauerタイプ

Cauer タイプの熱等価 RC モデルは下図のようにモデリングされます。熱設定ファイルエディタ

では、要素数:n、熱抵抗:Ri、熱容量:Ciを入力します。

熱等価 RCモデル:Fosterタイプ

Fosterタイプの熱等価 RCモデルは下図のようにモデリングされます。熱設定ファイルエディタ

では、要素数:n、熱抵抗:Ri、熱容量:τiを入力します。

Fosterタイプの熱インピーダンス入力テーブルに実装されている、「Cauer法に変換」のボタン

をクリックすると、Fosterタイプの熱等価 RCモデルは、Cauerタイプの熱等価 RCモデルへ自動

変換されます。(変換後はタイプ・プルダウン・メニューにより表示を切替可能)

PLECS は内部的には、常に Cauer タイプの熱等価 RC モデルを用いて、熱伝達をモデリングしま

す。Foster タイプの熱等価 RC モデルは、シミュレーションを実行する際に、自動的に、Cauer

タイプの熱等価 RC モデルへ変換されます。厳密には、熱等価 RC モデル端部(例:上熱等価 RC

モデル図「Case」部)の温度が定常に設定される場合にのみ、正確に変換されます。この条件を

満たすため、実用的には、外部に接続される「ヒートシンク」等の熱容量は、熱等価 RC モデル

内で定義される熱容量より、大きな値を用いることを推奨します。

クリック!

Page 107: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

105

PLECS パワー半導体の損失定義

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

パワー半導体の各損失を定義する上で、最も注意しなければならないのは、デバイス電極の適切

な指定です。デバイスの電極が誤った方向に指定された場合は、パワー半導体には損失が生じな

い、もしくは、誤った損失を出力します。下図に単一の各パワー半導体素子における電極を示し

ます。

各パワー半導体素子の電流・電圧とも、図中上部が「正:+」となり、図中下部が「負:-」と

なります。

単一パワー半導体スイッチの損失

単一のパワー半導体スイッチに生じる電圧は「正:+」になります。したがって、スイッチング

損失および導通損失も、「正:+」の電圧値・「正:+」の電流値にて定義される必要がありま

す。

ダイオードの損失

典型的なダイオードのスイッチング時の出力波形は下図になります。

図からも明らかなように、ダイオードのターンオン損失は t = t1、ターンオン損失は t = t2に発生

します。これにより、PLECS はダイオードのスイッチング損失として、図中の各出力波形に点

で示される「負:-」の電圧値・「正:+」の電流値を用いて算出します。

したがって、熱設定ファイルエディタの、ダイオードのターンオン/オフ損失用参照テーブル入

力も「負:-」の電圧値・「正:+」の電流値にて定義される必要があります。

I ダイオード

V ダイオード

t1 t2

t

Page 108: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

106

また、ダイオードの導通損失は、ダイオードのターンオン時(t1 < t < t2)に発生します。こ

の間、ダイオードに生じる電流・電圧は「正:+」になります。したがって、熱設定ファイルエ

ディタの、ダイオードの導通損失用参照テーブル入力も「正:+」の電圧値・「正:+」の電流

値にて定義される必要があります。

還流ダイオード付きパワー半導体スイッチの損失

PLECS は、還流ダイオード付き IGBT 等の、ダイオードを内蔵したパワー半導体スイッチであ

っても、単一の熱設定ファイルによって、各半導体の損失特性を個別に入力することが可能です。

パワー半導体スイッチのスイッチング損失および導通損失は、「正:+」の電圧値・「正:+」

の電流値にて定義されます。

一方、スイッチに内蔵されたダイオードは、スイッチとは電極が反転するため、スイッチング損

失は「正:+」の電圧値・「負:-」の電流値、導通損失は「負:-」の電圧値・「負:-」の電

流値にて定義される必要があります。

熱設定ファイルエディタに表示される 3D グラフ(SW/導通損失)は下図になります。

パワー半導体スイッチ

スイッチング損失 (正:+)

ダイオード

スイッチング損失 (負:-)

スイッチング損失 入力例:

IGBT 電圧「正:+」 電流「正:+」

Diode 電圧「正:+」 電流「負:-」

Page 109: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

107

各パワー半導体の損失特性を入力する際の、入力値極性一覧を下表に示します。

各パワー半導体の損失テーブル入力極性

ダイオード スイッチ

ダイオードつきスイッチ

スイッチ ダイオード

電圧:V 電流:I 電圧:V 電流:I 電圧:V 電流:I 電圧:V 電流:I

導通損失 + + + + + + ― ―

SW 損失 ― + + + + + + ―

パワー半導体スイッチ

導通損失 (正:+)

ダイオード

導通損失 (負:-)

Page 110: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

108

PLECS 損失シミュレーションの適用

(使用環境:PLECS Blockset 3.3 日本語 OS:Windows)

シンプルなコンバータ回路に熱等価回路を適用し、スイッチング素子(ダイオード)に生じる損

失を検討します。この例題ファイルはPLECSデモに格納されています。デモでは、IGBTおよび

ダイオードに生じる損失を算出していますが、ここでは、損失シミュレーション用の基本的なパ

ラメータ設定を確認するため、IGBTはデモに含まれる既存熱設定ファイルを使用し、ダイオー

ドの熱設定ファイルのみを作成します。(ファイル名:plThermalを参照して下さい)

回路モデル

スイッチング素子として IGBT を用いた DC-DC 降圧コンバータ回路は、スイッチング周波数

10kHz で作動します。回路図を以下に示します・

電気回路 + 熱等価回路

PLECS で損失シミュレーションを実行するには、ヒートシンク、熱設定を入力したパワー半導

体素子、雰囲気温度が必要になります。熱等価回路と電気回路は、連成計算によって実行されま

すが、熱等価回路で使用するヒートシンク等の回路要素と、通常の電気回路で用いる回路要素で

は、モデリングされる物理領域が異なります。したがって、熱等価回路で用いられる熱物理量は、

PLECS によって、等価の電気物理量に変換されます。

ここで、熱等価回路の概念を説明するため、アナログ電気回路のシミュレーションモデルを取り

上げます。アナログ電気回路では、回路要素の損失は、電流源(理想モデル)によってモデリン

グされますが、PLECSの熱等価回路では、パワー半導体スイッチ等の回路要素と周辺空気との抵

抗を単一の熱抵抗(R)、熱容量(C)、または熱等価 RC モデルを用いてモデリングします。また、

アナログ回路の電圧計と同様の役割で、雰囲気温度が設定されます。

Page 111: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

109

熱等価回路概念図および PLECS で用いられる各単位を以下に示します。

熱等価回路 電気回路

温度(K) 電圧(V)

発熱(J) 電荷(C)

熱流(W) 電流(A)

熱容量(J/K) 電気容量(F)

熱抵抗(K/W) 電気抵抗(Ω)

熱等価回路のヒートシンクは、ヒートシンクで囲まれた領域に含まれる回路要素の、全ての損失

エネルギーを吸収し、熱を伝播します。したがって、一つのヒートシンクに含まれる、スイッチ

ング素子等の全ての回路要素は、同じ温度分布になります。PLECSではスイッチング損失エネル

ギーは、高さ:無限大、幅:0 のパルス信号(ディラック・パルス)でモデリングされるため、

スイッチング損失エネルギーによって引き起こされる、無限の発熱が熱抵抗上に生じるのを防止

する目的で、ヒートシンクの熱容量、または熱容量を定義した熱等価 RC モデルを定義する必要

があります。

損失シミュレーションモデルの設定

始めにコンバータ回路を作成します。コンバータ回路の基本的な作成手順は「PLECS による理

想スイッチを用いた DC-DC降圧コンバータの作成」を参照して下さい(入力パラメータ=R:5、

L:1.2e-3、C:100e-6、V:500)。IGBT を駆動するパルス信号は、Simulink の「Pulse Generator

ブロック」によって生成します(スイッチング周波数:10kHz、シミュレーション時間:0.02秒)。

さらに作成したコンバータ回路に、ヒートシンク等の熱シミュレーション用回路要素を配置しま

す。

雰囲気温度:25()

ヒートシンク熱容量:0.01(J/K)

ヒートシンクから雰囲気温度までの熱抵抗:0.29(K/W)

Page 112: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

110

ここでは、ダイオードの熱設定は行わず、IGBT の熱設定ファイルのみを用いて、ヒートシンク

に発生する発熱量を確認します(PLECS Probe使用)。

IGBT用熱設定ファイルは、「サンプルファイル:plThermal.mdl」を流用します。PLECS インスト

ールフォルダの demos フォルダ内、「plThermal_plecs」フォルダに熱設定ファイルは格納されて

いますので、これをコピーして使用して下さい。スイッチング素子の熱設定ファイル設定方法は、

「熱設定ライブラリ」を参照して下さい。

この段階では、ダイオードからは損失エネルギーが発生しません。ヒートシンクは IGBTに生じ

る損失エネルギーを吸収し発熱します。シミュレーション終了時のヒートシンク温度は「約 76」

となることが確認できます。

Page 113: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

111

ダイオードの損失テーブル設定

ダイオードの各損失パラメータを熱設定ファイルに入力します。熱設定ファイルの新規作成方法

は、「熱設定ライブラリ」を、熱設定ファイルの入力方法は「熱設定ファイルエディタ」参照し

て下さい。

入力用各損失パラメータ値を下表に示します。

上記パラメータを入力したダイオード用熱設定ファイルを下図に示します。

ダイオード ターン・オフ損失:25(エネルギー単位:mJ)

0A 5A 8A 10A 15A

-600V 0 0.18 0.21 0.26 0.27

-500V 0 0.14 0.17 0.2 0.21

0V 0 0 0 0 0

ダイオード ターン・オフ損失:125(エネルギー単位:mJ)

0A 5A 8A 10A 15A

-600V 0 0.4 0.53 0.66 0.78

-500V 0 0.34 0.44 0.55 0.62

0V 0 0 0 0 0

ダイオード 導通損失(入力単位:V)

0A 0.1A 0.8A 2.5A 4A 20A

25 0 0.6 1.14 1.53 1.73 2.75

120 0 0.36 0.67 0.94 1.11 2.11

Page 114: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

112

作成した熱設定ファイルを、コンバータ回路のダイオードに適用します。

さらに、熱等価回路の熱抵抗ブロックを熱等価 RCブロックへと変更し、ヒートシンクの熱容量

を変更します。

雰囲気温度:25()

ヒートシンク熱容量:0(J/K)

熱等価 RCブロック 熱抵抗:[0.118 0.172] (K/W)、熱容量:[0.95 2.4] (J/K)

シミュレーション時間を「1秒」へ変更し、シミュレーションを実行します。ヒートシンクは IGBT

とダイオードに生じる損失エネルギーを吸収し発熱します。シミュレーション終了時のヒートシ

ンク温度は「約 97」となることが確認できます。

Page 115: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

113

半導体デバイスのジャンクション温度解析

ここまでのシミュレーションでは、ヒートシンクの発熱のみを考慮してきましたが、半導体デバ

イスのジャンクション温度も同様に、非常に重要な解析項目です。PLECS は、半導体デバイス

のケース温度からジャンクション温度への熱伝達を、熱等価 RC に基づく、熱インピーダンスに

よってモデリングします。ここで、熱設定ファイルエディタの「熱インピーダンス」タブより、

熱インピーダンスの設定をダイオードに追加します。

熱インピーダンス R:0.5 (K/W)、C:0.001 (J/K)

「PLECS Probe」にダイオードをドラッグ&ドロップすると、コンポーネント信号表示項目に「ジ

ャンクション温度」が表示されますので、これを選択(出力)し PLECS Scopeにて確認します。

シミュレーション終了時のジャンクション温度は「約 152」となることが確認できます。

損失シミュレーション + 定常解析

上述のシミュレーション結果より、ヒートシンク熱容量等の熱等価回路パラメータを変更するこ

とによって、ヒートシンクの温度上昇が、緩やかになることが確認できます。この例題では、ス

イッチング素子からの発熱が定常状態となるまで、シミュレーション時間:約 10 秒程度が必要

になります。このように非常にシンプルなコンバータ回路であっても、時定数の違いにより、約

1 分程度(PC 性能に依存)の計算時間が必要となり、より複雑な回路モデルであれば、多くの

計算時間が必要になることが判ります。PLECS は、このような計算時間の問題を解決する解析

ツールとして、「定常解析」ブロックが実装されており、この機能を活用することによって、高

速にシステムの周期定常特性(定常動作点)を確認することが可能です。

ここで、コンバータ回路モデルに「steady-state analysis(定常解析)」ブロックを追加します。

定常動作点を求めるシステムの周期はスイッチング周波数と同じ、「10kHz」とし、出力表示され

る周期をシステム周期の「5周期分」とします。

Page 116: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

114

System period length(システム周期):1/10e3、Show steady-state cycles(表示定常周期):5

定常解析を実行すると、ヒートシンク温度は「約 115」、ジャンクション温度は「約 170」の

定常状態となることが確認できます。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 117: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

115

コンバータ回路のエネルギー損失

パワー半導体デバイスが搭載されたヒートシンクのエネルギー損失量確認は、回路設計者にとっ

て、設計回路の効率を評価するうえで、非常に重要な要素となります。PLECS には損失量を確

認するための熱等価回路要素「熱流計」ブロックが実装されています。「熱流計」ブロックを、

熱等価 RC ブロックと「雰囲気温度」ブロックの間に配置し、定常解析を実行して、ヒートシン

クから出力されるエネルギー損失を確認します。

定常解析を実行すると、ヒートシンクからの損失量は「約 309W」となることが確認できます。

Page 118: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

116

ダイオードのエネルギー損失

PLECS が出力する各損失値の単位はそれぞれ異なります(導通損失:W、スイッチング損失:J)。

したがって、個々のパワー半導体に生じるエネルギー損失量を確認するには、別途 Simulink に

て各損失値を合算するブロックを定義する必要があります。ダイオードのエネルギー損失を算出

する Simulink ブロックの詳細は、「サンプルファイル」をご参照下さい。

PLECS Probe を用いて、この Simulink ブロックに、ダイオードから出力される各損失値を入力し、

ダイオードから出力される損失エネルギーの平均値を Display ブロックに表示します。定常解析

を実行すると、ダイオードのエネルギー損失量が「約 105W」となることが確認できます。

PLECS Standalone用熱解析サンプル

PLECS デモモデルに格納されている「Demo Thermal」をご参照下さい。

Page 119: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

117

PLECS 磁気等価回路によるモデリング コイルおよび変圧器は,近年のパワーエレクトロニクス回路において、,最も主要な回路構成要素

と言えます。これらの回路要素は、他の受動素子に比べ、下記に述べる理由によって、モデリン

グが困難となります。

複数の巻線を有する変圧器等の磁気要素は、非常に複雑な構造によって構成されている。磁

性コア材の磁束は、複数の異なる磁気特性を示す磁路を介し、分割される。さらに、磁性コ

アの磁束も、各巻線に依存し、それぞれの漏れ磁束が発生する。

軟鉄やフェライトといった磁性コア材は、極めて非線形の強い挙動を示す。高い磁束密度条

件下では、磁性コアは飽和し、インダクタインピーダンスの大幅な減少をもたらす。さらに

ヒステリシス効果や渦電流によって周波数依存の損失が発生する。

PLECS は特殊な磁気ドメイン上で動作する磁気等価回路を使用して、複雑な磁気要素をモデリ

ングします。磁性コア、エアギャップ、巻線等の基本的な要素は磁気等価回路のライブラリに格

納されており、使用可能な磁性コア特性として、飽和、ヒステリシス特性も含まれています。周

波数依存の損失特性は、磁気抵抗を使用してモデリングします。巻線は電気ドメインと磁気ドメ

インの物理インターフェイスとしてモデリングされます。

磁気等価回路による磁気要素

等価回路による複雑な磁気回路要素のモデリングとして、結合コイル、磁気抵抗、パーミアンス

容量を適用する、3つの異なる手法が挙げられます。

結合コイルを用いた磁気モデル

結合コイルを適用する手法の場合、磁気回路要素は、コイルが磁束を、抵抗が損失を表す等価回

路によって、直接、電気ドメインにモデリングされます。巻線との磁気結合は,相互インダクタ

ンスまたは理想変圧器の組み合わせによって実装されます。

結合コイルを使用する場合は、磁気回路要素を電気回路要素のみで構成するため、ほぼ全ての回

路シミュレータで実装可能です。この手法は最も一般的であり、下図に示す変圧器(巻き線数:2)

モデリング例のように、基本的な磁気回路要素をモデリングする際に適用されます。

ここで、Lσ1 および Lσ2 は漏れインダクタンスを表し、Lm は非線形磁化インダクタンス、Rfe は鉄損を表します。巻線の銅損は、R1および R2 によってモデリングされます。

しかしながら、電気等価回路によるモデリングは、磁気回路要素の物理特性の表現には、あまり

適していません。例として、並列した磁束は、等価回路では直列インダクタンスによってモデリ

ングされますが、複数巻線変圧器、または統合磁気回路要素といった内部構成の構造体が不確定

な磁気要素の電気等価回路導出は、非常に困難です。これに加えて、インダクタによる等価回路

では、立体的な磁気要素のモデリングが不可能です。

Page 120: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

118

磁気抵抗を用いた磁気モデル

磁気回路要素をモデリングする古典的な手法として、磁気抵抗を適用する手法が挙げられます。

ここで、起磁力 F(MMF)は電圧 v、磁束Φは電流 i とみなし近似される。これにより、磁路長 は、

電気抵抗と同様に、下記式により定義されます。

ここで、磁気等価回路構造は、コア形状より簡単に導出されます:磁束Φの各部位は、磁路長 で

表され、各巻線は、起磁力 F となります。

磁気回路を外部電気回路に接続するには、数式による磁気インターフェイスが必要となります。

この磁気インターフェイスは巻線を表し、磁気回路内の磁束Φと起磁力 F、および電気回路ポー

トの電圧 v と電流 i との関係性を確立します。

ここで、N は巻線数です。磁気インターフェイスが積分器によって実装されている場合は、ODE

ソルバ用いて、下記式を解きます。

下図は PLECSによる磁気インターフェイス実装モデル概要を示します。

しかしながら、磁気抵抗を適用する手法には、下記の複数要因により、矛盾点が発生します。

物理的には、磁気エネルギーは単位体積の磁場に保存される。集中定数を用いた磁気回路で

は磁気抵抗は、エネルギーを保存する要素とみなされるが、磁気抵抗システムの変数として

定義される起磁力と磁束は、通常、エネルギーを散逸する抵抗としてモデリングされる。磁

気インターフェイスがエネルギー保存要素となることは混乱を招く。

コア材料のエネルギー散逸をモデリングするには、磁気回路上に、直感的に理解しにくいコ

イルを配置する必要がある。

非線形磁気抵抗を考慮した磁気回路を解くためには、微分代数方程式(DAE)が必要になるが、

ODEソルバが解くことができない代数ループが発生する。

磁気インターフェイスで近接に結合した巻き線を使用した際、Stiff(スティッフ)な系の方

程式が必要となる。

dt

dNv

Φ

N

Fi

vdtN

Page 121: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

119

パーミアンス容量を用いた磁気モデル

磁気抵抗の欠点を補完するため、パーミアンス容量モデル適用されます。この手法であれば、

起磁力 Fが、磁束変化率 が物理量(電流とみなす)を通過する際に、物理量(電圧とみなす)と交

差します。このシステム変数の選択によって、パーミアンス は、静電容量を算出する式と等価

になります。

パーミアンス は、エネルギーを保存する要素でモデリングされますが、実際の物理モデルと等

価磁気回路のエネルギーの関係性が保持されるため、磁束が通過する回路要素は、磁気抵抗 の

代わりに、パーミアンス を使用する方が適しています。パーミアンスの単位体積要素は下記式

により定義されます。

ここで、μ0 = 4π×10-7N/A

2 は磁気定数、μrは材料の比透磁率、A は断面積、l は磁路長です。

エネルギー散逸要素(電気抵抗とみなす)は、磁気回路内で損失としてモデリング可能です。こ

のエネルギー散逸要素は、物理的に特定の損失に依存し、パーミアンス要素と直列または並列に

配置可能です。

エネルギー散逸要素のエネルギーは、電力として定義され、電気回路の電力損失と等価の熱エネ

ルギーへ変換されます。巻線は電気/磁気ドメインのインターフェイス構成要素となります。コ

イルの巻線数 N は、下記式によって定義されます。式の左辺は電気ドメインを表し、右辺は磁

気ドメインを表します。

巻線は、一方のドメインの通過する物理量( を i)を、他のドメインの交差する物理量(v を F)

へ変換するため、ジャイレータによってモデリングすることが可能であり、このジャイレータの

抵抗 R が巻き線数 N となります。下図に PLECS に実装されたジャイレータモデルと概念モデル

を示します。

ジャイレータ要素は、磁気回路を作成する際に、コンデンサの役割として動作しますが、磁束に

対応した巻き線のキャパシタンスは十分に近似できません。さらに電気/磁気ドメインの結線ミ

スが存在する場合は、デバッグが困難な、原因不明のエラーがシステムから発生する可能性があ

ります。従って、磁気回路を使用する際は、専用の磁気要素を使用する必要があります。

Φ

dt

dFΦ

l

Ar

01

ΦFP loss

ΦNv

N

Fi

Φ

Page 122: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

120

PLECSによる磁気回路ドメイン

PLECS の磁気ドメインは、パーミアンス容量を適用した磁気等価回路手法に基づいて実装され

ます。磁気回路要素には巻線が含まれ、定数/可変パーミアンスはエネルギー散逸要素(磁気抵

抗)としてモデリングされます。これらの磁気回路要素を用いて、物理的構造に従い等価回路に

よる任意の磁気モデルを作成します。電気等価回路にいる変圧器モデルを磁気ドメインで作成し

たモデルを下図に示します。

非線形磁性コアのモデリング

磁気飽和やヒステリシス特性といった非線形磁性材料は、可変パーミアンスを使用することによ

ってモデリング可能です。パーミアンスは、回路要素に入力される制御信号によって決定します。

可変パーミアンス (t)を通過する磁束変化率は,下記式を用いて定義されます。

ここで、Fは状態変数を示すため、システムの方程式として、 が解かれます。したがって、制

御信号の値としては、 (t)と (t)の項が定義される必要があります。

また、制御信号は、パーミアンスを通過する磁束 Φ(t)を用いて定義される必要があります。こ

れによって、全ての節点における枝路 k に、キルヒホッフの電流則を適用可能になります。

非線形磁性コア特性が定義された際は、全パーミアンス: tot(F) = Φ/F、および微分パーミア

ンス: diff (F) = dΦ/dF を、確実に区別する必要があります。

全パーミアンス: tot(F)が既知であれば、時変パーミアンスを通過する磁束変化率 は、下記式

によって定義されます。

Fdt

d

dt

dFF

dt

dt

ddt

dF

n

k

k

1

0

Φ

Fdt

totd

dt

dFtot

Ftotdt

dF

dt

d

)(

Φ

dt

dFF

dF

totdtot

Fdt

dF

dF

totd

dt

dFtot

Page 123: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

121

この場合、可変パーミアンスの制御信号は、下記式によって定義されます。

ほとんどの場合、微分パーミアンス: diff (F)は、下記、磁気飽和およびヒステリシス特性によ

って定義されるため、

その制御信号は、下記式となります。

軟質磁性体の飽和曲線

曲線近似手法(フィッティング関数)を用いて強磁性体の特性をモデリングすることが可能です。

例として、下記式の coth関数による曲線近似の飽和曲線は、ドメイン間カップリングを含まな

いバルク磁化を表すランジュバン方程式に対応します。

この coth関数には、係数 Bsat、a.μsat、μsatで定義される 3つの自由度が存在します。これらの係

数は、最小二乗法等を適用し、算出することが可能です。

Hに関する Bの導関数は下記式を用いて算出されます。

Φ = B・A および F = H の関係により、可変パーミアンスの制御信号: diffは、上記式を用いて算

出されます。

参考文献

S. El-Hamamsy and E. Chang, “Magnetics modeling for computer-aided design of power electronics circuits,” in Power Electronics Specialists Conference, vol. 2, pp. 635–645, 1989. R. W. Buntenbach, “Improved circuit models for inductors wound on dissipative magnetic cores,” in Proc. 2nd Asilomar Conf. Circuits Syst., Pacific Grove, CA, Oct. 1968, pp. 229–236 (IEEE Publ. No. 68C64-ASIL). R. W. Buntenbach, “Analogs between magnetic and electrical circuits,” in Electron. Products, vol. 12, pp. 108–113, 1969. D. Hamill, “Lumped equivalent circuits of magnetic components: the gyratorcapacitor approach,” in IEEE Transactions on Power Electronics, vol. 8, pp. 97–103, 1993. D. Hamill, “Gyrator-capacitor modeling: A better way of understanding magnetic components,” in APEC Conference Proceedings pp. 326–332, 1994.

0)(

)(Ftot

dF

dtot

tdt

d

t

dt

dFdiff

dt

dF

dF

d

dt

d

Φ

0)(

)(diff

tdt

d

t

HsatH

a

a

H

satBB

3

3coth

satH

a

aHa

aH

satB

dH

dB

2/2tanh

1/2tanh

Page 124: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

122

PLECS 解析ツール

PLECS 定常解析

(使用環境:PLECS 3.3 日本語 OS:Windows)

パワエレシステムでは、システムの効率を把握するため、周期定常特性を確認する必要がありま

す。最も簡単にシステム定常動作点の出力結果を得る手法は、十分に長いシミュレーション時間

を設定した非定常(時系列)シミュレーションを実行することですが、複数の時定数を含む、複

雑な回路では、非常に長い計算時間を必要とします。通常、パワエレシステムには、スイッチン

グ周波数よりはるかに長い時定数が含まれています。例えば、電気-熱連成を含むパワエレシス

テムを取り上げると、スイッチング周波数は、kHz(0.001 秒)以上ですが、これに対して、発

熱は応答が非常に遅いため、周期定常特性を確認するためには、数秒~数時間が必要になります

(与えられる制御信号によって、応答は異なりますが、電気的周期定常特性は、遅くても数十ミ

リ秒以下で得られます)。

PLECS の「定常解析(Steady-State Analysis)」機能は、長時間のシミュレーションを実行する

ことなく、システムの周期定常解を算出するために、特殊なアルゴリズムを実装しています。

実装アルゴリズム

PLECSの定常解析ツールは、「準ニュートン法(Broyden法)」求根アルゴリズム(参考文献)

に基づいて実装されています。

この手法では、次式にて関数は定式化されます。

ここで、x は初期状態変数ベクトル、FT (x)は T 時間後の状態変数ベクトルとなります。したが

って、上式、f(x)および、FT (x)を算出する際には、時間 T のシミュレーション時間が必要にな

ります。この問題を解決するため、有限差分法(反復計算)によって関数行列式(ヤコビ行列:

J)を解きます。

計算負荷を軽減するため、反復計算は最初の関数行列だけ、上式を用いて算出されます。 その

後の繰り返し計算では、特殊な法則を用いて、収束解が得られるまで関数行列を更新します。

反復計算の収束判定は、下式に示す状態変数の最大許容誤差、および次回の反復計算値との最大

許容変化量が許容値:rtol 以下であるか、によって判定されます。

および 全ての i=1,…,n

)(1

1 kkkk xfJxx

)()( xFxxf T

kx

kx

xfJ

)(

rtolX

XX

k

kk

1;rtol

x

Xf

i

i

)(max

)(

Page 125: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

123

PLECSの定常解析は、以下のステップに従い計算が実行されます。

1 指定された周期長さ(1 周期分)の、最後のステップにおけるスイッチオン/オフ条件が、

シミュレーション開始時の条件と一致するまで計算を実行します。

2 次に関数行列式(ヤコビ行列)J0の初期条件を算出します。

3 収束判定を満たすまで、反復計算が実行されます。反復計算実行中に、最後のステップにお

けるスイッチオン/オフ条件が、初期条件と一致しない場合は、ステップ 1 に戻り、再度、

同様の計算を繰り返します。

関数行列式(ヤコビ行列)の算出手法

上述したように、関数行列式(ヤコビ行列)は有限差分法にて数値的に求解されます。これによ

り、シミュレーションに必要となる総ステップ数は「n+1」になります。ここで、関数行列式

に含まれる「n」は状態変数の数になります。

PLECSは、有限差分法による関数行列式算出の計算負荷・時間を軽減するため、損失シミュレー

ションに関する関数行列式(ヤコビ行列)を、状態空間マトリクスの操作によって直接、算出す

ることも可能です。

この手法は、損失シミュレーションから電気回路シミュレーション、または Simulink制御ロジ

ック(PLECS Blockset)へのフィードバックが無視されるため、解に誤差が生じます。この誤差

は最終的な定常解の精度には影響を与えませんが、計算の収束性を低下させます。しかしながら、

この手法を用いることによって、有限差分法による関数行列式算出より、高速に定常状態を算出

することが可能になります。

定常解析における使用上の制限

状態変数の発散

システムに対する状態変数の影響が、何らかの設定によって制限されているにも関わらず、状態

変数自体には制限が無い場合、システムは無限に発散します。この場合、定常解析のアルゴリズ

ムも発散するか、誤った解を出力します。このような問題を避けるためには、状態変数自体の出

力に制限を与える必要があります。

例:Integratorブロックの「制限出力」チェックボックスをクリックし有効にする

隠れ状態変数(PLECS Blockset)

PLECS Blocksetでは、定常解析開始時に「InitialStateplsteadystate(コマンドラインパラメ

ータ)」によって初期化されますが、いくつかの Simulinkブロックは、隠れ状態変数として状態

ベクトルを保存するため、シミュレーション開始時には、この隠れ状態変数を初期条件として保

存できません。したがって、シムテムが隠れ状態変数を含んでいる場合は、正確な解を得ること

ができません。

隠れ状態変数を含む Simulinkブロック

Memoryブロック、Relayブロック、Transport Delayブロック、Variable Transport Delayブロック

Page 126: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

124

PLECS Standalone による定常解析

PLECS Standalone で定常解析を実行する場合は、

ファイルメニュー → シミュレーション → 解析ツール... を選択(クリック)し、

下図のように解析ツールダイアログボックスを起動します。

起動した解析ツールダイアログボックスの左端に表示される、「+」マークをクリックすると「解

析タイプの追加」ダイアログボックスが表示されますので、プルダウン・メニューから「定常解

析」を選択します。

解析タイプを追加すると、「解析手法ウィンドウ」に追加された解析タイプ名が表示され、解析

ツールダイアログボックスの右側に設定オプション等が表示されます。解析タイプは複数追加す

ることが可能で、それぞれの「ケース名」は独自の名称を指定する必要があります。追加した解

析タイプを削除するには、削除する「解析タイプ」を「解析手法ウィンドウ」から選択し、解析

ツールダイアログボックスの左端に表示される、「-」マークをクリックしします。

「解析開始」ボタンをクリックすると、選択された解析タイプが実行されます。解析を途中で停

止するには、解析停止ボタンを押して下さい。解析のログを確認するには、「ログを表示ボタン」

をクリックします。

クリック!

クリック!

Page 127: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

125

PLECS Standalone 定常解析パラメータ

解析ツールダイアログボックスに表示される定常解析設定用入力パラメータを示します。

基本設定・タブ

システム周期(基本周波数):

モデル内全ての入出力信号の最小公倍数によって定義される周波数を指定します。適切なシステ

ム周期:Tが入力されない場合、誤った結果を出力、もしくは計算が発散します。

シミュレーション開始時間:

過渡解析で使用されるシミュレーション開始時間:tstartを指定します。

シミュレーションは「tstart」から「T + tstart」まで実行されます(デフォルト設定=0)。

表示周期数:

シミュレーション終了後に表示される、定常状態のシステム周期(基本周波数)数を指定します

(デフォルト設定=1)。

オプション・タブ

初期定常周期:

ニュートン法(反復法)に適用される初期条件算出のために実行される前処理周期を指定します。

定常状態の解がシミュレーション開始点(初期条件)から離れていると、計算が発散する場合が

ありますが、このオプションパラメータを使用することによって、より良い初期条件を与えるこ

とが可能になります(デフォルト設定=0)。

相対許容誤差:

シミュレーションの収束判定に使用する許容誤差を指定します。シミュレーションは、状態変数

の最大許容誤差、および次回の反復計算値との最大許容変化量が許容誤差以内であるかを判定し

実行されます(デフォルト設定=1e-4)。

最大反復計算回数:

ニュートン法の最大反復回数を指定します(デフォルト設定=20)。

関数行列用相対外乱:

関数行列式(ヤコビ行列)を算出する際に使用する、定常状態の相対外乱を指定します(デフォ

ルト設定=1e-4)。

関数行列の算出:

関数行列式(ヤコビ行列)を用いて、熱解析の定常状態を算出する際に使用する解法を選択しま

す。完全:有限差分法、高速:状態空間マトリクスを用いた直接解法(デフォルト設定=高速)

Page 128: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

126

PLECS Blockset による定常解析

「Steady-State Analysis(定常解析ツール)」ブロックは「PLECS ライブラリ」の「Extars ライ

ブラリ」ブロックに格納されています。

定常解析のパラメータ

下表に定常解析用コマンドラインパラメータ「plsteadystate」によって定義されるパラメータ

リストを「コマンド・パラメータ」、定常解析設定用 GUI ダイアログボックスに表示される、

入力テーブルリストを「記述」の項に示します。

コマンド・パラメータ 記述

TimeSpan システム周期は固定:一定のシステム周波数

システム周期は可変:トリガーイベントによってシステムへ

の影響が生じるまでの最後の時間

ダイアログボックス入力プルダウン・メニュー名

「System period length / Max simulation time span」

TStart シミュレーション開始時間

ダイアログボックス入力テーブル名

「Simulation start time」

Tolerance 収束判定に用いられる相対許容誤差

ダイアログボックス入力テーブル名

「Termination tolerance」

MaxIter 最大反復回数

ダイアログボックス入力テーブル名

「Max number of iterations」

Display MALTLAB コマンドウインドウに表示される診断メッセージ

の表示選択(iteration、final、off)

ダイアログボックス入力プルダウン・メニュー名

「Display level」

HideScopes 計算時間短縮化のため全ての GUI 画面を非表示

(コマンド・パラメータのみ)

HiddenStates 隠れ状態変数の処理選択(error、 warning、none)

ダイアログボックス入力プルダウン・メニュー名

「Hidden model states」

FinalStateName 出力される状態変数ベクトルの MATLAB 変数名

ダイアログボックス入力テーブル名

「Steady-state variable」

NCycles 計算終了後に出力される定常解析結果の周期数

ダイアログボックス入力テーブル名

「Show steady-state cycles」

JPert 近似関数行列式に用いられる状態変数の相対的な外乱

(コマンド・パラメータのみ)

JacobianCalculation 関数行列式の制御方法選択(full、fast)デフォルト:fast

(コマンド・パラメータのみ)

Page 129: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

127

PLECS Blockset の定常解析設定用 GUI 画面(上図)にて設定をおこなったモデルファイルで、

MATLAB コマンドラインによる定常解析を実行する場合の入力例は以下になります。

(モデルファイル名:mymodel、PLECS 回路名:Steady state)

plsteadystate(’mymodel/Steady State’);

さらに、異なるシミュレーション開始時間(0秒、1秒)、およびMATLAB変数名(x0、x1)を

与えシミュレーションを実行します。

plsteadystate(’mymodel/Steady State’, ’TStart’, 0, ’FinalStateName’, ’x0’); plsteadystate(’mymodel/Steady State’, ’TStart’, 1, ’FinalStateName’, ’x1’);

このような、コマンドライン入力を利用することによって、時間により異なる出力特性を設定さ

れた制御ロジックを適用されたパワエレシステムでも、簡単にシミュレーション結果を比較する

ことができます。

参考文献(定常解析)

D. Maksimovic, "Automated steady-state analysis of switching power converters using a general-purpose simulation tool", Proc. IEEE Power Electronics, Specialists Conference, June 1997, pp. 1352-1358.

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 130: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

128

PLECS AC周波数解析

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

伝達関数は制御器を設計する際に、重要な役割を果たします。PLECS にはパワエレシステムの

伝達関数を算出するための解析ツールが実装されています。PLECS Blockset には AC 周波数解析

のを実行する、2 つの異なる解析ツールブロックが用意されています。「AC Sweep(AC 周波数

解析)」ブロックは、制御-出力の伝達関数、またはコンバータ回路の出力インピーダンス等の、

任意の開ループシステムの伝達関数を出力します。「Loop-Gain Analysis(ループゲイン解析)」

ブロックは、フィードバックシステムの閉ループゲインを出力します。

実装アルゴリズム

PLECSのAC周波数解析ツールは、離散解析における各周波数の伝達関数を、時間領域によるシ

ミュレーションによって算出します。

PLECSの定常解析は、以下のステップに従い計算が実行されます。

1 指定された全ての周波数帯域において、周期外乱をシステムに与えます。

2 入力された周期外乱に対するシステムの定常動作点を算出します。

3 フーリエ解析を実行し、入力された外乱周波数におけるシステムの応答を算出します。

システムに入力される外乱の周波数帯域は、線形または対数による指定が可能です。また、各周

波数帯域における、システムの定常動作点は任意の数を指定可能です。システムへ入力される外

乱の長さは、システム周期(基本周波数)と外乱周期の最小公倍数で設定されます。システム周

期との最小公倍数による最短のシミュレーション時間となるように、実装アルゴリズムは、外乱

の各周波数を調整する可能性があります。

PLECS Standalone によるAC周波数解析

PLECS Standalone で AC 周波数解析を実行するには、下図のように「小信号外乱」、「小信号応

答」ブロックを任意の信号へ接続し、外乱信号の応答を検出する必要があります。また、フィー

ドバックシステムの閉ループゲインを検出する場合は、フィードバックループへ「小信号ゲイン」

ブロックを配置して下さい。解析を実行すると伝達関数のボード線図が自動で表示されます。

小信号ゲイン

小信号外乱

小信号応答

Page 131: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

129

PLECS Standalone AC周波数解析パラメータ

解析ツールダイアログボックスに表示される定常解析設定用入力パラメータを示します。

基本設定・タブ

システム周期(基本周波数):

モデル内全ての入出力信号の最小公倍数によって定義される周波数を指定します。適切なシステ

ム周期:Tが入力されない場合、誤った結果を出力、もしくは計算が発散します。

周波数帯域:

外乱を与えスウィープを実行する周波数帯域を指定します。

振幅:

入力される外乱の振幅を指定します。

外乱(摂動):

モデル内の外乱入力ブロック(小信号外乱、小信号ゲイン)を指定します。指定された外乱以外

のブロックは「0」を出力します。

応答:

モデル内の外乱応答ブロック(小信号応答)を指定します。解析実行中は指定されたブロックか

ら出力されるシステム応答を記録します。

オプション・タブ

シミュレーション開始時間:

過渡解析で使用されるシミュレーション開始時間:tstartを指定します。

シミュレーションは「tstart」から「T + tstart」まで実行されます(デフォルト設定=0)。

外乱周波数分布:

スウィープ周波数の分布(対数/線形)を指定します。

定常動作点:

スウィープ周波数帯域内の定常動作点を指定します(デフォルト設定=21)。

周波数帯域(追加):

周波数帯域で定義されたスウィープ周波数帯域内に、任意の詳細なスウィープ帯域を追加する際

に指定します。

例)

周波数帯域 [100 50e3]

(100Hzから 50kHzまでスウィープ)

周波数帯域(追加) [800:50:1100 1200:100:1400]

(800Hzから 1100Hzまで 50Hz刻み、1200Hzから 1400Hzまで 100Hz刻みでスウィープ)

定常解析オプション・タブ

「PLECS Standaloneによる定常解析」の項をご参照下さい。

Page 132: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

130

PLECS BlocksetによるAC周波数解析

下表に AC 周波数解析およびループゲイン解析用コマンドラインパラメータ「placsweep」によ

って定義されるパラメータリストを「コマンド・パラメータ」、定常解析設定用 GUI ダイアロ

グボックスに表示される、入力テーブルリストを「記述」の項に示します。GUI(ダイアログボ

ックス)から設定できないパラメータは、MATLAB コマンドライン「set_param」を使用して設

定します。

コマンド・パラメータ 記述

TimeSpan システム周期

ダイアログボックス入力テーブル名

「System period length」

TStart シミュレーション開始時間

ダイアログボックス入力テーブル名

「Simulation start time」

FreqRange システムに入力される外乱の周波数帯域

ダイアログボックス入力テーブル名

「Frequency sweep range」

FreqScale 外乱の周波数帯域分布の定義(linear、logarithmic)

ダイアログボックス入力プルダウン・メニュー名

「Frequency sweep scale」

NPoints 定常動作点数

ダイアログボックス入力テーブル名

「Number of points」

InitialAmplitude 初回外乱周期における振幅

ダイアログボックス入力テーブル名

「Amplitude at first freq」

Method 外乱を入力されたシステムの定常動作点算出手法選択

Brute force simulation start from model initial state Brute force simulation start from unperturbed steady state Steadystate analysis start from model initial state Steadystate analysis start from unperturbed steady state

ダイアログボックス入力プルダウン・メニュー名

「Method drop-down」

Tolerance 収束判定に用いられる相対許容誤差

ダイアログボックス入力テーブル名

「Termination tolerance」

MaxIter 最大反復回数

ダイアログボックス入力テーブル名

「Max number of iterations」

Display MALTLAB コマンドウインドウに表示される診断メッセージ

の表示選択(iteration、final、off)

ダイアログボックス入力プルダウン名

「Display level」

HideScopes 計算時間短縮化のため全ての GUI 画面を非表示

(コマンド・パラメータのみ)

HiddenStates 隠れ状態変数の処理選択(error、 warning、none)

ダイアログボックス入力プルダウン・メニュー名

Page 133: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

131

「Hidden model states」

コマンド・パラメータ 記述

OutputName 出力される伝達関数の MATLAB 変数名

ダイアログボックス入力テーブル名

「Output variable」

BodePlot 計算終了後に出力される伝達関数のボード線図出力選択(on、off)

ダイアログボックス入力プルダウン・メニュー名

「Plot Bode diagram」

JPert 近似関数行列式に用いられる状態変数の相対的な外乱

(コマンド・パラメータのみ)

PLECS Blockset の AC 周波数解析設定用 GUI 画面(上図)にて設定をおこなったモデルファイ

ルで、MATLAB コマンドラインによる定常解析を実行する場合の入力例は以下になります。

(モデルファイル名:mymodel、PLECS 回路名:AC Sweep)

placsweep(’mymodel/AC Sweep’);

さらに、異なるシミュレーション開始時間(0秒、1秒)、およびMATLAB変数名(T0、T1)を

与えシミュレーションを実行します。

placsweep(’mymodel/AC Sweep’, ’TStart’, 0, ‘OutputName’, ’T0’); placsweep(’mymodel/AC Sweep’, ’TStart’, 1, ‘utputName’, ’T1’);

このような、コマンドライン入力を利用することによって、時間により異なる出力特性を設定さ

れた制御ロジックを適用されたパワエレシステムでも、簡単にシミュレーション結果を比較する

ことができます。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 134: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

132

PLECS インパルス応答解析

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS にはシステムの伝達関数をより高速に出力する別の手法として、「インパルス応答解析

(Impulse Response Analysis)」が実装されています。周期定常状態のシステムに対し外乱を入

力し、定常動作点における伝達関数を算出する AC 周波数解析とは異なり、インパルス応答解析

では離散信号(パルス)をシステムに入力することによって、伝達関数を算出します。時系列パ

ルス応答によるラプラス変換を適用することによって、より広範囲な周波数帯域におけるシステ

ムの伝達関数を効率的に算出します。

実装アルゴリズム

PLECSのインパルス応答解析は、以下のステップに従い計算が実行されます。

1 システムの周期定常動作点を算出します。

2 システムに離散信号(パルス)を入力します。

3 時系列パルス応答のラプラス変換を実行し、システムの応答を算出します。

PLECS Standalone によるインパルス応答解析

PLECS Standalone でインパルス応答解析を実行するには、下図のように「小信号外乱」、「小信

号応答」ブロックを任意の信号へ接続し、外乱信号の応答を検出する必要があります。また、フ

ィードバックシステムの閉ループゲインを検出する場合は、フィードバックループへ「小信号ゲ

イン」ブロックを配置して下さい。解析を実行すると伝達関数のボード線図が自動で表示されま

す。

PLECS Standalone インパルス解析パラメータ

「PLECS Standaloneによる AC周波数解析」の項をご参照下さい。

注:

インパルス応答解析ではオプションパラメータ「周波数帯域(追加)」が省略されるため、滑ら

かな出力結果を得るには、オプションパラメータ「定常動作点」の数を増やす必要があります。

小信号外乱

小信号応答

小信号外乱

Page 135: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

133

PLECS Blockset によるインパルス応答解析(離散信号:パルス 補正)

理論的には、ラプラス変換によるシステムの伝達関数を算出するためには、単位インパルス(デ

ィラックのデルタ関数)による外乱を入力する必要があります。この数学的な取り扱いは、数値

解析上、実用的ではないため、実装アルゴリズムは、有限の矩形パルスをシステムに入力します。

ラプラス変換によるシステムの伝達関数(制御-出力)および出力インピーダンスは、矩形パル

スによるラプラス変換によって補正されます。この補正は、インパルス応答解析用コマンド・パ

ラメータ「Compensation」および、インパルス応答解析設定用 GUI ダイアログボックスに表示

される、入力テーブルリストを「Compensation for discrete pulse」の項によって設定されま

す。デフォルトでは「discrete pulse(離散パルス)」が選択されています。しかしながら、PWM

等の変調器を実装したコンバータを含むシステムの、伝達関数および出力インピーダンスを算出

する際に、矩形パルスを外乱として適用した場合は、変調器のサンプリングに干渉してしまうた

め、この場合、上記補正のタイプを「external reference(外部参照)」に設定する必要があり

ます。この設定により、Impulse Response Analysis ブロックには、下図に示すように、2つの

入力ポートが表示されます。

システムの変調器が、標準サンプリングを適用し、この周期がシステム周期と同一であるなら、

「none(補正なし)」の設定を選択してください。

PLECS Blockset インパルス応答解析のパラメータ

下表にインパルス応答解析用コマンドラインパラメータ「plimpulseresponse」によって定義さ

れるパラメータリストを「コマンド・パラメータ」、定常解析設定用 GUI ダイアログボックス

に表示される、入力テーブルリストを「記述」の項に示します。GUI(ダイアログボックス)か

ら設定できないパラメータは、MATLAB コマンドライン「set_param」を使用して設定します。

コマンド・パラメータ 記述

TimeSpan システム周期

ダイアログボックス入力テーブル名

「System period length」

TStart シミュレーション開始時間

ダイアログボックス入力テーブル名

「Simulation start time」

FreqRange システムに入力される外乱の周波数帯域

ダイアログボックス入力テーブル名

「Frequency sweep range」

FreqScale 外乱の周波数帯域分布の定義(linear、logarithmic)

ダイアログボックス入力プルダウン・メニュー名

「Frequency sweep scale」

NPoints 定常動作点数

ダイアログボックス入力テーブル名

「Number of points」

Page 136: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

134

コマンド・パラメータ 記述

Perturbation 離散信号(パルス)外乱における振幅

ダイアログボックス入力テーブル名

「Amplitude at first freq」

Compensation サンプリングの補正手法選択

(none、discrete pulse、external reference)

ダイアログボックス入力プルダウン・メニュー名

「Compensation for discrete pulse」

Tolerance 収束判定に用いられる相対許容誤差

ダイアログボックス入力テーブル名

「Termination tolerance」

MaxIter 最大反復回数

ダイアログボックス入力テーブル名

「Max number of iterations」

Display MALTLAB コマンドウインドウに表示される診断メッセージ

の表示選択(iteration、final、off)

ダイアログボックス入力プルダウン名

「Display level」

HideScopes 計算時間短縮化のため全ての GUI 画面を非表示

(コマンド・パラメータのみ)

HiddenStates 隠れ状態変数の処理選択(error、 warning、none)

ダイアログボックス入力プルダウン・メニュー名

「Hidden model states」

OutputName 出力される伝達関数の MATLAB 変数名

ダイアログボックス入力テーブル名

「Output variable」

BodePlot 計算終了後に出力される伝達関数のボード線図出力選択(on、off)

ダイアログボックス入力プルダウン・メニュー名

「Plot Bode diagram」

JPert 近似関数行列式に用いられる状態変数の相対的な外乱

(コマンド・パラメータのみ)

Page 137: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

135

PLECS Blockset のインパルス応答解析設定用 GUI 画面(上図)にて設定をおこなったモデルフ

ァイルで、MATLAB コマンドラインによる定常解析を実行する場合の入力例は以下になります。

(モデルファイル名:mymodel、PLECS 回路名:Impulse Resp)

plimpulseresponse(’mymodel/Impulse Resp’);

さらに、異なるシミュレーション開始時間(0秒、1秒)、およびMATLAB変数名(T0、T1)を

与えシミュレーションを実行します。

plimpulseresponse(’mymodel/Impulse Resp’, ’TStart’, 0, ‘OutputName’, ’T0’); plimpulseresponse(’mymodel/Impulse Resp’, ’TStart’, 1, ‘utputName’, ’T1’);

このような、コマンドライン入力を利用することによって、時間により異なる出力特性を設定さ

れた制御ロジックを適用されたパワエレシステムでも、簡単にシミュレーション結果を比較する

ことができます。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 138: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

136

PLECS 状態空間ベクトルの抽出

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECS は、状態空間平均化法によるシミュレーションを、より簡略・高速化するため、異なる

回路トポロジー(スイッチ位置の組み合わせ)による状態空間行列をコマンド入力によって抽出

することが可能です。PLECS 回路ブロックから異なる回路トポロジーを抽出するための「コマ

ンドライン用入力パラメータ」を下記に示します。

ここで、「names」は MATLAB/Octave(シミュレーション・スクリプト)で使用される変数名

です。それぞれのコマンド・パラメータで用いられる「PLECS 回路ブロック名」は PLECS 回

路ブロック名です(モデルファイルから PLECS 回路ブロックまでのフルパスによって指定)。

names = plecs(’get’, ‘PLECS 回路ブロック名(パス)’, ’StateSpaceOrder’);

上記コマンドを入力することによって、MATLAB/Octave コマンドラインには、PLECS 回路ブ

ロックに含まれる、回路要素名、入出力値、スイッチの状態がワークスペースに出力されます。

次に、PLECS 回路ブロックに含まれる、スイッチング素子のオン/オフを、コマンドラインにて

指定します。

plecs(’set’, ‘PLECS 回路ブロック名(パス)’, ’SwitchVector’, スイッチ位置);

上記コマンドを入力することによって、スイッチ位置のベクトルが、コマンド「スイッチ位置」

によって指定されます。スイッチ位置の指定は、[1 0]または[0 1]になります。

次に、PLECS 回路ブロックのトポロジーをワークスペースに出力します。

t = plecs(’get’, ‘PLECS 回路ブロック名(パス)’, ’Topology’);

上記コマンドを入力することによって、ワークスペースに変数名「t」という名称で、指定され

たスイッチ位置による回路トポロジーの状態空間行列(A、B、C、D、I)が保存されます。こ

こで、全ての電気的状態が互いに独立しているならば、状態空間行列「I」は単位行列になりま

す。全ての電気的状態が互いに独立していないならば、従属変数との関係を定義します。

PLECS Standaloneでは「XML-RPC」を介したスクリプティングで、類似したコマンドを使用す

ることが可能です。

Page 139: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

137

≪入力例 PLECS Blockset≫

MATLAB コマンドラインにて、ファイルが格納されているフォルダ(カレントディレクトリ)に

移動し、下記コマンドを入力します。(またはファイル読込み時に、ファイルまでのフルパスを

入力)

Simulinkモデルファイル名:test.mdl、PLECS回路ブロック名:Circuit

>> load_system test %ファイルの読み込み

>> open_system test %ファイルを開く場合に使用(または「open」コマンド:open test) >> name = plecs('get', 'test/Circuit', 'StateSpaceOrder'); >> plecs('set', 'test/Circuit', 'SwitchVector', [1 0] ); >> t = plecs('get', 'test/Circuit', 'Topology');

≪入力例 PLECS Standalone≫

状態空間ベクトルを抽出する回路モデルを格納したファイルを開き、シミュレーションスクリプ

トウィンドウにて、下記コマンドを入力します。

モデルファイル名:test.plecs(サブシステム化した場合は目的の回路が格納されている名称)

circuit = plecs('get', '', 'CurrentCircuit'); %サブシステム化した回路はその回路へのパスと名称

names = plecs('get',circuit, 'StateSpaceOrder'); plecs('set', circuit, 'SwitchVector', [1 0]); t = plecs('get', circuit, 'Topology');

Page 140: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

138

PLECS Standaloneによる解析ツールの適用

(使用環境:PLECS Standalone Version 3.3 日本語 OS:Windows)

PLECS Standaloneのデモモデルに格納されている「Demo Analysis Tools(BuckOpenLoop.plecs)」

には下図に示す、DC-DC降圧コンバータ回路がモデリングされています。

このDC-DC降圧コンバータ回路は、固定デューティー(15/28)のスイッチング周波数100kHzで

作動します。解析ツールの設定条件を確認するには、

ファイルメニュー → シミュレーション → 解析ツール… を選択します。

このモデルでシステムの周期特性を決定する要素は、変調器内に格納されているキャリア信号の

みのため、システム周波数(基本周波数):Tは1/100kHz=10-5

sとなります。

定常解析

DC-DC 降圧コンバータの定常出力を確認するには、解析ツールダイアログボックスの左側に表

示される解析手法ウィンドウから「Steady State Analysis《定常解析》」を選択し、解析を実行す

ると、PLECS Scope に周期定常結果が表示されます。

制御-出力伝達関数

制御-出力伝達関数の算出では、小信号外乱が変調指数へ与えられます。この外乱信号は、「フ

ィードスルー(直達)入力を表示:オン」のパラメータを与えた「小信号外乱ブロック:m’」

によって定義されます。この場合、システムからの出力は、DC-DC 降圧コンバータの電圧出力

として定義されるため、電圧計からの出力信号は、「小信号応答ブロック:vo’」に接続されま

す。AC 周波数解析を実行するには、解析手法ウィンドウから「Control to Output TF (AC Sweep)

《AC 周波数解析》」を選択し解析を実行します。ここで、スウィープする周波数帯域は 100Hz

から 50kHz までとなります。「21」の定常動作点が対数分布で、この周波数帯域内で定義され

ますが、より滑らかな出力結果を得るため「周波数帯域(追加):800Hz~1400Hz」も設定され

ます。解析実行後、下図のような、ボード線図が自動で表示されます。同様の解析結果を出力す

Page 141: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

139

るインパルス応答解析を実行するには、解析手法ウィンドウから「Control to Output TF (Impulse)

《インパルス応答解析》」を選択して下さい。インパルス応答解析は、より高速にボード線図を

出力します。

出力インピーダンス

出力インピーダンスの算出では、小信号外乱電流が DC-DC 降圧コンバータの電流源として与え

られます。この外乱信号は、「小信号外乱ブロック:i’」によって定義されます。この場合も、

システムからの出力は、DC-DC 降圧コンバータの電圧出力として定義されるため、電圧計から

の出力信号は、「小信号応答ブロック:vo’」に接続されます。制御-出力伝達関数の算出と同様

に、AC 周波数解析、インパルス応答解析でボード線図が出力されます。

ループゲイン

PLECS Standaloneのデモモデルに格納されている「Demo Loop Gain Analysis Tools

(BuckClosedLoop.plecs)」には下図に示す、DC-DC降圧コンバータ回路がモデリングされてい

ます。

この DC-DC 降圧コンバータ回路は、定格:15V(参照電圧)で動作するよう、出力電圧がフィ

ードバック信号として PID+PWM 制御器に入力されます。

Page 142: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

140

システムのループゲインは「小信号ゲインブロック:Loop Gain Mter」をフィードバックループ

上に配置することによって算出されます。「小信号ゲインブロック:Loop Gain Mter」のサブシ

ステム内部を確認すると、下図のようなブロックモデルが表示され、小信号外乱が入力されシス

テムの応答を検出していることが判ります。

ループゲイン解析を実行するには、解析手法ウィンドウから「Closed Loop Gain 《AC 周波数解

析》」を選択し解析を実行します。ここで、スウィープする周波数帯域は 100Hz から 500kHz ま

でとなります。「21」の定常動作点が対数分布で、この周波数帯域内で定義されますが、より滑

らかな出力結果を得るため「周波数帯域(追加)」も設定されます。解析実行後、下図のような、

ボード線図が自動で表示されます。

Page 143: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

141

PLECS Blocsetによる解析ツールの適用

(使用環境:PLECS Blockset Version 3.3 日本語 OS:Windows)

この例題では、スイッチング周波数100kHzで作動するDC-DC降圧コンバータ回路に対し、PLECS

エクストラ・ライブラリに格納された解析ツールを適用し、システムの特性を検討します。この

コンバータは5Aの電流で、整流された15Vの電圧を負荷抵抗に供給します。

この例題で用いるコンバータ回路はR.F.Erickson教授(コロラド大学)が執筆された、

「Fundamentals of Power Electronics, 2nd

Edition」の9章「Controller Design」に、記載されている内

容と同一の設定条件が与えられます(参考文献)。この例題ファイルはPLECSデモに格納されて

います。

(ファイル名:plBuckSweep、plBuckLoop、plBuckImpulseResponse)

定常解析

始めにシステム(コンバータ回路)の開ループ特性を検証します。コンバータ回路が目標とする

出力電圧を確認するため、固定デューティー・サイクル:Vout / Vsrc = 15V / 28V を与え、システ

ムの定常特性を出力します。PLECS には出力電圧の定常波形を検証するためのツールとして、

Steady-State-Analysis(定常解析)ブロックが実装されているので、これを使用し出力波形を検証

することが可能です。

PLECS の Extras ライブラリブロック内に格納されている Analysis Tools(解析ツール)から

Steady-State-Analysis(定常解析)ブロックを選択し、Simulink モデルファイル上に配置します。

Page 144: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

142

定常解析用ダイアログボックスを起動し(ダブルクリック)、システム周期等の各パラメータを

入力します。ここでは下に示す数値を入力値として用います。

System period length(システム周期):1e-5、Show steady-state cycles(表示定常周期):10

Start analysis ボタンを押し解析を実行すると、図に示す出力波形が Scope に表示されます。(シ

ステム周期で定義された 10 周期分の電圧値)

AC周波数解析

制御-出力の伝達関数を出力するため、定常デューティー・サイクルに外乱を与え、かつ出力電

圧の変動をプローブします。

これをモデリングするため、AC-Sweep(AC 周波数解析)ブロックを選択し、Simulink モデルフ

ァイル上に配置し、Simulink の制御ブロックを、下図に示す構成に変更します。

AC 周波数解析ブロックには参照信号として、電圧出力値:v_load が入力され、定常デューティ

ー・サイクルに入力される外乱信号:m_ac を出力します。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 145: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

143

Amplitude at first freq:(初回外乱周期における振幅)は、デューティー・サイクル:2/1000 の近

似値として、1e-3 を設定します。AC 周波数解析を実行する周波数帯域を、100Hz から 50kHz

までとし、800Hz から 1200Hz の間は 50Hz の振幅幅で解析を実行します。

Frequency sweep range:[100 800:50:1200 50000]

出力されたボード線図より、極:f0 = 1 / (2π√ LC ) ≈ 1kHz ゲイン:G0 = 28V ≈ 29dB の結果が確

認できます。

「Start analysis」ボタ押

定常解析が実行されます

Page 146: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

144

AC周波数解析(開ループ出力インピーダンス)

補償器の設計には必要ありませんが、ここでは適用例として出力インピーダンスも算出します。

出力インピーダンスを算出するには、コンバータ回路に外乱として微弱な AC 電流を与え、外乱

によって生じる出力電圧の変化を測定する必要があります。 これをモデリングするため、下図

に示すように、コンバータ回路の負荷と平行に AC 周波数解析ブロックによって出力される外乱

信号:i_ac(AC 電流)を入力する可変電流を追加します。

AC 周波数解析ブロックには参照信号として、電圧出力値:v_load が入力され、定常デューティ

ー・サイクルに入力される外乱信号:i_ac を出力します。

定常電流出力値は平均 5 アンペアですので、Amplitude at first freq:(初回外乱周期における振幅)

は、1e-2 に設定されます。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 147: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

145

出力されたボード線図より、システムの出力インピーダンス(開ループ)が確認できます。

インパルス応答解析

PLECS は、開ループの伝達関数および出力インピーダンスを、より高速に算出する別の手法と

して、Impulse Response Analysis(インパルス応答解析)ブロックを使用することが可能です。

インパルス応答解析はコンピュータ・リソースへの負担が軽いため、より広範囲な周波数帯域お

よび、データを取得する定常動作点を設定することが可能です。(周波数帯域:10Hz-50kHz、

定常動作点:300)

外乱として与えられる離散信号(パルス)は、伝達関数の算出では「external reference」、出

力インピーダンスの算出では「discrete pulse」によって、補正されます。

伝達関数の算出にて使用する制御ブロック、およびダイアログボックスの設定を下図に示します。

Compensation for discrete pulse: external reference

Page 148: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

146

出力インピーダンスの算出にて使用する制御ブロック、およびダイアログボックスの設定を下図

に示します。 Compensation for discrete pulse: discrete pulse

インパルス応答解析から出力される各ボード線図(伝達関数、出力インピーダンス)は、AC 周

波数解析による出力と、ほぼ同じ結果になります。

Page 149: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

147

ループゲイン解析(制御ロジックのモデリング)

システムの閉ループゲイン解析を実行するため、先ず制御ロジック(補償器)のモデリングをお

こないます。この例題で用いる補償器(PID)は、クロスオーバー周波数 fc=5kHz で作動するこ

とを目標に設計されます。この周波数における伝達関数(開ループシステム)の位相は約-180°

になります。位相はピーク値(最大行き過ぎ量)の 16%となるように、52°まで持ち上げられ

るように設定されます。

上記仕様は、PD 補償器として、

「零点:fz = 1.7kHz、極:fp = 14.5kHz、DCゲイン:k = (fc / f0) √ fz / fp /G0 ≈ 0.3」の制

御ブロックを実装することによって実現します。さらに PI 補償器には、定常偏差(オフセット)

補正のため、「ゼロ-反転:fZ = 500kHz」が実装されます。

補償器からの出力は、Saturation ブロックによって 0.1~0.9 に制限されます。定常解析を実行す

る間、windup の問題が発生するのを防ぐため、PI 補償器の積分器からの出力も同様に制限され

ます。

実装する PID 補償器、および補償器の伝達関数を下図に示します。

PI補償器 PD補償器

Page 150: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

148

ループゲイン解析(システムのモデリング)

システムの閉ループゲインは、「Loop Gain Analysis(ループゲイン解析)」ブロックを下図の

ように、制御ループ内に配置することによって算出します。

定常電圧の平均値は 15V となるので、Amplitude at first freq:(初回外乱周期における振幅)は、

1e-2 に設定されます。ここで、コンデンサの初期電圧を、システムの定常電圧に設定すること

によって、初期定常状態を計算する収束性を、多少向上させることが可能です。

「Start analysis」ボタンを押すと

定常解析が実行されます

Page 151: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

149

各ボード線図の比較を下図に示します。

開ループシステムのボード線図(破線)、PID 補償器のボード線図(点線)、閉ループシステム

のボード線図(実線)が表示されています。これにより、この制御システムの要求設計仕様であ

るクロスオーバー周波数、および位相余裕が達成されていることが確認できます。

状態空間平均化法(コマンドラインによるボード線図出力)

開ループ制御の伝達関数を得るその他の手法として、状態空間の平均化が挙げられます。この手

法の概念は、かなり複雑であり、詳細な記述は割愛し、PLECS の使用法に焦点をあて例題を進

めていきます。(サンプルファイルとして plSSADemo.m が、PLECS インストールフォルダの

「Demos」フォルダ内に用意されていますので、こちらもご参照下さい。)

電流連続モード(CCM)で作動する、小信号 AC モデルの DC コンバータは下記方程式で表され

ます。

ここで、物理量 は、それぞれ作動点 における微弱な AC 振動

です。

)(~)()()(~)(~)(~2121 tmuBBxAAtuBtxAtx

dt

d

)(~)()()(~)(~)(~2121 tmuDDxCCtuDtxCty

x u my)(~ tx )(~ tu )(~ ty )(~ tm

Page 152: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

150

状態空間の平均化マトリクス は、以下で定義されます。

ここで、各添え字 1 はダイオードが電流を遮断し、スイッチが導通する間隔を意味し、各添え字

2 はスイッチが電流を遮断し、ダイオードが導通する間隔を意味します。

PLECS は MATLAB コマンドラインを用いて、A1、A2等のマトリクスおよび、これらの伝達関

数(ボード線図)を算出することが可能です。

定常解析ツール(AC 周波数解析)で使用したバックコンバータ回路を用い、MATLAB 内部で

使用するスイッチの次数を、下記コマンドラインによって定義します。

load system('plBuckSweep'); names = plecs('get', 'plBuckSweep/Circuit', 'StateSpaceOrder'); names.Switches

MATLAB は、以下の解答を、コマンド・ウィンドウに出力します。

ans = 'Circuit/FET' 'Circuit/D'

次に、状態空間行列を算出するため、2 つの回路トポロジーをコマンドラインによって定義しま

す。

plecs('set', 'plBuckSweep/Circuit', 'SwitchVector', [1 0]); t1 = plecs('get', 'plBuckSweep/Circuit', 'Topology'); plecs('set', 'plBuckSweep/Circuit', 'SwitchVector', [0 1]); t2 = plecs('get', 'plBuckSweep/Circuit', 'Topology');

このコマンドが入力されると MATLAB は、状態空間平均化行列を算出します。

m = 15/28; A = t1.A*m + t2.A*(1-m); B = t1.B*m + t2.B*(1-m); C = t1.C*m + t2.C*(1-m); D = t1.D*m + t2.D*(1-m);

出力インピーダンス

出力インピーダンスは状態空間の入力(電流源:I_ac)、および状態空間の出力(電圧計:Vm)

によって記述される伝達関数です。この伝達関数は下記式により与えられます。

A B DC

21

21

21

21

)Dm(1DmD

)Cm(1CmC

)Bm(1BmB

)Am(1AmA

DB)AI(C(s)U

~(s)Y

~1

s

Page 153: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

151

回路モデルは MIMO(multi-input multi-output)モデルであるので、コマンドラインにより解析条件

の設定を行う場合は、適切な各入出力ベクトルのインデックス名を取得・指定する必要がありま

す。コマンド「names」にてフィールド「Inputs」および「Outputs」を指定することによって、

それらのインデックス名を確認することが可能です。

入力インデックス名を確認するため、MATLAB コマンドラインで下記コマンドを入力します。

names.Inputs

MATLAB コマンドライン・プロンプトは以下を出力します。

ans = 'Circuit/V_dc' 'Circuit/I_ac'

続いて、出力インデックス名を確認するため、MATLAB コマンドラインで下記コマンドを入力

します。

names.Outputs

MATLAB コマンドライン・プロンプトは以下を出力します。

ans = 'Circuit/Vm' 'Circuit/Am' 'Circuit/FET' 'Circuit/FET' 'Circuit/D' 'Circuit/D'

これにより出力インピーダンスを算出するのに必要な各入出力ベクトルのインデックス名は、

入力 2:Circuit/I_ac

出力 1:Circuit/Vm

であることが確認できます。

注:

ここで、使用中の MATLAB に、「Control System Toolbox」がインストールされていれば、

システムのボード線図を下記コマンドで出力することが可能です。

bode(ss(A,B(:,2),C(1,:),D(1,2)), 2*pi*100, 2*pi*50000)

なお、「Control System Toolbox」が MATLAB にインストールされていない場合は、サンプル

M-ファイル:plSSADemo.m をご参照下さい。こちらにコマンドラインによるボード線図表示手

法が記載されています。

Page 154: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

152

制御-出力伝達関数(開ループ)

制御-出力伝達関数(開ループ)は、システムの出力に影響を与える AC 外乱信号( )によっ

て記述される伝達関数です。この小信号 AC モデルは、下記式により与えられます。

ここで、

スカラ入力変数: は 1 つだけとなるので、B∞および D∞は行ベクトルになります。ベクトル:

は、DC 入力電圧および AC 小信号電流によって構成されます。

これにより以下コマンドが定義されます。

u = [28 ; 0]; B_co = ( - (t1.A-t2.A)*(A/B)+(t1.B-t2.B))*u; D_co = ( - (t1.C-t2.C)*(A/B)+(t1.D-t2.D))*u;

bode(ss(A,B_co,C(1,:),D_co(1)), 2*pi*100, 2*pi*50000)

注:

MATLAB の「bode コマンド」の実行には「Control System Toolbox」が必要になります

コマンドラインにより出力された「出力インピーダンス」および「制御-伝達関数」のボード線

図を示します。

参考文献(解析ツール適用事例)

R.W. Erickson, D. Maksimovic, "Fundamentals of Power Electronics, 2ndEd.", Kluwer Academic Publishers, 2003.

DB)AI(C(s)M

~(s)Y

~1

s

m~

AA

u)B(BBA)AA(B 21

1

21

CC

u)D(DBA)CC(D 21

1

21

m~ u

Page 155: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

153

PLECS C言語入力

C言語入力によるシミュレーションモデル操作

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

PLECSに実装されている「C言語入力(C-Script)ブロック」は、Cソースコードを入力すること

によって、任意のカスタムブロックモデルを作成する強力なカスタマイズツールです。「C言語

入力(C-Script)ブロック」を用いることによって、他のブロックモデルと同等な、ソルバへの

ダイレクトなアクセスが可能になります。

「C言語入力(C-Script)ブロック」の典型的な適用例として、

複雑な区分線形/非線形関数の実装

これらのモデルは既存のブロックモデルを用いて実装することも可能ですが、かなり複雑

なブロック構成となり、作成に手間もかかり、修正・変更も難しくなります。

任意の指定サンプリングタイミングによる変調器/パルス生成器

外部Cソースコードの読み込み

例)DSPコントローラ用ソースコードの読み込み等

PLECSは内部に「C言語入力(C-Script)ブロック」用コンパイラが実装されています。Cソース

コードのコンパイルは自動で高速に実行され、マシン語とPLECSの動的リンクが生成されます(外

部のコンパイラは必要ありません)。

C言語入力ブロックの動作原理

「C言語入力(C-Script)ブロック」は、ソルバと密接に連動して動作します。そのため、あら

かじめ「PLECSの動作原理」を理解することが非常に重要になります。

Cソースコードの関数

「C言語入力(C-Script)ブロック」に入力される Cソースコードは、他のブロックモデルと同

様に、「入力:u」「出力:y」「状態変数:xc,xd」の組み合わせによって構成される、数学シ

ステム(サブシステム)によって記述されます。

「C言語入力(C-Script)ブロック」には、上記関数(出力、更新、導関数)の他、シミュレー

ションの開始時/終了時に実行される関数(初期化、終了)を、個別に入力するコード入力ボッ

クスが用意されています。入力された上記各関数は、自動的に 1つの Cソースコードとして取り

扱われます。入力、出力、状態変数等のブロック変数には、後述するマクロコマンドを用いて自

由にアクセスすることが可能です。ソルバは、これらの定義された Cソースコードを、シミュレ

ーション中に任意のタイミングで呼び出します。

),,,( dcoutput xxutfy

),,,( dcupdate

next

d xxutfx

),,,( dcderivativec xxutfx

Page 156: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

154

初期化関数(Start Function)

初期化関数は、シミュレーション開始時に呼び出されます。C ソースコードに、連続/離散化状

態変数が含まれる場合は、マクロコマンド「ContState(i)」「DiscState(i)」を用いて初期化する

ことが可能です。

出力関数(Output Function)

出力関数は、各シミュレーション ステップ(メジャー/マイナー)で呼び出され、ブロックの出

力信号を更新します。ブロックの入出力および現在のシミュレーション時間は、マクロコマンド

「Input(i)」「Output(i)」「CurrentTime」を用いてアクセスすることが可能です。

出力関数の呼び出し中に、全ての入力信号にアクセスする必要がある場合は、「C言語入力

(C-Script)ブロック」のC言語パラメータ:指定パネルの「直接フィードスルー」のチェック

ボックスを有効にして下さい。このフラグはブロックの実行順序および代数ループの発生に影響

を与えます(代数ループの詳細はPLECSの動作原理の項を参照して下さい)。

通常、出力信号は、マイナータイムステップの間、滑らかな連続出力となり、非連続/急激な曲

線出力は、メジャータイムステップで発生します。関数の呼び出しとメジャータイムステップが

同期動作しているかを確認するには、マクロコマンド「IsMajorStep」を使用します。詳細に関

しては後述の「非連続モデリング」を参照して下さい。

注:

出力関数の呼び出し中に、時間進行に関する定義を与えた場合、プログラムに誤作動が生じる恐

れがあります。この場合、出力関数は、同一のメジャータイムステップで、複数回呼び出される

可能性があり、また、関数呼び出しとマイナータイムステップの間で、時間刻みが前後へずれる

可能性もあるため、メジャータイムステップと同期して実行するプログラムコードは、更新関数

(Update Function)で定義する必要があります。

更新関数(Update Function)

「C言語入力(C-Script)ブロック」に離散状態変数が存在する場合、更新関数は、全ての出力

関数が実行された後、メインループ(メジャータイムステップ)中に一度だけ呼び出され、マク

ロコマンド「DiscState」を用いて離散状態変数が更新されます。

導関数(Derivative Function)

「C言語入力(C-Script)ブロック」に連続状態変数が存在する場合、導関数は、ソルバの積分

ループ(マイナータイムステップ)中に呼び出され、マクロコマンド「ContDeriv」を用いて導

関数が更新されます。

導関数は、マイナータイムステップの間、滑らかな連続出力となり、非連続/急激な曲線出力は、

メジャータイムステップで発生します。詳細に関しては後述の「非連続モデリング」を参照して

下さい。

終了関数(Terminate Function)

終了関数は、常にシミュレーションの終了時に呼び出されます(正常終了、途中終了、エラーに

よる強制終了を含む)。この関数は初期化関数を与えた全ての要素に、自由に使用することが可

能です(例:ファイルハンドル、Memory等)。

Page 157: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

155

宣言文(Code Declarations)

宣言文はグローバル宣言文/変数として「C言語入力(C-Script)ブロック」で使用されます(適

用範囲はブロック内のみ)。Cソースコードで用いる、標準ヘッダ(例:math.h、stdio.h等)、マ

クロ、静的変数、ヘルパ関数等を定義する場合に使用します。

また、宣言文で外部Cソースコードを指定することも可能です。モデルファイルが格納されてい

るフォルダは、自動的にインクルードのサーチパスに含まれるため、目的のCソースコードファ

イルがモデルファイルと同じフォルダに格納されている場合は、ファイル名を指定すると自動的

にコンパイルが実行されます(#include <Cソースファイル名>)。目的のCソースコードファイ

ルが他のフォルダに格納されている場合は、「モデルファイルとの相対パス」で指定します。

非連続モデリング

任意のタイミングで、「C言語入力(C-Script)ブロック」に定義したプログラムを、正確に動

作させるためには、下記の手法に従い、信号を検出する必要があります。

1 プログラムの動作タイミングが未知、またはブロックの入力/状態に依存し、不連続、また

はイベント検出時に発生する場合は、ソルバのイベント検出を補助するゼロ-クロッシング

信号を定義する必要があります。このイベント検出が、正確にモデリングされていない場合、

出力結果にジッターが生じます。

2 マイナータイムステップでは、導関数および出力信号は、滑らかかつ連続の関数である必要

があります。関数を検出できない場合は、出力結果には数値積分誤差が生じます。

ゼロ-クロッシング関数の定義

ゼロ-クロッシング関数を実装するには、C言語パラメータダイアログボックスの指定タブから、

プログラムで使用する「ゼロ-クロッシング数」を定義する必要があります。さらに、出力関数

(Output Function)で、適用するゼロ-クロッシング関数に応じて、マクロコマンド「ZCSignal(i)」

を、個別に定義する必要があります(例:ブロックの入力/状態もしくは現在のシミュレーショ

ン時間への適用)。ソルバは、定義された全てのゼロ-クロッシング関数をモニタリングします。

積分ループ(マイナータイムステップ)中に、これらのゼロ-クロッシング信号が1つでも変化し

た場合、ソルバのタイムステップは細分化されるため、次回のメジャータイムステップは、最初

のゼロ-クロッシング関数が実行された後に更新されます。

例として、ある閾値(しきい値)で、出力が変化する補償器をモデリングする場合、下記プログ

ラムに従い、ゼロクロッシング信号を定義する必要があります。

ZCSignal(0) = Input(0) - 1.;

ゼロ-クロッシング関数が定義されない場合、例えば入力信号が、非連続に、0.9から1.23に増加

する際に、ソルバは、タイムステップを自動で追加してしまい、プログラムの動作が遅くなる可

能性があります。ゼロ-クロッシング信号が定義されている場合は、入力信号は連続信号として

取り扱われ、プログラムはソルバのタイムステップと同期して動作するため、「C言語入力

(C-Script)ブロック」の出力も、正確なタイミングで出力されます。

注:

ゼロ-クロッシング信号が、シミュレーション時間のみに対応している場合(例:イベント検出

タイミングが既知)は、「離散変数サンプリングタイム」およびマクロコマンド「NextSampleHit」

を適用することが可能です(離散変数サンプリングタイムの項を参照して下さい)。

Page 158: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

156

積分ループ(マイナータイムステップ)時の連続関数定義

ソルバは、異なる時間刻みで評価された導関数の積分値を、指定された時間刻み(現在のタイム

ステップ)で統合し、連続状態の導関数とします。その出力結果は、高次の多項式によって近似

されます。例えば、デフォルトソルバ(Dormand-Prince)は、積分ループにおいて、6つの導関

数を算出し、5次の多項式によって積分値を近似します。

このことからも明らかなように、ソルバは、1次減次された多項式によって導関数を評価します

が、非連続関数、および平滑でない導関数の近似においては、無限の多項式を必要とします。

このような数値取扱い上の矛盾によって、連続状態のモデリングには出力結果に数値誤差が生じ

る可能性があります。このような数値誤差を回避するためには、導関数は連続状態導関数として

「区分線形平滑化関数(piecswise smooth function)」を用いて、指定の関数群に対し、1つの

積分ループで動作するよう、明確に記述する必要があります。

例えば、「C言語入力(C-Script)ブロック」の出力信号が、積分器の入力信号となる場合は、

連続状態変数の導関数となる可能性があります。この場合、出力信号は「区分線形平滑化関数

(piecswise smooth function)」を用いて記述されている必要があります。

ここで、ある閾値(しきい値)で、出力が変化する補償器をモデリングする場合の出力関数(Output

Function)のプログラミングは、下記記述となります。

if (IsMajorStep) if (Input(0) >= 1.) Output(0) = 1.; else Output(0) = 0.; ZCSignal(0) = Input(0) - 1.;

条件「if (IsMajorStep)」は、出力信号がメジャータイムステップのみで、変化することを定義し、

マイナータイムステップの間は、積分ループの各値が一定のまま、評価されない状況となってい

ます。ただし、ゼロ-クロッシング信号は、ソルバのイベント検出ループに従い、マイナータイ

ムステップで更新されます。

サンプリング時間

「C言語入力(C-Script)ブロック」を用いて、連続システム、非連続システム、連続/非連続・

複合システムをモデリングすることが可能です。作成予定のシステムによって、サンプリング時

間の指定は異なります。C言語パラメータダイアログボックスの指定タブ「サンプリング時間」

によってシステムのサンプリング時間を指定します。指定されたサンプリング時間によって、ソ

ルバは定義された関数を呼び出します。

連続サンプリング時間

連続時間で動作するブロックは、「サンプリング時間:0、または[0,0]」で定義され、各メジャ

ー/マイナータイムステップで実行されます。下記条件の場合は、連続サンプリング時間を選択

する必要があります。

ブロックは連続関数(または区分線形連続)によってモデリングされている

ブロックには連続状態が存在する

ブロックにイベント検出用ゼロクロッシング信号が1つ以上モデリングされている

Page 159: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

157

半連続サンプリング時間

半連続時間で動作するブロックは、「サンプリング時間:[0,-1]」で定義され、各メジャータイ

ムステップで実行されますが、マイナータイムステップでは実行されません。ブロックがゼロク

ロッシング信号を必要とせず、離散値のみを出力する場合は、半連続サンプリングの代わりに連

続サンプリングを選択することが可能です。

離散-固定サンプリング時間

離散-固定サンプリング時間で動作するブロックは、「サンプリング時間:Tp(固定)、または

[Tp,To]」で定義され、定義された固定のメジャータイムステップで実行されます。ここで、固

定サンプリング時間:Tpは、正の整数である必要があります。固定サンプリングのオフセット

時間値:Toは、0≦To<Tpとなる正の整数である必要があります(To=0が入力された場合無視さ

れます)。出力/更新関数はタイムステップ:n∙Tp+To(n:整数)のタイミングで実行されます。

離散-可変サンプリング時間

離散-可変サンプリング時間で動作するブロックは、「サンプリング時間:-2、または[-2,0]」

で定義され、ブロック自身で定義されるメジャータイムステップで実行されます。

プログラムにマクロコマンド「NextSampleHit」が定義された場合、コマンド終了後にブロック

は動作します。この記述は出力/更新関数に定義されます。この際、直近の更新関数が呼び出さ

れた後のマクロコマンド「NextSampleHit」は、現在のシミュレーション時間より大きな値を指

定する必要があります。現在のシミュレーション時間より小さな値が指定された場合は、エラー

によりシミュレーションが終了します。

プログラムに離散-可変サンプリング時間のみが定義されている場合は、初期化関数(Start

Function)に初期化条件(first sample hit)を指定しないと、ブロックのプログラムは実行さ

れません。初期化関数で初期化条件を定義する場合はマクロコマンド「CurrentTime」を使用し

ます。

注:

PLECS Blocksetで離散-可変サンプリング時間を適用する場合は、間接的に、Simulinkソルバ内部

のゼロ-クロッシング信号にアクセスし、サンプリング時間を制御します。そのため、離散-可変

サンプリング時間によって定義された時間刻みと、実際のシミュレーション時間とは、わずかな

誤差が生じる可能性があります。

PLECS Standalone場合は、ソルバに直接アクセスするため、上記誤差は生じません。

複合サンプリング時間

複合サンプリングシステムをモデリングする場合は、異なる行列(n×2)を用いた複数サンプ

リング時間の定義が可能です。例えば、プログラムに連続状態が含まれ、固定サンプリング時間:

0.5秒(オフセット時間0.1秒)で実行されるブロックの場合、サンプリング時間には[0, 0; 0.5,0.1]

の記述を追加します。

ここでマクロコマンド「IsSampleHit(i)」を出力/更新関数へ適用することによって、定義された

複合サンプリング時間が、現在のシミュレーション時間と、合致しているかを確認することが可

能になります。マクロコマンド「IsSampleHit(i)」のインデックス(i)は、サンプリング時間行

列のゼロベース配列になります。

Page 160: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

158

上述の複数固定サンプリングで動作する例題は以下のように記述できます。

if (IsSampleHit(1))

// this code is only executed at t == n*0.5 + 0.1

ユーザーパラメータ

異なったコンテクストで使用できる一般的なC-スクリプトを実装する場合は、外部のパラメータ

として関数を定義することが可能です。

外部パラメータは、C言語パラメータダイアログボックスの指定タブ「パラメータ」に、カンマ

区切りデータとして指定します。それぞれのパラメータはMATLABの数式またはワークスペース変

数によって定義されます。パラメータはスカラ、ベクトル、行列、3次元配列によって定義可能

です。

マクロコマンド「NumParameters」を使用することによって、外部パラメータの数を確認する

ことが可能です。マクロコマンド「ParamNumDims(i)」と「ParamDim(I,j)」はパラメータの次

元およびサイズを出力します。

パラメータ値へアクセスするには、マクロコマンド「ParamRealValue(I,j)」を使用します。ここ

で、「 j 」はデータ配列の線形インデックスです。例えば、3次元配列の特定の行、列にアクセ

スする場合は、以下のような記述となります。

int rowIdx = 2; int colIdx = 0; int pageIdx = 1; int numRows = ParamDim(0, 0); int numCols = ParamDim(0, 1); int elIdx = rowIdx + numRows*(colIdx + numCols*pageIdx); double value = ParamRealData(0, elIdx);

ランタイムチェック

C言語パラメータダイアログボックスの指定タブ「ランタイムチェック有効」のチェックボック

スをアクティブにすると、マクロコマンドのブロックデータ(信号値、状態、ユーザーパラメー

タ等)へのアクセス違反確認機能が有効になります。同時に、マイナータイムステップ時の状態

変更、出力関数(直接フィードスルー無効時)の入力信号へのアクセスといった、プログラムの

ソルバ呼び出し違反確認機能も有効となります。

このランタイムチェック機能は、シミュレーション実行時の負荷となりますので、プログラムに

エラーが存在しない場合は、ランタイムチェックを無効化し、シミュレーション時間を短縮化す

ることが可能ですが、プログラムにアクセス違反が存在した場合はアプリケーションが強制終了

するため、ランタイムチェック機能は、基本的に無効化しないで下さい。

注:

ランタイムチェック機能はDMA(ダイレクトメモリアクセス)によるアクセス違反を検出でき

ません。

Page 161: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

159

C言語入力ブロックの適用例

ここでは、「C言語入力(C-Script)ブロック」を用いて、いくつかの簡単なプログラムを作成

します。各プログラムはブロックモデルとして、ライブラリに格納されています。

単純な関数の適用例 (掛け算)

「C 言語入力(C-Script)ブロック」を用いて、入力値に「2」を乗算する単純な掛け算プログ

ラムを作成します。このプログラムのシステム方程式は下記となります。

C言語入力(C-Script)ブロックの設定(指定タブ)

ブロックには、「入/出力:1、状態およびゼロクロッシング信号:なし」の条件が与えられます。

定義する出力関数がブロックへの入力値に依存するため「直接フィードスルーあり」が「有効」

となっています。出力信号は連続時間となるため、「サンプリング時間」も連続時間「0(また

は[0, 0])」となります。

出力関数のソースコード(コード入力タブ)

Output(0) = 2.*Input(0);

出力関数は、全てのメジャー/マイナータイムステップで現在の入力信号を取得し、「2」を乗算

した結果を出力します。

離散状態の適用例 (遅延サンプリング)

入力信号を「1秒」でサンプリングし、1周期分遅延した信号を出力するプログラムを実装しま

す。このプログラムのシステム方程式は下記となります。

ここで、ソルバのメジャータイムステップにおいて、先ず出力関数が呼び出され、次に更新関数

が呼び出されることに留意して下さい。

uxxutfy dcoutput 2),,,(

ddcoutput xxxutfy ),,,(

uxxutfx dcupdate

next

d ),,,(

Page 162: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

160

C言語入力(C-Script)ブロックの設定(指定タブ)

ブロックには、「入/出力:1」の条件が与えられます。サンプリング値を保存するため、「1つ

の離散状態」変数がプログラムで使用されます。ブロックへの入力信号は、更新関数のみに適用

されるため「直接フィードスルーあり」は「無効」とします。出力信号は離散時間となるため、

「サンプリング時間」は「1(または[1, 0])」となります。

出力関数のソースコード(コード入力タブ)

Output(0) = DiscState(0);

更新関数のソースコード(コード入力タブ)

DiscState(0) = Input(0);

連続状態の適用例 (積分器)

入力信号を積分する連続状態積分器プログラムを実装します。このプログラムのシステム方程式

は下記となります。

cdcoutput xxxutfy ),,,(

uxxutfx dcderivativec ),,,(

Page 163: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

161

C言語入力(C-Script)ブロックの設定(指定タブ)

ブロックには、「入/出力:1」の条件が与えられます。入力値を積分するため、「1つの連続状

態」変数が、プログラムで使用されます。ブロックへの入力信号は、導関数のみに適用されるた

め「直接フィードスルーあり」は「無効」とします。出力信号は連続時間となるため、「サンプ

リング時間」は「0(または[0, 0])」となります。

出力関数のソースコード(コード入力タブ)

Output(0) = ContState(0);

導関数のソースコード(コード入力タブ)

ContDeriv(0) = Input(0);

イベント検出の適用例 (積分器:数値折り返し機能)

前例題(積分器)で実装した入力信号を積分する連続時間積分器プログラムに数値折り返し条件

(上限:2π、下限:0)を実装します。このような積分器は、位相同期回路(PLL)で誤差を除

去するといった、位相が無限に増加する条件で使用されます。この数値操作は、数学関数を用い

て実装することは非常に難しい場合が多いですが、「C言語入力(C-Script)ブロック」を用い

てプログラムを作成する場合は、比較的簡単に実装することが可能です。

Page 164: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

162

C言語入力(C-Script)ブロックの設定(指定タブ)

基本的な設定項目は前例題(積分器)と同様ですが、これに加えて、積分器の状態が上/下限に

達したタイミングを正確に検出するため、2つの「ゼロ-クロッシング信号」を使用します。

出力関数のソースコード(コード入力タブ)

#define PI 3.141592653589793 if (IsMajorStep)

while (ContState(0) >= 2*PI) ContState(0) -= 2*PI; while (ContState(0) < 0) ContState(0) += 2*PI;

ZCSignal(0) = ContState(0); ZCSignal(1) = ContState(0) - 2*PI; Output(0) = ContState(0);

全てのメジャータイムステップで、積分器の状態が上/下限値に達した場合は、「2π」が積分器

の連続状態に加減算されます。この数値操作が再度、上/下限値に達する時点で繰返し実行され

ます。また、全てのメジャー/マイナータイムステップで、ゼロ-クロッシング信号は、連続状態

が、「0または2π」のタイミングで「0」になるよう算出され、最終的に積分器の状態が出力さ

れます。

マイナータイムステップの間、システムの状態に依存して、ソルバが積分実行時に状態を更新、

もしくはゼロ-クロッシング信号の「0」を算出しているため、ブロックの状態が変更されない可

能性があることに留意して下さい。どちらの場合でも、状態の外部変更は予測できない結果を出

力します。

導関数のソースコード(コード入力タブ)

ContDeriv(0) = Input(0);

Page 165: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

163

区分線形関数の適用例 (飽和)

飽和のプログラムを実装します。このプログラムのシステム方程式は下記となります。

この関数を実装する場合は、数値誤差を避けるため積分ループの間、出力方程式が変化しない事

を確認する必要があることに留意して下さい。

C言語入力(C-Script)ブロックの設定(指定タブ)

ブロックには、「入/出力:1」の条件が与えられます。「状態」変数は使用しません。メジャー

タイムステップのタイミングを正確に検出するため、2つの「ゼロ-クロッシング信号」を使用し

ます。

u

u

u

uxxutfy dcoutput

1

11

1

for

for

for

,1

,

,1

),,,(

Page 166: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

164

出力関数のソースコード(コード入力タブ)

static enum NO_LIMIT, LOWER_LIMIT, UPPER_LIMIT mode; if (IsMajorStep) if (Input(0) > 1.) mode = UPPER_LIMIT; else if (Input(0) < -1.) mode = LOWER_LIMIT; else mode = NO_LIMIT; switch (mode) case NO_LIMIT: Output(0) = Input(0); break; case UPPER_LIMIT: Output(0) = 1.; break; case LOWER_LIMIT: Output(0) = -1.; break; ZCSignal(0) = Input(0) + 1.; ZCSignal(1) = Input(0) - 1.;

このプログラムでは、1つの出力関数のみが使用されるので、静的モード変数(NO_LIMIT、

LOWER_LIMIT、UPPER_LIMIT)を使用し、関数呼び出しのタイミングを正確に実行します。

プログラムは入力信号を判別し、有効なモードをメジャータイムステップ時に決定します。有効

モードが判別された後のマイナータイムステップでは、選択されたモードの方程式が適用されま

す。

シミュレーションの時間刻みが適切に設定されていない場合、または入力信号がマイナータイム

ステップ時に制限値を超過する場合は、出力信号もその条件を追従しようとしますが、プログラ

ムに実装された、制限値を監視する2つのゼロクロッシング信号が時間刻みの減少を防ぎます。

注:

静的モード変数を使用する代わりに、離散状態変数を用いて、方程式を判別するロジックを実装

することも可能です。上記例題では、制御信号が一回のシミュレーションステップのみで適用さ

れるため、静的変数で対応可能でしたが、制御信号が複数のシミュレーションステップで適用さ

れる場合は、離散状態変数を適用する方が効率的です。

複数サンプリング時間の適用例 (ターンオン遅延信号)

ターンオン遅延信号(デッドタイム)はインバータの整流時に発生する短絡を防ぐために使用さ

れます。スイッチング入力信号が「0」から「1」に変化するとき、入力信号が「1」の間、定義

された遅延信号が出力されます。入力信号が「0」になると、出力も瞬時に「0」へリセットされ

ます。

Page 167: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

165

C言語入力(C-Script)ブロックの設定(指定タブ)

ブロックには、「入/出力:1」の条件が与えられます。前回のメジャータイムステップの入力信

号値を保存するため、「1つの離散状態」変数がプログラムで使用されます。このプログラムで

は、半連続サンプリング時間で動作するため、2つのサンプリング時間を使用します。入力信号

はメジャータイムステップでサンプリングされ、離散状態変数は遅延時間適用後のメジャータイ

ムステップでサンプリングされます、これにより「サンプリング時間」の設定は「[0, 1;-2, 0]」

となります。ユーザーパラメータ「遅延時間(デッドタイム)値」は、パラメータ入力ボックス

に設定します。

宣言文のソースコード(コード入力タブ)

#include <float.h> #define PREV_INPUT DiscState(0) #define DELAY ParamRealData(0, 0)

宣言文の標準ヘッダ「float.h」で、出力関数で用いる「DBL_MAX」、「DBL_EPSILON」の2つ

の定数を定義します。これに加えて2つのマクロコマンド「DiscState」「ParamRealData」が定

義されます。

初期化関数のソースコード(コード入力タブ)

if (NumParameters != 1)

SetErrorMessage("「パラメータ:デッドタイム(delay time)が定義されていません」");

return; if (ParamNumDims(0) != 2 || ParamDim(0, 0) != 1 || ParamDim(0, 1) != 1 || DELAY <= 0.)

SetErrorMessage("「デッドタイムは正の整数で定義して下さい」");

return;

初期化関数では設定されたデッドタイム(遅延時間)のユーザーパラメータ値が適切であるか確

認します。

Page 168: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

166

出力関数のソースコード(コード入力タブ)

if (Input(0) == 0) Output(0) = 0; NextSampleHit = DBL_MAX; else if (PREV_INPUT == 0) NextSampleHit = CurrentTime + DELAY; if (NextSampleHit == CurrentTime) NextSampleHit = CurrentTime * (1.+DBL_EPSILON); else if (IsSampleHit(1)) Output(0) = 1; NextSampleHit = DBL_MAX;

入力信号が「0」の場合は、プログラムは入力信号を追従し「0」を出力します。離散状態変数

検出の判別値は、ここでは重要ではないため適当な数値(最大浮動少数点)を定義します。

入力信号が「0」でない場合(例入力信号が「0」から「1」へ切り替わった瞬間)に、離散状態

変数検出が実行され、現在のシミュレーション時間に遅延時間が適用されます。

現在および直前の入力信号が「0」以外で、離散状態変数検出が実行された後の場合(遅延時間

が適用され現在の入力信号も「0」以外)は、プログラムは「1」を出力し、離散状態変数検出

の判別値は、再び、適当な数値(最大浮動少数点)が設定され、リセットされます。

ここで、条件「if (NextSampleHit == CurrentTime)」を検出した場合には、特殊なロジックを適

用します。与えられたデッドタイムが非常に小さく、これに対し、シミュレーションの時間刻み

(現在のシミュレーション時間)が非常に大きい場合(15桁以上の差)、浮動小数点の丸め誤

差に問題が生じ、シミュレーションにエラーが生じる可能性があります。

更新関数のソースコード(コード入力タブ)

PREV_INPUT = Input(0);

更新関数では、以降の時間刻みで使用する前回の入力、として現在の入力値を保存します。

Page 169: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

167

C言語入力ブロックで用いるマクロコマンド

「C言語入力(C-Script)ブロック」で用いるマクロコマンド一覧表は、下記になります。

マクロコマンド 種類 アクセス 特徴

NumInputs int R 入力信号数を出力します。

NumOutputs int R 出力信号数を出力します。

NumContStates int R 連続状態数を出力します。

NumDiscStates int R 離散状態数を出力します。

NumZCSignals int R ゼロ-クロッシング数を出力します。

NumParameters int R ユーザーパラメータ数を出力します。

CurrentTime double R

現在のシミュレーション時間を出力します。(初

期化関数呼び出し時のシミュレーション開始時

間以降)

IsMajarStep int R メジャータイムステップを検出して「1」を出

力します。(非検出時=0)

IsSampleHit (int i) int R i番目のサンプリング時間を検出して「1」を出

力します。(非検出時=0)

NextSampleHit double R/W

次のシミュレーションステップでブロックが実

行されるタイミングを指定します。可変サンプ

ル時間で動作するブロックのみで使用可能で

す。

Input (int i) double R i番目の入力信号を検出して、その値を出力しま

す。

Output (int i) double R/W i番目の出力信号を検出して、その値を出力しま

す。(出力は出力関数呼び出し時に変化)

ContState(int i) double R/W

i番目の連続状態を検出して、その値を出力しま

す。(連続状態はマイナータイムステップ時に

変化なし)

ContDeriv(int i) double R/W i番目の導関数を検出して、その値を出力しま

す。

DiscState(int i) double R/W

i番目の離散状態を検出して、その値を出力しま

す。(離散状態はマイナータイムステップ時に

変化なし)

ZCSignal(int i) double R/W i番目のゼロ-クロッシング信号を検出します。

ParamNumDims(int i) int R i番目のユーザーパラメータの次元を出力しま

す。

ParamDims(int i, j) int R i番目のユーザーパラメータのj番目の次元を出

力します。

ParamRealData(int i, j) double R

i番目のユーザーパラメータのj番目の要素を出

力します。インデックスjはユーザーパラメータ

要素の線形インデックスです。多次元配列のイ

ンデックスは、マクロコマンド

ParamNumDims、ParamDimsで定義された情

報を用いて算出します。

SetErrorMessage(char *msg) void W

プログラムにエラーが発生した場合、エラーメ

ッセージを出力し、シミュレーションを強制終

了します。通常、このマクロコマンドはreturn

文の後に定義されます。ポインタmsgは、静的

メモリを指定する必要があります。

注:

入/出力信号の値は、連続したメモリ領域に保存されませんので、ポインタ演算ではなく、マク

ロコマンドのみによってアクセス可能になります。例えば、下記プログラムで、2行目に記述さ

れる出力へのアクセスは、エラーが出力され実行できません。

double *output = &Output(0); // not recommended output[1] = 1; // fails *(output + 1) = 1; // fails Output(1) = 1; // ok

Page 170: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

168

シミュレーションスクリプト コマンドライン入力によるシミュレーションモデル操作

(使用環境:PLECS Version 3.3 日本語 OS:Windows)

スクリプトを用いてシミュレーションを実行することによって、複数のパラメータによるモデル

の評価、または、シミュレーション結果のポスト処理における、任意な情報の抽出が可能になり

ます。PLECS Blocksetでは、スクリプトをMATLAB環境で使用します。Simulinkのスクリプティ

ングインターフェイスが、パラメータの変更およびシミュレーションの実行を記述したスクリプ

ト(M-ファイル)を認識します。Simulinkのスクリプティングに関する詳細は、別途Mathwaorks

社にご確認下さい。PLECS BlocksetにはPLECS回路に関する追加コマンドが実装されています。

PLECS Standaloneには異なる2種類のスクリプティング手法が実装されています。

スクリプトは、PLECS Standaloneで直接実行可能です。スクリプトはMATLABで使用される

構文とよく似た構造になっています。

PLECS Standaloneは、XML-RPCを介した他のプログラムによるPLECS操作が可能な

XML-RPCインターフェイスが実装されています。PythonやRubyといったプログラム言語は、

デフォルトで、XML-RPCをサポートしています。他の言語用の機能拡張は、インターネッ

ト上で、無料で取得できます。

PLECS Standaloneのスクリプティングに関する詳細は、「PLECS Standaloneのシミュレーション

スクリプト」の項に記載されています。

PLECS Blockset コマンドライン入力

PLECSにはMATLABコマンドラインから直接、PLECS回路ブロックのパラメータを操作するた

めの、コマンドライン・インターフェイス(CLI)が実装されています。

下記は一般的なCLIの入力形式になります。

plecs('cmd', 'パラメータ 1', 'パラメータ 2', ... )

ここで、「cmd」の部分には下記コマンドが使用されます。

「get、 set、 thermal、export、 version、hostid」

回路要素(コンポーネント)のパラメータ確認

回路要素の入力パラメータ値をコマンドラインで確認するには、「get」コマンドを使用します。

以下に入力形式を示します。

plecs( 'get' , 'コンポーネント・パス' , '入力パラメータ名')

ここで、「コンポーネント・パス」はモデルファイル名を含めた、PLECS回路ブロック名から回

路要素までのフルパスになります。下記のように入力パラメータ名を省略した場合は、コンポー

ネントの、全ての入力パラメータ名および入力値が表示されます。

plecs('get', 'コンポーネント・パス')

Page 171: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

169

≪入力例≫

MATLAB コマンドラインにて、ファイルが格納されているフォルダ(カレントディレクトリ)に

移動し、下記コマンドを入力します(またはファイル読込み時に、ファイルまでのフルパスを入

力)。

Simulinkモデルファイル名:test.mdl

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1

>> load_system test %ファイルの読み込み

>> open_system test %ファイルを開く場合に使用(または「open」コマンド:open test)

>> plecs( 'get' , 'test/Circuit/D1' , 'Vf')

>> plecs( 'get' , 'test/Circuit/D1')

特殊なコマンドパラメータとして、参照する PLECS 回路のパスを確認する「CurrentCircuit」が

用意されています。構文では回路要素へのパス(コンポーネント・パス)が省略されます。

>> plecs( 'get' , ' ' , ' CurrentCircuit')

このコマンドパラメータは、サブシステムの初期化コマンドのみで使用可能です。

回路要素(コンポーネント)のパラメータ指定

回路要素の入力パラメータ値をコマンドラインで指定するには、「set」コマンドを使用します。

以下に入力形式を示します。

plecs('set', 'コンポーネント・パス', '入力パラメータ名', ’入力値’)

≪入力例≫

Simulinkモデルファイル名:test.mdl

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1、順電圧 Vf:0.7→0.5

>> load_system test

>> plecs('set', 'test/Circuit/D1', 'Vf', '0.5')

Scopeトレースの表示/削除指定

Scopeのトレースをコマンドラインで指定するには、「scope」コマンドを使用します。「HoldTrace」

コマンドを使用すると、「Scopeのパス」で指定されたScopeに、前回のシミュレーション結果を

保持します。これに「トレース名」パラメータが追加された場合、トレース名称が指定されます。

トレース名が指定されない場合は、デフォルトのスコープ名が適用されます。

以下に入力形式を示します。

plecs( 'scope' , 'Scope のパス' , 'HoldTrace')

plecs( 'scope' , 'Scope のパス' , 'HoldTrace' , 'トレース名')

Page 172: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

170

トレースを削除する場合は、「ClearTraces」コマンドを使用します。「Scope のパス」で指定さ

れた Scope のトレース(シミュレーション結果)が、全て削除されます。

plecs( 'scope' , 'Scope のパス' , 'ClearTraces')

≪入力例≫

Simulinkモデルファイル名:test.mdl

PLECS回路ブロック名:Circuit

PLECS Scope名:Scope、トレース名:I_ac_01

>> load_system test

>> plecs('scope', 'test/Scope', 'HoldTrace', 'I_ac_01')

入力値の熱設定ファイルへの変換および確認

スイッチング素子の熱設定ファイルの「各入力パラメータ値」をコマンドラインで指定するには、

「thermal」,「import」コマンドを使用します。

以下に入力形式を示します。

plecs('thermal', 'import', valVon, valEon, valEoff) plecs('thermal', 'import', valVon, val Eon, valEoff, ... valCauer )

ここで、ターンオン/オフ損失は電流のインデックス「i」、温度のインデックス「T」、電圧の

インデックス「v」、および、各インデックスに対応した損失の配列「E」として、「valEon(入

力値)」、「valEoff(入力値)」で定義されます。

導通損失は、電流のインデックス「i」、温度のインデックス「T」、各インデックスに対応した

電圧の行列「v」として、「valVon(入力値)」で定義されます。

熱インピーダンスは、熱等価RCモデルの「R」、「C」の配列として、「valCauer(入力値)」

で定義されます。上記で定義されたSW素子の熱特性が熱設定エディタにインポートされます

コマンドライン入力を用いることによって、以前のバージョン(PLECS 1.x)にて作成した熱設

定を、現行バージョン(PLECS 2.x)の熱設定ファイルにインポートすることも可能です。

コマンドラインを用いることによって、既定の熱設定ファイルデータから、各損失データおよび、

説明文を「MATLAB ワークスペース」へ出力することが可能です。熱設定ファイルの各入力パラ

メータ値を MATLAB ワークスペースに出力するには、「thermal」,「export」コマンドを使用

します。

以下に入力形式を示します。

plecs('thermal', 'export', '熱設定ファイル名')

ここで、出力するファイルの指定「熱設定ファイル名」は、拡張子名(*.xml)を含めたフルパ

スで指定する必要があります。熱設定ファイルが適用されている Simulinkモデル名と熱設定サ

ーチパスに登録してあるフォルダ以降のパスで指定することも可能です。この場合、拡張子名

(*.xml)を入力する必要はありません。

plecs('thermal', 'export', '熱設定ファイル名', 'モデルファイル名')

Page 173: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

171

≪入力例≫ 熱設定ファイルの入力

始めに、各損失値をコマンドラインで定義します。(対象とする損失値が存在しない場合は、「0」

を入力して下さい)

[ターンオン損失]

>> valEon = struct(... 'v', [500 600], ... 'i', [0 5 8 10 15], ... 'T', [25 125], ... 'E', cat(3, [0 .28 .45 .56 .96; 0 .36 .55 .71 1.08], ... [0 .73 .94 1.17 1.77; 0 .83 1.03 1.34 1.78]) .* 1e-3);

[ターンオフ損失]

>> valEoff = struct(... 'v', [500 600], ... 'i', [0 5 8 10 15], ... 'T', [25 125], ... 'E', cat(3, [0 .60 .93 1.08 1.36; 0 .79 1.09 1.27 1.63], ... [0 .62 1.00 1.15 1.43; 0 .8 1.25 1.37 1.82]) .* 1e-3);

[導通損失]

>> valVon = struct(... 'i', [0 1.2 4.8 14 18], ... 'T', [82 100 150], ...

'v', [0 0.9 1.39 1.95 2.28; ... 0 0.9 1.34 1.89 2.4; ... 0 0.9 1.54 2.26 2.75]');

[オプション:熱等価RCモデル(Cauer)]

>> valCauer = struct(... 'C', [0.5243 1.076 44 20.25].*1e-3, ... 'R', [1.756 1.717 0.545 0.094]);

上記でMATLABワークスペースに定義された変数を下記コマンドでインポートすると、自動で熱設

定エディタが起動し、入力値が表示されます。熱等価RCモデル(Cauer)はオプション扱いです

ので、入力必須項目ではありません。

>> plecs('thermal', 'import', valVon, valEon, valEoff)

>> plecs('thermal', 'import', valVon, valEon, valEoff, valCauer)

Page 174: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

172

≪入力例≫ 熱設定ファイルの MATLABワークスペースへの出力

Simulinkモデルファイル名:plSMPS_CCM.mdl (Demosに含まれる例題ファイル)

熱設定ファイル名:SPP20N60C3.xml

熱設定ファイルを直接指定する場合は、拡張子名を含めたフルパスを入力して下さい。

>> plecs('thermal', 'export', 'C:/PLECS/Thermal_Library/Infineon/SPP20N60C3.xml')

モデルファイルを指定する場合は、モデルファイルを読込み、拡張子名を含めない相対パスを入

力して下さい。

>> load_system plSMPS_CCM

>> plecs('thermal', 'export', 'Infineon/SPP20N60C3', 'plSMPS_CCM')

PLECS Viewerへの出力

「PLECS Viewerへの出力」をコマンドラインで指定するには、「export」コマンドを使用しま

す。以下にコマンドラインの入力形式を示します。

plecs( 'export' , 'モデルファイル名')

このコマンドを入力すると、PLECS Viewerファイル名、および保存場所を指定するダイアログ

ボックスが表示されます。

オプション指定として、出力されるPLECS回路図を非表示にする場合は、「モデルファイル名」

以降に、非表示コマンド「非表示:true / 表示:false」を追加入力します。以下にコマンドライ

ンの入力形式を示します。

plecs( 'export' , 'モデルファイル名' , true / false)

コマンドラインにて、PLECS Viewerファイル名、および保存場所を指定する場合のコマンドラ

イン入力は以下になります。

plecs( 'export' , 'モデルファイル名' , true / false , '保存ファイル名' )

ここで、保存ファイル名は拡張子(*.mdl)を含むフルパスで指定して下さい。フォルダパ

スが指定されない場合は、カレントディレクトリに保存されます。

≪入力例≫

Simulinkモデルファイル名:test.mdl

PLECS回路ブロック名:Circuit

>> load_system test

>> plecs('export', 'test')

>> plecs('export', 'test', true)

>> plecs('export', 'test', false, 'C:/test_exported.mdl')

Page 175: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

173

その他のコマンドライン入力

インストールされている PLECS のバージョンをコマンドラインで確認するには、「version」

コマンドを使用します。以下に入力形式を示します。

plecs( 'version' )

MATLAB ライセンス番号および Host-ID をコマンドラインで確認するには、「hostid」コマン

ドを使用します。以下に入力形式を示します。

plecs( 'hostid' )

≪入力例≫

使用バージョン:PLECS 3.3.x

>> plecs( 'version' )

ans = 3.3.x

>> plecs( 'hostid' )

ans =

User: ユーザー名

HostID: ホスト ID 番号

MATLAB: MATLAB ライセンス番号

floating: フローティングライセンス有/無:1/0

PLECS Standaloneのシミュレーションスクリプト

PLECS Standalone のスクリプトは、下図のシミュレーションスクリプトダイアログウイ

ンドウによって操作します。シミュレーションスクリプトダイアログは、

ファイルメニュー → シミュレーション → シミュレーション スクリプト...

を選択することによって起動します。

Page 176: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

174

ダイアログウインドウの左側には、使用している「スクリプト名」が表示されます。新しい

スクリプトを追加する場合は、スクリプトリスト下部に表示されている「+」のボタンをク

リックして下さい。スクリプトを削除する場合は、削除したいスクリプトをリストから選択

し、下部に表示されている「-」のボタンをクリックして下さい。

ダイアログウインドウの右側には、「エディターウインドウ」が表示されます。スクリプト

は全て、固有の名称(スクリプト名)を指定する必要があります。「実行/停止」ボタンは、

選択されたスクリプトを実行/停止します。スクリプトを実行せず、記述内容を変更する場

合は、「変更を確認」ボタンをクリックして下さい。「元に戻す」ボタンをクリックすると、

「実行」、「変更を確認」ボタンがクリックされる以前の状態まで、スクリプトが復元されま

す。PLECS Standalone はシミュレーションスクリプトの実行に GNU Octave を使用して

います。Octave 言語は MATLAB 言語と良く似ています。Octave によるスクリプティング

の詳細は、Octave のマニュアルをご参照下さい。

(http://www.gnu.org/software/octave/doc/interpreter/)

PLECSのスクリプティングによる機能拡張

Octave で用いる一般的なコマンドに加えて、以下に記載するコマンドを用いて PLECS の

スクリプト操作が可能になります。

回路要素(コンポーネント)のパラメータ確認

回路要素の入力パラメータ値をコマンドラインで確認するには、「get」コマンドを使用します。

以下に入力形式を示します。

plecs( 'get' , 'コンポーネント・パス' , '入力パラメータ名')

ここで、「コンポーネント・パス」はモデルファイル名を含めた、PLECS回路ブロック名から回

路要素までのフルパスになります。下記のように入力パラメータ名を省略した場合は、コンポー

ネントの、全ての入力パラメータ名および入力値が表示されます。

plecs('get', 'コンポーネント・パス')

≪入力例≫

シミュレーションスクリプトダイアログウインドウを起動し、コマンドラインにて、下記コマン

ドを入力すると Octaveコンソールウインドウ上に出力値が表示されます。

PLECSモデルファイル名:test.plecs

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1

>> plecs( 'get' , 'test/Circuit/D1' , 'Vf')

>> plecs( 'get' , 'test/Circuit/D1')

特殊なコマンドパラメータとして、参照する PLECS 回路のパスを確認する「CurrentCircuit」が

用意されています。構文では回路要素へのパス(コンポーネント・パス)が省略されます。

>> plecs( 'get' , ' ' , ' CurrentCircuit')

このコマンドパラメータは、サブシステムの初期化コマンドのみで使用可能です。

Page 177: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

175

回路要素(コンポーネント)のパラメータ指定

回路要素の入力パラメータ値をコマンドラインで指定するには、「set」コマンドを使用します。

以下に入力形式を示します。

plecs( 'set', 'コンポーネント・パス', '入力パラメータ名', ’入力値’)

≪入力例≫

PLECSモデルファイル名:test.plecs

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1、順電圧 Vf:0.7→0.5

>> plecs( 'set', 'test/Circuit/D1', 'Vf', '0.5')

Scopeトレースの表示/削除指定

Scopeのトレースをコマンドラインで指定するには、「scope」コマンドを使用します。「HoldTrace」

コマンドを使用すると、「Scopeのパス」で指定されたScopeに、前回のシミュレーション結果を

保持します。これに「トレース名」パラメータが追加された場合、トレース名称が指定されます。

トレース名が指定されない場合は、デフォルトのスコープ名が適用されます。

以下に入力形式を示します。

plecs( 'scope' , 'Scope のパス' , 'HoldTrace')

plecs( 'scope' , 'Scope のパス' , 'HoldTrace' , 'トレース名')

トレースを削除する場合は、「ClearTraces」コマンドを使用します。「Scope のパス」で指定さ

れた Scope のトレース(シミュレーション結果)が、全て削除されます。

plecs( 'scope' , 'Scope のパス' , 'ClearTraces')

シミュレーションの開始

シミュレーションの開始をコマンドラインで指定するには、「simulate」コマンドを使用しま

す。オプションの引数「optStruct」を使用すると、モデルに適用されるパラメータ値が、上書き

されます。全ての出力ポートがモデル最上位に存在する場合は、コマンドは「時間」と「値」の

二つのフィールドを返します。「時間」は、各シミュレーションステップにおけるシミュレーシ

ョン時間のベクトルを含んでいます。「値」の行列は、出力ポートの信号値によって構成されま

す。信号の次数はポート数によって決定します。以下に入力形式を示します。

plecs( 'simulate')

plecs( 'simulate', optStruct )

解析ツールの開始

解析ツールの開始をコマンドラインで指定するには、「analyze」コマンドを使用します。解析

ツールで作成した「解析ケース名称」を指定することで、任意の解析ツールがコマンドラインか

ら実行可能になります。オプションの引数「optStruct」を使用すると、モデルに適用されるパラ

メータ値が、上書きされます。

Page 178: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

176

定常解析で、全ての出力ポートがモデル最上位に存在する場合は、コマンドは「時間」と「値」

の二つのフィールドを返します。出力ポートの信号値は、定常動作点が確定した時点で、取得さ

れます。

AC周波数解析およびインパルス応答解析の場合は、コマンドは「F」、「Gr」、「Gi」の三つの

フィールドを返します。「F」は解析の外乱周期を含むベクトル信号です。「Gr」と「Gi」の行

列は解析で定義された伝達関数の実部と虚部によって構成されます。

以下に入力形式を示します。

plecs( 'analyze', '解析ケース名称' )

plecs( 'analyze', '解析ケース名称', optStruct )

サンプルスクリプト

下記スクリプトは、変数名「varL」に定義された値「inductorValues」で実行されるパラメー

タスイープの記述例です。このスクリプトは、 PLECS デモモデルに格納されている

「BuckParam-Sweep」で使用されています。

mdl = plecs('get', '', 'CurrentCircuit'); scope = [mdl '/Scope']; mdlVars = struct('varL', 50e6); opts = struct('ModelVars', mdlVars); plecs('scope',scope, 'ClearTraces'); inductorValues = [50, 100, 200]; for ix = 1:length(inductorValues) opts.ModelVars.varL=inductorValues(ix) * 1e6; out = plecs('simulate', opts); plecs('scope', scope, 'HoldTrace', ... ['L=' mat2str(inductorValues(ix)) 'uH']); [maxv, maxidx] = max(out.Values(1,:)); printf('Max current for L=%duH: %f at %fs¥n', ... inductorValues(ix), maxv, out.Time(maxidx)); end

最初の 2 行でスコープのパスを定義しています。コマンド「CurrentCircuit」を使用する

ことによって、特性のファイル名に依存しないパスを定義することが可能です。

次の 2 行で、フィールド「varL」を用いて、モデル内で使用する変数「ModelVars」を定義

しています。この変数は「opts」という異なる変数名で組み込まれ、後ほど、シミュレー

ションパラメータの初期化に使用されます。

For ループ内部で「inductorValues」の各パラメータ値は、「varL」に適用されます。新しい

シミュレーションが実行されると、変数名「out」としてポスト処理用にシミュレーション結果

が保存されます。スクリプトを用いてトレースを保持することによって、新しいシミュレーショ

ンを実行しても、スコープに前回の結果が表示されます。このスクリプトは、最大電流値および

最大値が発生する時間も、Octave コンソールウインドウに表示します。

Page 179: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

177

PLECSとXML-RPCとの接続確立

XML-RPC インターフェイスはデフォルト設定では無効となっています。XML-RPC を介

したスクリプティングを実行する前に、PLECS 設定で XML-RPC インターフェイスを有効

にする必要があります。PLECS 設定では、TCP ポートを設定することも可能です。下記

Python コマンドを入力することによって、PLECS と XML-RPC が接続されます。

import xmlrpclib server = xmlrpclib.Server("http://localhost:1080/RPC2")

このコマンドでは、XML-RPC 接続用に、1080 番の TCP ポートを使用するように指定し

ています。

XML-RPC 接続は同一マシン上で、クライアントと PLECS が動作している場合にのみ有効

ですので、接続を開始する場合は、サーバーURL として、常に「localhost」を使用する必

要があります。

XML-RPCコマンドの概要

XML-RPCを介したスクリプティングは、「plecs」で始まり「.」が続くコマンドを使用する必

要があります。Python言語の場合は、下記記述のようにserverオブジェクトとしてPLECSを呼び

出します。

server.plecs.load( "モデル名称.plecs" )

モデルを開く/閉じる

XML-RPC を介して、モデルを開く場合は、下記コマンドを入力します。モデルファイル名には

ファイルまでのフルパスが含まれている必要があります。

plecs.load( "パスを含むモデルファイル名" )

モデルを閉じる場合は、下記コマンドを入力します。このコマンドを使用した場合は、変更項目

が保存されていない場合でも、無条件にモデルを閉じます。

plecs.close( "パスを含むモデル名称" )

回路要素(コンポーネント)のパラメータ確認

回路要素の入力パラメータ値をコマンドラインで確認するには、「get」コマンドを使用します。

以下に入力形式を示します。

plecs.get( 'コンポーネント・パス' , '入力パラメータ名')

plecs.get( 'コンポーネント・パス')

ここで、「コンポーネント・パス」はモデルファイル名を含めた、PLECS回路ブロック名から回

路要素までのフルパスになります。入力パラメータ名を省略した場合は、コンポーネントの、全

ての入力パラメータ名および入力値が表示されます。

Page 180: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

178

≪入力例≫

Python 等クライアントソフトウェアを起動し、コマンドラインにて、下記コマンドを入力する

とコンソールウインドウ上に出力値が表示されます。

PLECSモデルファイル名:test.plecs(カレントディレクトリ)

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1

plecs.get ( 'test/Circuit/D1' , 'Vf') plecs.get ( 'test/Circuit/D1')

回路要素(コンポーネント)のパラメータ指定

回路要素の入力パラメータ値をコマンドラインで指定するには、「set」コマンドを使用します。

以下に入力形式を示します。

plecs.set( 'コンポーネント・パス', '入力パラメータ名', ’入力値’)

≪入力例≫

PLECSモデルファイル名:test.plecs

PLECS回路ブロック名:Circuit

コンポーネント(ダイオード)名:D1、順電圧 Vf:0.7→0.5

plecs.set( 'test/Circuit/D1', 'Vf', '0.5')

Scopeトレースの表示/削除指定

Scopeのトレースをコマンドラインで指定するには、「scope」コマンドを使用します。「HoldTrace」

コマンドを使用すると、「Scopeのパス」で指定されたScopeに、前回のシミュレーション結果を

保持します。これに「トレース名」パラメータが追加された場合、トレース名称が指定されます。

トレース名が指定されない場合は、デフォルトのスコープ名が適用されます。

以下に入力形式を示します。

plecs.scope( 'Scope のパス' , 'HoldTrace')

plecs.scope( 'Scope のパス' , 'HoldTrace' , 'トレース名')

トレースを削除する場合は、「ClearTraces」コマンドを使用します。「Scope のパス」で指定さ

れた Scope のトレース(シミュレーション結果)が、全て削除されます。

plecs.scope( 'Scope のパス' , 'ClearTraces')

シミュレーションの開始

シミュレーションの開始をコマンドラインで指定するには、「simulate」コマンドを使用しま

す。オプションの引数「optStruct」を使用すると、モデルに適用されるパラメータ値が、上書き

されます。全ての出力ポートがモデル最上位に存在する場合は、コマンドは「時間」と「値」の

二つのフィールドを返します。「時間」は、各シミュレーションステップにおけるシミュレーシ

ョン時間のベクトルを含んでいます。「値」の行列は、出力ポートの信号値によって構成されま

す。信号の次数はポート数によって決定します。

Page 181: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

179

以下に入力形式を示します。

plecs.simulate( 'モデル名称')

plecs.simulate( 'モデル名称', optStruct )

解析ツールの開始

解析ツールの開始をコマンドラインで指定するには、「simulate」コマンドを使用します。解

析ツールで作成した「解析ケース名称」を指定することで、任意の解析ツールがコマンドライン

から実行可能になります。オプションの引数「optStruct」を使用すると、モデルに適用されるパ

ラメータ値が、上書きされます。

定常解析で、全ての出力ポートがモデル最上位に存在する場合は、コマンドは「時間」と「値」

の二つのフィールドを返します。出力ポートの信号値は、定常動作点が確定した時点で、取得さ

れます。

AC周波数解析およびインパルス応答解析の場合は、コマンドは「F」、「Gr」、「Gi」の三つの

フィールドを返します。「F」は解析の外乱周期を含むベクトル信号です。「Gr」と「Gi」の行

列は解析で定義された伝達関数の実部と虚部によって構成されます。

以下に入力形式を示します。

plecs.simulate( 'モデル名称', '解析ケース名称' )

plecs.simulate( 'モデル名称', '解析ケース名称', optStruct )

サンプルスクリプト

下記スクリプトは、変数名「varL」に定義されたインダクタンス値で実行されるパラメータスイ

ープの XML-RPC 用記述例です。

import xmlrpclib server = xmlrpclib.Server("http://localhost:1080/RPC2") server.plecs.load("C:/Models/BuckParamSweep.plecs") server.plecs.scope('BuckParamSweep/Scope', 'ClearTraces') opts = 'ModelVars' : 'varL' : 50e6 result = server.plecs.simulate("BuckParamSweep", opts) server.plecs.scope('BuckParamSweep/Scope', 'HoldTrace', 'L=50uH') opts['ModelVars']['varL'] = 100e6; result = server.plecs.simulate("BuckParamSweep", opts) server.plecs.scope('BuckParamSweep/Scope', 'HoldTrace', 'L=100uH')

Page 182: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

180

スクリプトシミュレーションおよび解析オプション

シミュレーションスクリプトまたは XML-RPC を介したスクリプティングによってシミュ

レーション/解析ツールを実行する場合、オプション引数「optStruct」を使用することでモデ

ルに適用されるパラメータ値を上書きすることが可能となり、GUI 上でパラメータ値を変

更することなく、異なる条件でシミュレーションを実行可能になります。

オプション引数「optStruct」には、フィールド「ModelVars」、「SolverOpts」、また解析ツー

ルを使用する場合は、「AnalysisOpts」が含まれており下記のように定義することが可能で

す。

ModelVars

オプションフィールド「ModelVars」は、モデル初期化コマンドによって定義される上書き

可能な変数値によって構成されます。各フィールド名は変数名として処理されます。フィー

ルド値は対応した変数値として割り当てられます。

モデル初期化コマンドが読み込まれた後、および下図で表示される回路定数の読み込み前に、

パラメータ値の上書きが実行されます。

スクリプト

開始

スクリプト

初期化

コマンド

スクリプト

実行

終了

ModelVars

読込/評価

素子

パラメータ

読込/評価

モデル

シミュレーション

開始

XML-RPC

クライアント

プロセス

終了

モデル

初期化

コマンド

ModelVars

読込/評価

素子

パラメータ

読込/評価

モデル

シミュレーション

plecs('simulate') plecs('analyze')

plecs.simulate( ) plecs.analyze( )

Page 183: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

181

SolverOpts

ソルバオプションフィールド「SolverOpts」は、シミュレーションパラメータに定義され

たソルバの設定を上書きします。各フィールド名は、ソルバパラメータ名を使用して処理さ

れるので、フィールド値はソルバパラメータに対応した値を設定して下さい。

ソルバオプションで使用可能なパラメータを下記リストに示します。

スクリプトシミュレーションのソルバオプション

パラメータ 特徴

Solver シミュレーションで使用するソルバを指定します。

使用可能な値は、

non-stiff 可変タイムステップソルバ「dopri」

stiff 可変タイムステップソルバ「radau」

固定タイムステップソルバ「descrete」となっています。

設定詳細は「ソルバ」の項をご参照下さい

StartTime シミュレーション開始時間の初期化条件を指定します。

使用可能な値は、「t」(単位:秒)となっています。

StopTime シミュレーション終了時間を指定します。

使用可能な値は、「t」(単位:秒)となっています。

MaxStep 可変タイムステップソルバのみで使用可能な最大時間刻みを指定します。

使用可能な値は、「t」(単位:秒)となっています。

設定詳細は「最大時間刻み」の項をご参照下さい

InitStep 可変タイムステップソルバのみで使用可能な初期時間刻みを指定します。

使用可能な値は、「t」(単位:秒)となっています。

設定詳細は「初期時間刻み」の項をご参照下さい

FixedStep 固定タイムステップソルバおよびモデル内で定義された離散化状態空間で使

用可能な時間刻みを指定します。

使用可能な値は、「t」(単位:秒)となっています。

AbsTol ソルバの絶対誤差を指定します。

設定詳細は「絶対誤差」の項をご参照下さい

RelTol ソルバの相対誤差を指定します。

設定詳細は「相対誤差」の項をご参照下さい

Refine ソルバのリファインファクターを指定します。

設定詳細は「リファインファクター」の項をご参照下さい

Page 184: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

182

AnalysisOpts

解析ツールオプションフィールド「AnalysisOpts」は、解析ツールパラメータに定義され

た設定を上書きします。各フィールド名は、解析ツールパラメータ名を使用して処理される

ので、フィールド値は解析ツールパラメータに対応した値を設定して下さい。

使用可能なパラメータを下記リストに示します。

スクリプトシミュレーションの解析ツールオプション パラメータ 特徴

TimeSpan システム周期を指定します:システム全体に含まれる周波数の最小公倍数

StartTime シミュレーション開始時間を指定します。

使用可能な値は、「t」(単位:秒)となっています。

Tolerance 定常解析の収束判定用相対誤差を指定します。

MaxIter 定常解析の最大反復回数を指定します。

JacobianPerturbation 近似関数行列式算出用に用いる状態変数の相対外乱を指定します。

JacobianCalculation 関数行列式の制御方法(「full」または「fast」)を指定します。

デフォルト:「fast」

InitCycles ニュートン法を実行する前に適用される、前処理周期を指定します。

このパラメータは定常解析の初期条件として使用されます。

FrequencyRange 入力される外乱の周波数帯域を指定します。

このパラメータは小信号特性解析のみで使用されます。

FrequencyScale 外乱の周波数帯域分布を指定します。

このパラメータは小信号特性解析のみで使用されます。

AdditionalFreqs 定義された周波数帯域に詳細な帯域追加を指定します。

このパラメータは小信号特性解析のみで使用されます。

NumPoints 外乱周波数帯域の自動分散数を指定します。

このパラメータは小信号特性解析のみで使用されます。

Perturbation 解析で使用する小信号外乱ブロックまでの完全パスを指定します。

このパラメータは小信号特性解析のみで使用されます。

Response 解析で使用する小信号応答ブロックまでの完全パスを指定します。

このパラメータは小信号特性解析のみで使用されます。

AmplitudeRange AC周波数解析に適用される正弦波外乱の振幅を指定します。

このパラメータはAC周波数解析のみで使用されます。

Amplitude インパルス応答解析に適用される離散パルス外乱の振幅を指定します。

このパラメータはインパルス応答解析のみで使用されます。

Page 185: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

183

PLECS Cコード生成 (PLECS Blocksetのみ対応) (使用環境:PLECS Blockset Version 3.2 日本語)

PLECS Blocksetは、SimulinkのReal-Time Workshopに完全統合され、回路モデルのCコードを自動

的に生成します。Cコードのビルドが実行されるとPLECSは、回路モデルのCコードを、指定格

納場所に自動出力します(本機能はPLECS Blocksetのみで利用可能です)。

Cコード生成ターゲット

PLECSは、Rapid Simlationターゲット(RSimターゲット)およびReal-Timeターゲットの、異な

る2つのターゲットを出力可能です。これら2つのターゲットの違いは、下記表を参照して下さい。

RSimターゲット Real-Timeターゲット

コード化対象 ラピッド・シミュレーション

(非リアルタイム)

リアルタイム・シミュレーション

コード化手法 圧縮された回路図の記述が、

Cコードに組み込まれ実行される

信号と状態空間方程式は、

Cコード(ANSI)としてインライン化される

制限 なし 非線形回路要素および半導体スイッチに、

使用制限有り

インライン化 回路パラメータは、

コード生成後も調整可能

全ての回路パラメータはインライン化

(例:コンパイル時にCコードへ組み込み)

コード実行 Cコード実行時に、

PLECS Rsimモジュールが必要

生成されたCコードに外部従属性なし

ライセンス 実行時に、PLECSライセンスを確認 実行時に、PLECSライセンスは確認されない

PLECSはデフォルトで、Real-Time Workshopのターゲット指定を自動的に認識します。回路パラ

メータ「RTWTarget」を選択することによって任意のターゲットを指定可能になります。

Rapid Simulation(RSim) ターゲット

SimulinkをRapid Acceleratorモードで操作する場合、またはReal-Time WorkshopのS-Functionター

ゲットもしくはRSimターゲットで実行ファイルを作成する場合は、ラピッド・シミュレーショ

ン(RSim)ターゲットが選択されます。生成されたCコードは、PLECSのRSimモジュールとし

て、標準インストールによって生成される共有ライブラリに対しリンクされます。

Rapid Simulation(RSim) ターゲット用 実行ファイルの展開

ラピッド・シミュレーション用実行ファイルを展開するには、適切な共有ライブラリファイルを、

目標とするコンピュータにコピーする必要があります。下記に各サポートOS別の共有ライブラ

リファイル格納場所を記載します。(インストールフォルダ:plecs)

プラットフォーム(OS) 共有ライブラリファイル名(フォルダパス)

Windows 32-bit Plecs\bin\win32\plecsrsim.dll

Windows 64-bit plecs\bin\win64\plecsrsim.dll

Mac PPC plecs/bin/mac/libplecsrsim.dylib

Mac Intel plecs/bin/maci/libplecsrsim.dylib

Linux 32-bit plecs/bin/glnx86/libplecsrsim.so

Linux 64-bit plecs/bin/glnxa64/libplecsrsim.so

上記、共有ライブラリファイルを、目標とするコンピュータ上で、実行ファイルと同じフォルダ

にコピーして下さい。または、環境変数にて共有ライブラリファイルのパスを指定して下さい。

Page 186: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

184

Rapid Simulation(RSim) ターゲット用 PLECSライセンスプロトコル

RSimモジュールが実行される間は、PLECSのライセンスが参照されます。ご利用になるPCの、

環境変数に下記設定を追加して下さい。

環境変数名:PLEXIM_LICENSE_FILE

フォルダパス:ライセンスファイルが格納されているフォルダ

RSimモジュールがPLECSライセンスを参照できない場合は、エラーメッセージが出力され、シ

ミュレーションは停止します。

注:PLECSのRSimモジュールはMATLABライセンスとリンクされていませんので、Host-IDにて

管理されるMATLABライセンスでは使用できません。

Rapid Simulation(RSim) ターゲットにおけるPLECS回路パラメータ変更

デフォルト仕様では、PLECSは全ての回路要素のパラメータを、コンパイル時にインラインコー

ドとして評価しますが、異なるパラメータセットが設定されたラピッド・シミュレーション、ま

たはパラメータ化されたS-ファンクションによるシミュレーションといった特定の問題によっ

ては、シミュレーション開始時に回路要素のパラメータを評価するほうが望ましい場合がありま

す。これは以下の手法によって実現可能です。

1 Simulinkファイル上で、PLECS回路ブロックの「マスクの編集」を用いて、変更したい全て

のパラメータ値をマスクパラメータとして定義します。マスク変数はマスクエディタ・ウイ

ンドウのパラメータ・タブまたは初期化タブにて定義可能です。

2 PLECS回路パラメータのアドバンスドタブの「Real-Time Workshop ラピッドシミュレー

ションターゲット(rsim)用回路パラメータ」チェックボックスからチェックマークを外し

ます。

3 ラピッドシミュレーション用変数名リストにPLECS回路で定義した各変数を追加します。詳

細はReal-Time WorkshopのUser’s Guideを参照して下さい。

Rapid Simulation(RSim) ターゲットにおけるPLECS回路パラメータ仕様変更の制限

PLECSの回路パラメータを変更可能とした場合、RSimモジュールはシミュレーション開始時に

独自のサブルーチンを使用しますので、マスク初期化コマンドを取り扱う事ができません。マス

クの初期化コマンドを含んだサブシステムが回路内に存在する場合、もしくはパラメータに

MATLAB関数の呼び出しが含まれる場合は、ランタイム・エラーが出力されます。

その他に、Real-Time Workshopで変更可能なパラメータを取り扱う使用制限として、以下が挙げ

られます。

回路パラメータは倍精度、2次元、非スパース行列でなければいけません。

パラメータ名で用いる最初の4文字は互いに異なってなければいけません。

Page 187: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

185

Real-Time ターゲット

Real-Time WorkshopのReal-Timeターゲットで実行ファイルを作成する場合、Real-Timeターゲッ

トがデフォルトで選択されます。半導体スイッチが含まれる回路で、Cコードを生成する場合は、

別途、「PLECS Real-Time Coderライセンス」が必要になります。また、Real-Timeターゲットを

用いたCコードの利用には、下記に示す制約があります。

Real-Time ターゲットでサポートされないPLECSコンポーネント(回路要素)

可変容量コイル

可変直列コイル(可変抵抗器付き)

直列コイル(可変抵抗器付き)

可変容量コンデンサ

可変並列コンデンサ(可変抵抗器付き)

可変並列コンデンサ(可変抵抗器付き)

ブラシレスDCマシン(BLDCマシン)

スイッチト・リラクタンス・モータ(SRモータ)

Real-Time ターゲットで利用可能な最大理想スイッチ数

1つのPLECS回路ブロックに、「32個の理想スイッチ」が使用可能です。これは各スイッチが個

別にスイッチの状態(オン/オフ)に関して、内部に符号なし整数を保存していることに依存し

ています。ここで、ダブルスイッチやトリプルスイッチは、通常のシングルスイッチに比べ、よ

り多くのスイッチ状態の組み合わせを保存することに留意して下さい。

Real-Time ターゲットのコード長制限

PLECSは、2nのスイッチ状態組み合わせでコードを生成します。ここで、nはPLECS回路に含ま

れる理想スイッチの数になります(特例として、ダブルスイッチおよびトリプルスイッチを使用

する場合は、それぞれ22、2

3ではなく、2および3のスイッチ状態組み合わせになります)。PLECS

回路に含まれるスイッチの数が増えるに従い(スイッチ状態の組み合わせが複雑になるにつれ

て)、ソース、実行ファイルの肥大化、およびコンパイル時間の増大を引き起こします。

PLECSでは、オプション・パラメータ「RTWTopologies」を使用し、スイッチの組み合わせを指

定し、生成するコードの長さ、およびコンパイル時間を削減することが可能ですが、コードを実

行する際に、適合しないスイッチ状態の組み合わせが生じる場合は、エラーメッセージが出力さ

れ実行は中止されます。従って、上記パラメータを使用する際に、PLECS回路内に10個以上のス

イッチが配置される場合(スイッチ状態の組み合わせ:210=1024)は、明確にスイッチ状態の

組み合わせを指定しなければいけません。

スイッチの整流動作

電流/電圧の計測値に依存してターン・オン/オフをおこなう整流スイッチが回路に含まれる場合、

PLECSのデフォルト設定では、Cコードを生成することができません。この条件で作動するスイ

ッチは、PLECS回路ブロック上の全てのパワー半導体スイッチおよびブレーカーが含まれます。

これは、上記スイッチが整流をおこなうタイミングと、リアルタイム・シミュレーションの離散

サンプル時間が、互いに同期を取れないことに起因します。

このデフォルト設定を変更し、整流スイッチの取り扱い可能にするコードを生成するには、オプ

ション・パラメータ「RTWAllowNaturalCommutation」を「オン」に設定して下さい。ここで、

整流スイッチの動作は、離散サンプル時間に依存することに留意して下さい。これは、精度の低

下を招く原因となり、スイッチング動作後に、不整合が発生する可能性があります。

Page 188: PLECS Getting Started

Simulation of Power Electronic Circuits at System Level

186

例として、コイルと直列に接続されたダイオードのターン・オフを取り上げます。一般的に、コ

イル電流のゼロクロッシングは、シミュレーションで指定するタイムステップ(時間刻み)上で

は発生しません(「正:+」または「負:-」の電流値でダイオードはターン・オン/オフします)。

電流値が「負:-」であるなら、ダイオードはターン・オフしますが、この時、コイル電流用の

経路が、別途用意されていない場合は、回路に不整合が生じて、プログラムは停止します。

上記エラーは、オプション・パラメータ「RTWSuppressStateInconsistencies」を「オン」に設定す

ることによって抑えることが可能です。上述のケースでは、ダイオードがターン・オフした場合

に、コイルの電流値がゼロにリセットされ、回路に不整合は生じませんが、これによって、物理

的には不可能な「コイル電流値の不連続が生じる」ことに留意して下さい。

コード生成オプション

コード生成用オプション・パラメータを下記表に示します。

パラメータ名 機能

RTWTarget コード生成ターゲットを指定

「RSim」「RealTime」「Auto」より選択

(デフォルト:「Auto」)

「Auto」を選択した場合、Real-Time Workshopのタ

ーゲット選択に依存します。

RTWTopologies Real-Timeターゲットで生成されるコードのスイッ

チ状態組み合わせを指定する行列定義

行列は、n列(nは回路内の理想スイッチ数)

デフォルトの設定として用意される[ ] は、PLECS

がすべてのスイッチ状態の組み合わせに対し、コ

ードを生成可能であることを意味します。

RTWAllowNaturalCommutation Real-Timeターゲットで整流スイッチ(例:ダイオー

ド)を含む回路のコードを生成する場合に選択

「オン」「オフ」より選択(デフォルト:「オフ」)

RTWSuppressStateInconsistencies Real-Timeターゲットで回路の不整合可否を指定

「オン」「オフ」より選択(デフォルト:「オフ」)

RSimInlineCircuitParams RSimターゲットで回路パラメータのインライン化

を指定

「コンパイル時:オン」「ランタイム時:オフ」

より選択(デフォルト:「オフ」)

上記コード生成オプション・パラメータは「RSimInlineCircuitParams」を除いて、全て「コマン

ドライン」」のみで指定可能です。例として、整流スイッチを含む回路のコード生成オプション

を下記に示します。

Plecsedit (’set’, ‘PLECS回路ブロック名(パス)’, ’RTWAllowNaturalCommutation’, ’オン’);

注:PLECS回路ブロック内にPLECS Scopeが格納されている場合は、コード生成による結果を更

新することができません。シミュレーション結果を確認するためには、全てのScopeをSimulink

モデルファイル上に配置して下さい。

Page 189: PLECS Getting Started

Piece-wise Linear Electrical Circuit Simulation

Page 190: PLECS Getting Started

Electrical systems and power electronics in Simulink

Piece-wise Linear Electrical Circuit Simulation