ジュリーの安定判別シミュレーター 戻る
制御工学

ジュリーの安定判別シミュレーター — 離散時間系

離散時間(ディジタル)制御系の特性多項式の係数を入力すると、ジュリー表を自動で組み立て、全ての根が複素z平面の単位円内にあるかを判定します。根を解かずに安定性が分かる仕組みを、z平面プロットと根の絶対値グラフで同時に確かめられます。

パラメータ設定
離散時間系の特性多項式 P(z) = z⁴ + a₃z³ + a₂z² + a₁z + a₀(最高次係数は 1 に正規化)の係数を設定します。
係数 a₃(z³ の係数)
係数 a₂(z² の係数)
係数 a₁(z¹ の係数)
係数 a₀(定数項)
定数項。|a₀| ≥ 1 になると必要条件 C3 が破れ不安定です
計算結果
P(1)
P(−1)
|a₀|
安定判定
最大根の絶対値 |z|max
単位円内の根の数
複素z平面 — 特性多項式の根と単位円

単位円 |z|=1 が安定境界です。内側(緑)に根があれば安定、外側(赤)に根があれば不安定。点は特性多項式 P(z) の根を表します。

根の絶対値 |z|
根の z平面配置
理論・主要公式

$$P(z)=z^4+a_3 z^3+a_2 z^2+a_1 z+a_0$$

離散時間系の特性多項式。最高次の係数は 1 に正規化してあります。全ての根 z が単位円の内側 |z|<1 に入っていれば安定です。

$$P(1)\gt 0,\quad P(-1)\gt 0,\quad |a_0|\lt 1$$

4次系(偶数次)の安定の必要条件。P(1)=1+a₃+a₂+a₁+a₀、P(−1)=1−a₃+a₂−a₁+a₀。これに加えてジュリー表の内部条件 |b₀|>|b₃|・|c₀|>|c₂| が成立すれば安定です。

$$\text{離散時間系の安定領域} = \{\,z : |z|\lt 1\,\}$$

ディジタル制御では安定領域は z 平面の単位円の内側であり、連続時間系の s 平面の左半面(Re<0)とは異なります。これがジュリー判別とラウス・フルビッツ判別の本質的な違いです。

ジュリーの安定判別とは

🙋
「ジュリーの安定判別」って、ラウス・フルビッツと似た名前ですけど…何が違うんですか?
🎓
ざっくり言うと、ラウス・フルビッツが「連続時間系」用なら、ジュリーは「離散時間系」用の安定判別だよ。アナログの制御系は時間が連続して流れるけれど、マイコンやPCで動かすディジタル制御は、一定周期でサンプリングして値を更新する。この『サンプル値制御』の特性方程式は s ではなく z という変数で書かれる。ジュリーの判別法は、その z の多項式を相手にするんだ。
🙋
変数が s から z に変わると、安定の条件も変わるんですか?
🎓
そこが一番大事なところ。連続時間系では「全ての極が s 平面の左半面(実部が負)にあれば安定」だったよね。ところが離散時間系では、安定領域が『z 平面の単位円 |z|=1 の内側』に変わるんだ。離散系の応答は極 z の n 乗の和で書けるから、|z|<1 なら |z|ⁿ が時間とともに 0 に減衰、|z|>1 なら発散する。だから全部の根が単位円の中に入っているかどうかが勝負になる。
🙋
じゃあ根を全部解いて、絶対値が1未満か調べればいいんですよね?
🎓
理屈はそうだけど、4次・5次の多項式の根を毎回手で解くのは大変だ。そこでジュリーの出番。まず簡単な必要条件から見る。左の例 P(z)=z⁴−0.8z³+0.31z²−0.128z+0.024 だと、P(1)=1−0.8+0.31−0.128+0.024=0.406>0、P(−1)=2.262>0、|a₀|=0.024<1。3つとも満たしている。これは安定なら必ず成り立つ条件で、1つでも破れたら即不安定と分かる。
🙋
必要条件が全部OKなら、もう安定と言っていいんですか?
🎓
いや、必要条件だけでは足りない。次に係数を並べた行とその逆順の行から、2×2行列式を使って「ジュリー表」という三角形の表を作る。4次系なら追加で2段の行が出てきて、その先頭と末尾の絶対値を比べる内部条件 |b₀|>|b₃| と |c₀|>|c₂| を確認する。必要条件3つと内部条件2つが全部そろって、はじめて安定。さっきの例は全部の根が 0.5、0.3、±0.4i で、絶対値はどれも 1 未満。だから安定だ。
🙋
根が虚軸…じゃなくて単位円のちょうど上に乗ったら、どうなるんですか?
🎓
いい質問だ。根の絶対値がちょうど 1 になると、それは『限界安定』の状態で、減衰も発散もせず一定振幅で振動し続ける。離散系で言えば、サンプリングのたびに同じ大きさの値が出続けるイメージだね。実務では限界安定は不安定とほぼ同じ扱いで、係数に余裕を持たせて根を確実に円の内側に入れる。本ツールは根が単位円から 0.001 以内まで近づいた状況を検出すると、判定を黄色で「限界(境界)」と出すよ。

よくある質問

離散時間(サンプル値・ディジタル)制御系が安定かどうかを、特性多項式の係数だけから判定する方法です。離散時間系が安定であるためには、特性多項式 P(z) の全ての根が複素z平面の単位円 |z|=1 の内側に入っていなければなりません。ジュリーの判別法は、係数からジュリー表という三角形の表を組み立て、必要条件と内部条件を確かめることで、根を解かずに『全根が単位円内にあるか』を判定します。連続時間系のラウス・フルビッツ判別の離散時間版にあたります。
離散時間系の応答は z の各根(極)の n 乗の和で表され、各項は |z|ⁿ で増減します。根の絶対値 |z| が 1 より小さければ |z|ⁿ は時間とともに 0 に収束し応答は減衰、|z| が 1 より大きければ発散します。したがって全ての極が単位円 |z|<1 の内側にあることが安定の条件になります。連続時間系では s 平面の左半面が安定領域でしたが、ディジタル制御では z 平面の単位円内に置き換わります。これが連続系と離散系の安定領域の最大の違いです。
最高次の係数を1に正規化した多項式 P(z) に対し、まず3つの必要条件をチェックします。第一に P(1)>0、つまり z=1 を代入した値が正であること。第二に偶数次の多項式では P(-1)>0、つまり z=-1 を代入した値が正であること。第三に |a0|<1、定数項の絶対値が最高次係数(=1)より小さいこと。これらは安定であれば必ず満たされる条件で、1つでも破れたら直ちに不安定と結論できます。逆に必要条件を全て満たしても、ジュリー表の内部条件まで確かめないと安定とは言い切れません。
係数を並べた行 Row1=[a0,a1,a2,a3,1] と、それを逆順にした行 Row2 から始め、隣り合う2行の両端要素を使った2×2行列式で次の行を作っていきます。4次系では2段の行が追加で得られ、その先頭要素と末尾要素の絶対値を比べて2つの内部条件 |b0|>|b3| と |c0|>|c2| を確認します。必要条件3つと内部条件2つが全て成立すれば、全根が単位円内にあり離散時間系は安定です。本ツールは判定根拠が見えるよう、参考としてDurand-Kerner法で実際の根も計算して表示します。

実世界での応用

ディジタル制御器の設計:マイコンやFPGAで動くPIDコントローラ、モータドライバ、電源の電流制御ループは、すべてサンプリング周期ごとに値を更新する離散時間系です。これらの閉ループ特性方程式は z の多項式になり、安定性はジュリーの判別で確認します。とくにサンプリング周期を長くすると極が単位円の外へ移動しやすくなるため、周期と制御ゲインを変数に残したまま、ジュリー条件を不等式の形で解いて安定なパラメータ範囲を求めます。

連続系のディジタル化(離散化)の検証:アナログで設計した制御器を、Tustin変換やゼロ次ホールドでディジタル実装に置き換える場面は非常に多いです。離散化すると安定領域が左半面から単位円内へ変わるため、連続系で安定だった設計が離散化後に不安定になることがあります。ジュリー判別は、離散化後の特性多項式が本当に単位円内に収まっているかを手早く検算するのに使えます。

ディジタルフィルタの安定性確認:IIRフィルタ(無限インパルス応答フィルタ)の伝達関数の分母多項式も、根が単位円内になければ出力が発散します。オーディオ処理や通信のディジタル信号処理では、係数を量子化した後でも分母の根が単位円内に留まっているかをジュリー条件で確認します。固定小数点実装で係数を丸めた結果、極が円の外へ出てしまう事故を防ぐ検算になります。

制御工学教育とCAE前の検算:離散時間系の極を数値的に求める前の「答えの当たりづけ」としても有用です。MATLABやPythonで根を計算する前にジュリー条件を見れば、安定か不安定かが即座に分かります。逆に数値計算の根がジュリー判別と矛盾していれば、係数の入力ミスや離散化のモデル化誤りを疑うサニティチェックになります。

よくある誤解と注意点

まず最も多いのが、「連続系の感覚をそのまま離散系に持ち込む」誤解です。連続時間系では「極が原点に近いほど応答が速く安定」というイメージがありますが、離散時間系の z 平面では事情が違います。安定領域は単位円の内側であり、原点 z=0 が最も速い(実質1サンプルで収束する)応答に対応し、円周 |z|=1 に近いほど減衰が遅くなります。s 平面の「左に行くほど良い」という感覚で z 平面を見ると判断を誤ります。z 平面では「原点に近いほど良い」と読み替える必要があります。

次に、「全ての係数が正なら安定」という思い込みです。これはラウス・フルビッツでも誤解されますが、ジュリー判別では係数の符号は安定の十分条件にも必要条件にもなりません。離散時間系の安定な多項式の係数は負になることもあり(左の例 a₃=−0.8、a₁=−0.128 がそうです)、逆に係数が全て正でも根が単位円の外に出ることがあります。必ず必要条件 P(1)>0・P(−1)>0・|a₀|<1 とジュリー内部条件の両方まで確認してください。係数の符号だけを見て安心するのは危険です。

最後に、サンプリング周期と係数量子化の影響です。ジュリー判別は与えられた多項式に対しては厳密ですが、その多項式自体がサンプリング周期に強く依存します。周期を長くとると同じ連続系でも離散極が単位円の外へ移り、不安定化します。さらにディジタル実装では係数が有限ビットに丸められるため、設計上は安定でも実装後の量子化済み係数で根が円の外に出ることがあります。ジュリー条件は「ぎりぎり満たす」のではなく、根が単位円の内側に十分な余裕をもって入るように、係数とサンプリング周期に余裕を取った設計にしてください。

使い方ガイド

  1. 特性多項式の係数a₃、a₂、a₁、a₀を入力欄に設定します。例えばDCモーター速度制御系の離散化で a₃=1.2、a₂=-0.8、a₁=0.15、a₀=0.05と指定します。
  2. 各係数のスライダーまたは数値範囲ボックスで値を調整し、シミュレーターがジュリー表を自動計算します。
  3. z平面プロット上で単位円と根の位置を確認し、「安定判定」の判定結果と「最大根の絶対値|z|max」で閉ループ応答の収束性を評価します。

具体的な計算例

サンプリング周期Ts=0.1秒の温度制御系で特性多項式P(z)=z³-1.5z²+0.6z+0.1を想定します。係数をa₃=1、a₂=-1.5、a₁=0.6、a₀=0.1と入力すると、ジュリー判別法により P(1)=0.2、P(-1)=-2.9、|a₀|/a₃=0.1と計算され、単位円内に2個の根が存在し|z|max=0.95となり安定系と判定されます。実装時には離散PIDゲインKp=0.8、Ki=0.12、Kd=0.05に対応します。

実務での注意点

  1. A/D変換とディジタルフィルタ設計では、遅延要素z⁻¹を含む分母次数が分子次数以上か確認してください。位置決め制御で不適切なサンプリング周期を選ぶと根が単位円外に移行します。
  2. ジュリー表の最初の行の第1列|a₀/a₃|が1以上なら即座に不安定と判定でき、複雑な計算を省略できます。
  3. 根の絶対値がすべて0.98未満であれば、外乱やパラメータ変動に対する堅牢性マージンが確保される傾向にあります。