夜間飛行

Chachay

Chachay

世界のどこかで働くTech系エンジニア。古典制御や現代制御などロボット制御や強化学習、機械学習もやります。はてなブログからの統合計画中。

PythonのGUI Toolkit比較(Tkinter, PyQt5, wxPython)

Posted on 8/26/2017
このエントリーをはてなブックマークに追加
PythonにはGUIツールキットが、いっぱいあって、定番を決められないうちに、いくつも使うようになってしまいました。Pythonのドキュメントにも、Tkinter, wxPython, PyQt, Kivy, さらにpygletだけにとどまらず、いくつものGUIツールキットが紹介されており、あたかも全てが公式のようです。サポートの面からも、いずれもコミュニティがあまり生き生きしていないようで、「このツールキットなら困ったときに、すぐ教えてもらえる!」みたいな選び方も難しいように感じます。

と愚痴りつつ、これらのうち、Tkinter, wxPython, PyQt, Kivy, Pygletは少しいじりますので、うち最初の3つで、簡単なGUIを作って比較します。

プラントモデルの離散化:Z変換表

Posted on 3/28/2016
このエントリーをはてなブックマークに追加
マイコンで制御される被制御系(プラント)の安定を評価するには、プラントの標本化(離散化)が必要でした。
⇒ <参考>デジタル制御:最初の最初 ③ 

このデジタル制御におけるプラントの離散化は一般化して書くとShalom D. Ruben先生の資料をお借りすると下記のように表せます。
Shalom D. Ruben
UCLA -Winter 2011 - MAE 171B Digital Control of Physical Systems
Chapter 4 - Discrete-Time System Representation
http://ecee.colorado.edu/shalom/DTRep.pdf
連続出力$ y(t) $のラプラス変換 $ Y(s) $は\[
Y(s) = G_{p}(s) \cdot G_{ZOH}(s) \cdot U^*(s)
\]
したがって、この出力をサンプリング(A/D変換)した結果をスター変換で表すと
(サンプリング周期 T[sec])\[\begin{align*}
Y^*(s) &= \frac{1}{2 \pi i} \lim_{T \to \infty}\int_{c - iT}^{c+iT}Y(\sigma)\frac{1}{1-e^{-T(s-\sigma)}} d\sigma \\
 &= \frac{1}{2 \pi i} \lim_{T \to \infty}\int_{c - iT}^{c+iT}G_{p}(\sigma) \cdot G_{ZOH}(\sigma) \cdot U^*(\sigma)\frac{1}{1-e^{-T(s-\sigma)}} d\sigma \\
 &= \Bigl(\frac{1}{2 \pi i} \lim_{T \to \infty}\int_{c - iT}^{c+iT}G_{p}(\sigma) \cdot G_{ZOH}(\sigma) \frac{1}{1-e^{-T(s-\sigma)}} d\sigma \Bigr) U^*(s)
\end{align*}\]
Note: 文献[1]の式(4.3)
となるから離散系にも伝達関数を定義できて、$ z = e^{sT} $ としてZ変換と紐づければ\[\begin{align*}
\mathcal{Z}[G(z)] \equiv \frac{Y(z)}{U(z)} &= \mathcal{Z}[G_{p}(s) \cdot G_{ZOH}(s)] \\
&= (1-z^{-1}) \mathcal{Z}[\frac{G_{p}(s)}{s}]
\end{align*}\]
Note: 文献[1]の式(4.10)

以下では、このD/A変換(ZOH)とプラントを直列にしたものを $ G(z) $の列とします。

Z変換表 : デジタル制御変換表
プラント伝達関数 $ G_p(s) $デジタル制御伝達関数 $ G(z) $
(サンプリング周期 T[sec])
積分系\[\frac{1}{s} \]\[\frac{T}{1-z^{-1}}\]
1次遅れ系
\[\frac{1}{\tau s+1} \]\[\frac{(1-e^{-\frac{T}{\tau}})z^{-1}}{1-e^{-\frac{T}{\tau}}z^{-1}} \]
\[\frac{\omega}{s+\omega} \]\[\frac{(1-e^{-\omega T})z^{-1}}{1-e^{-\omega T}z^{-1}} \]
2次遅れ系
$ 0 < \zeta < 1 $
\[\frac{\omega^2}{s^2+2\zeta \omega s + \omega^2}\]\[\frac{[1-\frac{e^{-\zeta \omega T}}{\sqrt{1-\zeta^2}}sin(\omega*\sqrt{1-\zeta^2}T+\phi)]z^{-1}+[e^{-2\zeta \omega T}+\frac{e^{-\zeta \omega T}}{\sqrt{1-\zeta^2}}sin(\omega \sqrt{1-\zeta^2}T-\phi)]z^{-2}}{1-2e^{-\zeta \omega T}cos(\omega \sqrt{1-\zeta^2} T)z^{-1}+e^{-2 \zeta \omega T}z^{-2}}\]ただし、$ \phi = acos(\zeta) $

Note 1:  高周波に対する安定の確認については別途検討が必要 http://ysserve.wakasato.jp/Lecture/ControlMecha3/node23.html

Note 2: 時間おくれについては拡張Z変換を使います
http://ysserve.wakasato.jp/Lecture/ControlMecha3/node16.html

【参考】

1. UCLA -Winter 2011 - MAE 171B Digital Control of Physical Systems
    Chapter 4 - Discrete-Time System Representation
    http://ecee.colorado.edu/shalom/DTRep.pdf

2. Neuman, C. P., and C. S. Baradello. "DIGITAL TRANSFER-FUNCTIONS FOR MICROCOMPUTER CONTROL." IEEE TRANSACTIONS ON SYSTEMS MAN AND CYBERNETICS 9.12 (1979): 856-860.

3. 株式会社デンソー, 制御装置. 特開2010-19105. 2010-1-28.
Copyright © Since 2014 Chachay All Rights Reserved. Powered by Blogger.