今から始める Simulink 入門 ~ 制御編 ~ MathWorks Japan アプリケーションエンジニアリング部アプリケーションエンジニア張莉 2013 The MathWorks, Inc. 1
What is Simulink? 2
Why use Simulink? 例 : アポロ月着陸船のデジタル自動操縦の開発 3
Simulink を使うと? 当時の設計者が自ら Simulink を使ってモデルを作成した システム全体の設計 解析 フルシステムテスト 実装コードの自動生成 わずか一週間で完成! 4
Why use Simulink? 例 : アポロ月着陸船のデジタル自動操縦の開発 YET Why NOT use Simulink? 5
本講演の目的 : これから制御分野で Simulink を使ってみたいという初心者の方を対象に Simulink の基本的な使用方法をデモを交えて紹介します 6
アジェンダ Simulinkの概要 Simulinkモデルを使ってみましょう Simulinkモデルを作ってみましょう まとめ 7
Simulink を簡単に言うと? 1. Simulink は 時間とイベントのシミュレーション環境 2. Simulink は グラフィカルなモデリング環境 3. Simulink は モデルベースデザインを実現するための環境 シミュレーション モデリング モデル 自動コード生成 実機テスト 検証 8
MATLAB と Simulink の関係は? MATLAB 容易なデータ操作 簡潔なプログラミング言語 豊富な数学関数 ファイル I/O 2 次元 /3 次元可視化機能 技術計算環境 Simulink ブロック線図モデリング 豊富なブロックライブラリ 高精度な時間応答シミュレーション Stateflow Simulink 用フローチャート 状態遷移図 モデルベースデザイン環境 9
MATLAB/Simulink 採用業種 航空宇宙 / 防衛 自動車関連 医療 創薬 化学 / 石油 通信 コンピュータ オフィス機器 教育 エレクトロニクス / 半導体 金融関連 工業オートメーション 計測 電気 ガス エネルギー 10
MATLAB/Simulink 適用分野 科学技術計算 通信 / エレクトロニクス / 半導体 制御関連 実験 計測 画像処理 生命工学 金融解析 11
多種多様な制御システムの開発において Simulink は業界標準ツールとして利用されています WHY? Nissan Daimler Truck エミッション低減化システムクルーズコントローラー Lear ボディコントロール ミツバリバーシングワイパーシステム Xerox プリンタ用紙軌道制御技術 Medrad MRI 血管造影剤注入ポンプ 12
Simulink を使用し 制御システムの振る舞いを机上で簡単に検討! 13
アジェンダ Simulinkの概要 Simulinkモデルを使ってみましょう Simulinkモデルを作ってみましょう まとめ 14
デモ 自動車のトランスミッションの制御システム Shipping demo: sf_car.slx 15
コードベースで開発する場合は Driver inputs Engine Shift logic Transmission Vehicle 16
先程のデモをまとめると? One click でシミュレーション実行 簡単に信号を確認 細かく確認したい所で一旦停止 一ステップずつ実行 / 巻き戻し 入力信号を変えてテスト 車両のスペックをチューニング 17
Simulink を使用し 制御システムの振る舞いを机上で簡単に検討! ブロック線図環境 内容を理解しやすい 設計資産の再利用性が高い チーム間のコミュニケーション向上 ライブラリが豊富 伝達関数 PID コントローラ FFT 可視化 処理の詳細までプログラムを書く必要なし 開発期間を短縮 チューニングや変更が簡単 アルゴリズムの試行錯誤に便利 検証 デバッグが簡単 アルゴリズムの最適化による品質向上 18
アジェンダ Simulinkの概要 Simulinkモデルを使ってみましょう Simulinkモデルを作ってみましょう まとめ 19
Simulink を用いた制御システム開発モデルベースデザイン (Model-Based Design) 構想 設計 試作 検証といった一連の開発プロセスにモデル & シミュレーションを活用した開発手法 仮想環境 実環境 制御モデル 制御対象モデル モデリング = 仮想試作シミュレーション = 仮想実験 制御装置 制御対象 20
モデルベースデザインの流れ - 実行可能な仕様書 - 明確で分かりやすい モデリング - 試作コストを削減 - システムレベルで解析 シミュレーション モデル 実機テスト 検証 - 設計しながらテスト可能 - 早期のエラー検出 自動コード生成 - コーディング工数削減 - 人的エラーを無くす 21
Simulink を使って 簡単な制御システムを作ってみましょう! 22
例題 : マス バネ ダンパ系の位置決め制御 目標位置 + - 制御入力 PI 制御 コントローラ アクチュエータ x u m c k センサ 測定位置 偏差 プラント まずはプラントから! 23
制御対象のモデリング メカ エレキ動作の把握 数式モデリング 仮想環境 制御モデル 制御対象モデル 物理モデリング 実環境 Black box 制御装置 制御対象 システム同定パラメータ推定 Gray box 24
Simulink の基本操作方法 1. ライブラリブラウザ起動 5. シミュレーション開始 2. 新規モデル作成 4. ブロックを結線 3. ブロックをモデルにドラッグ & ドロップ 6. 結果確認 25
Simulink のブロックライブラリ モデリングに必要なブロックを多数にご用意! 26
制御対象の数式モデリング Step.1 数式モデル 導出 x u m c k 伝達関数で表現 1 G( s) 2 ms cs k バネ復元力台車質量ダンパ減衰力 Step.2 Simulink でモデリング Step.3 シミュレーション C = 0 C = 10 27
デモ : 制御対象の数式モデリング 1. 新規モデル作成 4. ダブルクリックで開く 2. 連続系のカテコリを選択 5. パラメータを設定 3.Transfer Fcn( 伝達関数 ) ブロックをモデルにドラッグ & ドロップ 6. パラメータの値は MATLAB のコマンドウィンドウ上で設定 28
デモ : 制御対象の数式モデリング 10. シミュレーション開始 11. 結果確認 7. 入力信号を配置 (Sources Step) 9. ブロックを結線 8. 出力観測用の Scope を配置 (Sinks Scope) 12. コマンドウィンドウ上でパラメータの値を変更し 再シミュレーション 13. 結果が変わったことを確認 29
Tip: MATLAB と併用し ダンパ減衰力 C を 1~10 まで 1 ずつ変化させて 簡単に結果を確認! 30
ほかのモデリング方法 : 物理モデリング 数式なしで直感的にモデリング x c u m k 31
マルチドメインな物理モデリング環境 強電パワエレ 機械 3D 油圧 1D 動力伝達弱電 1D デジアナ SimPowerSystems TM SimMechanics TM SimHydraulics Simscape TM SimDriveline TM MATLAB, Simulink SimElectronics 関連講演 : Simscape 機械油圧電気 A4 Simscapeによる物理モデリング熱空気圧磁気 N S 入門 Simscape Language によるカスタム部品 / ドメイン開発 マルチドメインシステム専用の計算エンジン DAE( 微分代数方程式 ) ソルバ 基本要素ブロックライブラリ カスタムコンポーネント 32
パラメータ推定 システム同定の機能も提供! グレーボックス モデルブラックボックス モデル パラメータが一部不明数式 パラメータが不明 ダンパ要素 (c) が不明 何も分からない Simulink Design Optimization TM 実験データを用いた制御対象パラメータ推定 期待出力値による制御パラメータ調節 System Identification Toolbox TM 入出力値から線形 / 非線形動的モデルを同定 同定のための前処理 / 後処理 立式困難な対象のモデル化, パラメータの合わせ込みに有効 Optimization Toolbox TM が必要 33
例題 : マス バネ ダンパ系の位置決め制御 目標位置 + - 制御入力 PI 制御 コントローラ アクチュエータ 次は制御設計! 偏差 プラント 伝達関数 x u m プラント c k センサ 1 G( s) 2 ms cs k m 1, c 10, k 10 測定位置 34
制御設計 効率的な補償器設計 パラメータ調節 システム解析 仮想環境 制御モデル 制御対象モデル パラメータ自動調節 実環境 最適化 制御装置 制御対象 35
PI 補償器で位置決め制御 Simulink の PID Controller ブロック 目標位置 + - 制御入力 PI 制御 コントローラ アクチュエータ x u m c k センサ 測定位置 偏差 プラント PI 制御を簡単に実現可能! 36
デモ : モデル上で制御設計 1. 差分計算ブロックを配置 (Math Operations Sum) 2. フィードバックループを作成 ( 右ボタンを押しながらドラックし 信号線の分岐点を作成 ) 3.PID 制御ブロックを配置 (Continuous PID Controller) 4. コントローラー形式の選択 ( 今回は PI 制御を使用 ) 5. チューニング前の応答を確認 37
PI ゲインを自動調整して応答特性を改善します Simulink Control Design TM 使用 PI 制御のゲイン調整作業を効率化 応答を確認しながらチューニング 38
マス バネ ダンパ系の位置決め制御システム完成! 39
その先は? モデルから自動的にコードを生成! 仮想環境 C/C++ HDL ST 制御モデル 制御対象モデル 実環境 制御装置 制御対象 40
最初の例題に戻ります 41
まとめ Simulink を使用し 制御システムの振る舞いを机上で簡単に検討! ブロック線図環境 ライブラリが豊富 チューニングや変更が簡単 Simulink をベースにしたモデルベースデザインで 制御システム開発のプロセスを改善! シミュレーション モデリング モデル 自動コード生成 実機テスト 検証 42
もう少し深く知りたい方に向けの情報 関連講演 A4 Simscape による物理モデリング入門 E2 モーター モーション制御モデルベースデザイン実践 制御系設計 編 E3 モーター モーション制御モデルベースデザイン実践 プラントモデリング 編 E4 モーター モーション制御モデルベースデザイン実践 リアルタイムテスト 編 E5 モーター モーション制御モデルベースデザイン実践 組み込みコード生成 編 F4 多入出力 (MIMO) 制御システムのチューニングを Simulink でより簡単に 43
Simulink を最大限活用するために Simulink 基礎 トレーニング Simulink をすぐに使いこなせるようになります 日数 :2 日間 in 名古屋 / 東京 Great Learning Experience! MATLAB と Simulink による制御設計 トレーニング MATLAB/Simulink 製品群による閉ループ制御システムの設計方法 ( プラントモデリング 解析 コントローラー設計 シミュレーション等 ) を習得できます 日数 :2 日間 in 名古屋 / 東京 受講者の声 : - 講習の内容は座学と実習がちょうどよいバランスで楽しみながら学ぶことができました - Simulink の使い方が基礎から説明されていて とても良かったです はじめて Simulink に触れる人には おすすめできる内容だと思いました - 今回の講義を通して はじめて MATLAB と Simulink について触れる機会となりましたが 大変分かりやすい説明と講義資料により 着実に理解しながら進めることができました Google にて Simulink トレーニング で検索!! 44
ご清聴ありがとうございました. 2013 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders. 45