周波数特性解析用言語
CASL87
Ver.3.01をリリース
■村岡如竹
■村岡如竹
■新機能
最新のCASL87は、Ver.3.01です。
従来のCASL87の4つの素子(R、L、C、Gm)に対し、Ver.3.00から人工的な新素子として、Z変換上の遅延素子Z-1と遅延素子Tを加えました。遅延素子Z-1の導入により、DSP(Digital Signal Processor)やFPGA(Field Programable Gate Array)などで構成するデジタル・フィルターの周波数特性を表すことができ、従来のアナログ回路とデジタル回路のシームレスな結合によるデジアナ混合のフィードバック回路の解析が容易になります。
また、遅延素子Tは、デジタル回路での演算処理での遅延が及ぼす位相遅れ、また飛行機や自動車での人間による操縦、さらにそれらにパワーステアリングなどのアシストが付け加わることも含め、人間の神経反射が絡む遅延による位相遅れなど、総合的なメカトロニクスのフィードバック制御の安定性解析ができることによって自動制御だけではなく、人による操縦性の向上をも図ることができます。
●IIRによるデジタル・イコライザーの周波数特性解析
下の左の図は、Z-1素子で構成されたIIR(Infinite Impulse Response)によるデジタル・イコライザーの例です。これは、適応フィルタにより、各バンドを2段(タップ)のみで構成できるデジタル・フィルターです。CASL87では同右図のアナログ回路図で表現できます。(デジタル・イコライザーをクリック)
アナログ回路化することで、CASL87及び、GR87によって簡単に下の図に示す周波数特性を得ることができるようになります。
●FIRによるデジタル・フィルターの周波数特性解析
下の左の図は、Z-1素子で構成されたFIR(Finite Impulse Response)の例です。これは、CASL87では同右図のアナログ回路図で表現できます。(デジタル・フィルターをクリック)
これも、アナログ回路化することで、CASL87及び、GR87によって簡単に下の図に示す周波数特性を得ることができるようになります。
■CASL87とは
CASL87はアナログ回路の安定性解析やフィルターの周波数特性解析用に開発されたプログラム言語方式のシミュレーターです。ユーザーが任意のテキスト・エディターで書いたプログラム記述型のソース・コード・ファイルをコンパイルし、計算してくれるツール・アプリケーションです。
CASL87で扱う素子は、微分、積分などの因子ですので、8Gバイト以上のデータメモリをもつPCであれば、最大3万行の連立微分方程式(ただし、ラプラス演算子での連立方程式)を計算できます。
対象とするユーザー:
企業での高度な回路設計者や、大学などの研究機関の回路研究者。
計算の仕組み:
CASL87の内部計算の様式は、多ノード(節点)のアドミタンス行列(admittance matrix)を基にした演算方式です。CASL87では、行列内の各要素は複素数ですが、行列の演算処理のためのLU分解やピボット処理など、高速で高精度の計算を実行する工夫が施されています。
CASL87は、本来は電子回路用ですが、数学上の微分積分を扱いますので、メカ系の力学を計算する用途にも適用できます。
【特徴】
回路図と親和性のあるテキスト記述方式: 入力は専用の回路図エディターで描く回路図ではなく、回路図と親和性のある記述のテキスト・ファイル方式のため、回路図エディターの面倒な操作や設定に悩まされることはありません。
最大512層の階層構造:
各層の回路ブロックは、ロシアの民芸品であるマトリョーシカのように、子、孫、ひ孫と、まったく同じ構造の記述構成です。さらに、ひとつの回路ブロックに複数の回路ブロック(各自が階層構造をもつ)を並列に内包することもできます。
使い慣れたテキスト・エディターで記述: 普段、ユーザーが使い慣れたテキスト・エディター、例えば人気の”Atom”や”メモ帳”(Microsoft notepad)及び、”Microsoft Visual Studio Code”などによって、複数の回路ブロックを記述でき、階層化することで、回路図の構成に近い構造化がなされた記述ができます。階層は最大512レイヤーまで可能です。
ヒューマナイズされた美しい記述方式: テキスト・エディターで記述する内容は、人間の回路図に対する感覚をそのまま記述できるプログラム言語方式であり、記述後の見た目も美しく整理された文法での記述方式です。その階層性とノード中心の記述は判りやすく、修正などのメンテナンス性にも優れています。
個々の回路ブロック内のノード番号は独立して他の回路ブロックとは分離: 記述された複数の回路ブロックは、ノード(節点)番号がそれぞれローカル化されていて、同じ番号でも回路ブロックや階層が異なれば、分離されたノード番号として認識されますので、他の回路ブロック記述からコピー&ペーストでインプリメントできます。それぞれの回路ブロックではノード番号を1~29,999(CASL87 64bit版のみ)まで順不同に割り付けることができ、実質的なノード総数は29,999(CASL87 64bit版)或いは、6,999(CASL87 32bit版)まで可能です。(Windows64ビット版では、最大約3万行の連立微分方程式に相当する複素マトリックスを計算可能)
ライブラリーの構築が容易: 回路記述文の中で、”Include文”や”Ex Include文”の挿入によって他の回路ブロックの記述文をマスクしたまま呼び出すことができますので、本体の回路記述文の行数を増やすことなく記述できます。特に”Ex Include文”ではインクルードする他の回路ブロックの名前を変更してインプリメントできますので、同じ回路ブロックを名前を変えて並べることができます。つまり、同じ回路ブロックをライブラリーとして、別名で利用できます。
実行アプリケーションは計算専用とグラフ・プロット専用に分かれる: 実行するアプリケーションは計算専用の”CASL87”とグラフ・プロット専用の”GR87”に分かれています。回路記述のファイルを”CASL87”に入力(ドラッグ&ドロップ)し、その計算結果ファイルを”GR87”に入力(ドラッグ&ドロップ)すると周波数特性がプロットアウトされます。”CASL87”、”GR87”は、それぞれ複数(最大数1024)のファイルを同時に処理できますので、異なる特性の回路の計算結果を一挙に表示できます。
【他社との性能比較】
CASL87(&GR87)はフィードバック制御上の安定性追求やフィルター特性を求めることが目的であり、周波数特性に特化したものです。その部分を他社のSPICE系のシミュレーターとしてLTspice(米国)やSIMetrix(英国)と比較したものを下の表に示します。
この表は、105ノードある等価回路をテスト回路(クリック)として使用した結果です。
この表の中で、「計算限界」とは、各シミュレーターが扱える計算上の数値限界です。CASL87の扱う数値は32ビット版で1E-310~1E+300(デシベル換算-6200dB~+6000dB)であり、64ビット版で1E-160~1E+154(デシベル換算-3200dB~+3080dB)です。 これに対し、LTspiceやSIMetrixでは、-3200dB~+3000dBなので、扱える数値範囲は、1E-160~1E+160程度です。
「計算時間」に関しては、SIMetrixが最も速いようです。SIMetrixはもともと、バークレイ版SPICEの欠点だった収束性の悪さを改善する目的で開発されたため、スピードが速いのは納得できます。
尚、SIMetrixはノード数の限界が約140ノードであるので、これ以上の大きなノード数の回路は扱えません。LTspiceの扱えるノード数は一応無制限、CASL87は約30,000(正確には29,999)ノードまで計算可能です。
「計算限界でのグラフ処理」は、下の各シミュレーターのグラフ表示を見ていただければ判ると思いますが、LTspiceやSIMetrixでは限界を超えると、破綻してグラフ上の下限までラインを描いてしまっています。CASL87の場合は、限界値を超えるとそれ以上は計算を中断しますが、計算結果ファイルを出力し、GR87はそのまま中断の直前までを表示してくれます。
【フリー版のダウンロード】
CASL87のフリー版及び、GR87は以下のURLよりダウンロードできます。(IEブラウザは対応していません。Google Chromeか、Edgeでアクセスしてください)
尚、CASL87は64ビットCPUのPCのみ対応とさせていただきます。
使用説明書は以下のURLよりダウンロードできます。(IEブラウザには対応していません。Google Chromeか、Edgeでアクセスしてください)
使用説明書(CASL87_GR87_Ver3.01_使用説明書_Rev_2.03)
上記、共に右図に示す緑色の”ダウンロード”ボタンをクリックしてください。
クリック後、下図の画面でのグレーで囲った部分は関係ないので無視してください。
Googleブラウザの場合、下図の右上赤枠の部分が100%完了となったら、左下の
“SetUp_CASL87_GR87_Ver1_22.zip”をマウスの右ボタンでクリックし、ダウンロード先の“フォルダを開く(S)”を選択します。(他のブラウザの場合のダウンロード・フォルダの表示はそれぞれの仕様に従ってください。)
尚、使用説明書付きセットアップ・プログラムは以下からダウンロードできます。
【有償版への移行】
CASL87のフリー版の使用制限は5回までです。無制限の有償版への移行は下記URLからライセンス・キーのご購入を申し込んでください。
(株)ベクターでのダウンロードおよび販売
https://www.vector.co.jp/soft/winnt/business/se520454.html?ds
価格¥5,060(手数料、消費税込み)。
※既にライセンス・キーをご購入済みの場合、新バージョン(フリー版)のダウンロード後、ご購入済みのライセンス・キーを使用して再セットアップできます。詳細は使用説明書の「■有償版のインストール」の章をご参照ください。
【インストール】
ダウンロードした圧縮ファイル”SetUp_CASL87_GR87_Ver1.zip”を任意のファルダにコピー或いは移動し、解凍して展開してください。解凍後は右図に示すように以下の3つのフォルダ構成が展開されます。
SetUp_CASL87_Ver3_00
SetUp_GR87_Ver3_00
CASL87_Sample_Source
フォルダSetUp_CASL87_Ver3_01はそのフォルダ内のSetUp.exeをダブル・クリックするとCASL87のインストールを開始します。
フォルダSetUp_GR87_Ver3_00はそのフォルダ内のSetUp.exeをダブル・クリックするとGR87のインストールを開始します。
フォルダCASL87_Sample_Sourceにはそのフォルダ内にフォルダNotch_Filter_Circuitがあり、その中に3つのサンプルのソース・コード・ファイルがあります。
同じくダウンロードで得られた使用説明書
”CASL87_GR87_使用説明書_Ver3_01_Rev_2_00.pdf”
に各インストールの方法の詳細が掲載されていますのご参照ください。
【操作の流れ】
手書きも含めた回路図を用意し、回路図内のノードに番号をふります。(64ビット版1~29999、32ビット版1~6999、GNDはe 或いはE)
CASL87の規定する文法に則ったソース・コード・ファイル(サフィックス=.CAS)を任意のテキスト・エディターで編集します。
このソース・コード・ファイルをCASL87の”File Input”ボックスにマウスでドラッグ&ドロップします。
CASL87の実行ボタンをクリックして、計算を実行させ、計算結果ファイル(サフィックス=.CAL)を生成します。
計算結果ファイルをGR87の”Input the calculation file”ボックスにマウスでドラッグ&ドロップします。
GR87のグラフ座標の周波数範囲、ゲイン範囲、位相範囲の値をセットします。
GR87の実行ボタンをクリックしてグラフ・プロットを実行してグラフを表示させます。
上記の一連の操作を下図に示します。
CASL87は回路に対して階層構造に優れた記述言語です。Include文によるライブラリー化も含め、解析する回路の拡張性に優れた特徴をもっていますので、回路構成の分割によって様々な、且つ大規模な構成の回路の周波数特性解析が可能になります。
【動作環境】
Windows10/11 64ビットCPU
【注意事項】
※CASL87のソース・コードは”ANSI”文字で記述してください。日本語などのShift-JIS文字は、注釈文も含め、禁止です。
※他のアプリケーションが並行実行している場合に「メモリ不足」が発生する場合があります。その場合、Windowsの設定で、ハードディスクなどによる「仮想メモリ」を増やしてください。
【お問い合わせ】
CASL87のご質問などは以下のメールにてお願いします。
<記: 村岡如竹>