Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自作Python制御ライブラリの紹介

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Koichi Sakata Koichi Sakata
May 26, 2024
0

 自作Python制御ライブラリの紹介

Avatar for Koichi Sakata

Koichi Sakata

May 26, 2024

Transcript

  1. sakalib.com 2/13 自己紹介 https://github.com/Koichi-Sakata/pylib_sakata SakaLib : @sakata0330 専門:精密位置決めを軸とした制御工学、モーションコントロール 仕事内容など •

    精密機器メーカー勤務。とある事業部で要素開発プロジェクトの立ち上げ等 • 個人事業主(屋号: SakaLib)として制御セミナー講師・技術コンサルティングも • 趣味で「おウチで制御工学」の布教活動しています。 今回ご紹介する自作Pythonライブラリ:pylib-sakata 1.ライブラリ構成と関数リスト 2.環境構築の手順 3.シミュレーションの実行例 4.おウチで制御実験解析の実行例
  2. sakalib.com 4/13 2.制御解析環境の構築 1. Pythonのインストール 下記URLよりPythonインストーラ(Verion3.11.0以上)をダウンロードしてインストール https://www.python.org/downloads/ ※ “Add python.exe

    to PATH“にチェック 2. Pythonライブラリのインストール 2.1. pipのアップグレード(コマンドプロンプト上で以下のコマンドを実行) py –m pip install --upgrade pip 2.2. 必要なライブラリのインストール(コマンドプロンプト上で以下のコマンドを実行) py –m pip install numpy py –m pip install scipy py –m pip install matplotlib py –m pip install pandas py –m pip install control py –m pip install pylib-sakata 3. 開発環境PyCharm(Community)のインストール https://www.jetbrains.com/pycharm/download/#section=windows 4. 演習用Pythonファイルのダウンロード https://github.com/Koichi-Sakata/pylib_sakata Codeボタンをクリック→Download ZIPをクリック
  3. sakalib.com 5/13 2.制御解析環境の構築 5. PyCharmの起動オプション設定ファイルの変更 PyCharmのインストールフォルダ “C:¥Program Files¥JetBrains¥PyCharm XXX” (default)の

    起動オプション設定ファイル”bin¥pycharm64.exe.vmoptions”の最終行に -Dfile.encoding=UTF-8 を追加する。 6. PyCharmの設定 演習用PythonファイルをPyCharmで開き、 File→Settings→Project:xxx.py→Python Interpreterに、 インストールしたpython.exeを設定する。 Packages一覧にインストールしたライブラリがあることを確認する。 7. プログラムの実行確認 プログラム上で右クリック Run File in Python Console を実行する。
  4. sakalib.com 6/13 3.時間応答と周波数応答(2次系) ] rad/s [ 2 1 ] [

    1 2 1 2 2 n P P M      − = − = 倍 7071 . 0 2 1 when =   2 2 2 2 ) ( n n n s s s G    + + = ) (s G y step ピークゲイン: ピーク周波数: ◆ 時間応答(ステップ応答) 1 2  =   n https://github.com/Koichi-Sakata/pylib_sakata/blob/main/example/Run_2nd_order_sys.py ◆ 周波数応答
  5. sakalib.com 7/13 3.時間応答と周波数応答(2次系) 2 2 2 2 ) ( n

    n n s s s G    + + = ) (s G y step 7071 . 0 =  𝜔𝑛 = 2𝜋𝑓𝑛 ◆ 時間応答(ステップ応答) ◆ 周波数応答 https://github.com/Koichi-Sakata/pylib_sakata/blob/main/example/Run_2nd_order_sys.py
  6. sakalib.com 8/13 3.位置制御設計例 ◆ ステップ応答 ◆ 感度関数 ◆ 相補感度関数 ◆

    ナイキスト線図 𝜔1 = 2𝜋 ⋅ 20 rad/s 𝜁1 = 0.7 𝜔2 = 2𝜋 ⋅ 20 rad/s 𝜁2 = 0.7 ◆ 極配置設計パラメータ K Cs Ms u y s P + + = = 2 1 ) ( s a s b s b s b s C c c c c 1 2 0 1 2 2 ) ( + + + = 𝑀 = 1.0[kg] 𝐶 = 5.0 N/ m/s 𝐾 = 0.0 N/m ◆ 物理パラメータ ドライバ特性: FB制御器: 制御対象: サーボサイクル0.125ms の3サンプル分遅れ ◆ ステップ応答 ◆ 感度関数 ◆ 相補感度関数 ◆ ナイキスト線図 𝜔1 = 2𝜋 ⋅ 159.5 rad/s 𝜁1 = 0.7 𝜔2 = 2𝜋 ⋅ 159.5 rad/s 𝜁2 = 0.7 ◆ ステップ応答 ◆ 感度関数 ◆ 相補感度関数 ◆ ナイキスト線図 𝜔1 = 2𝜋 ⋅ 180 rad/s 𝜁1 = 0.7 𝜔2 = 2𝜋 ⋅ 180 rad/s 𝜁2 = 0.7 https://github.com/Koichi-Sakata/pylib_sakata/blob/main/example/Run_pid.py
  7. sakalib.com 10/13 4.モーションコントロールの開発環境に求められるもの ⚫ インフラ要件(絶対必要) ・同期性 ・リアルタイム性 ・高速サンプリング:4kHz~16kHz、それ以上 ⚫ プログラミングの自由度(必要)

    ・プログラミング言語:C/C++ ・プロジェクト間の信号接続 ・データ収集・計測機能 ・ソフトウェアの管理 ・デバッガーの有無 ⚫ ラピッドプロトタイピング(あると便利・開発規模による) ・MATLAB, CAD等との連携シミュレーション・実行 重要 TwinCAT3は左の要件が全て揃っており、 Visual Studio環境で開発が可能! さらにTwinCAT3 C/C++トライアルライセンスは、 実質永久に使用可能! 興味のある方は下記サイト(TwinCAT Howto)参照 https://sites.google.com/site/twincathowto/home