モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) [電子書籍]
    • モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) [電子...

    • ¥3,520704 ゴールドポイント(20%還元)
    • ただいま予約受付中!2026年11月09日12:00:00からお読みいただけます

モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) [電子書籍]

新帯俊信(著者)
価格:¥3,520(税込)
ゴールドポイント:704 ゴールドポイント(20%還元)(¥704相当)
フォーマット:
専用電子書籍リーダーアプリ「Doly」が必要です。無料ダウンロード
お届け日:ただいま予約受付中!
出版社:技術評論社
公開日時:2026年11月09日12:00:00からお読みいただけます。
お取り扱い: のお取り扱い商品です。
ご確認事項:電子書籍リーダーアプリ「Doly」専用コンテンツ
こちらの商品は電子書籍版です

モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) の 商品概要

  • 本書は,制御対象のふるまいを予測しながら最適な操作量を計算する「モデル予測制御」を題材に,理論だけで終わらせず,実際に動く高速で読みやすいC++コードとして実装するための実践書です。スパース行列を活用した効率的な行列演算,制御アルゴリズムのライブラリ設計,Pythonによるモデル化・検証からC++コード生成,組込みシステムへの実装までを一気通貫で解説します。生成AIも設計・実装の補助として取り入れながら,現場で再利用できる開発ワークフローと高速化の考え方を身につけます。制御の知識をソフトウェアとして形にしたいエンジニア,研究者,大学院生に向けて,自ら実装し,検証し,改善できる力を育てる一冊です。
  • 目次

    第1章:制御系設計の目的
    制御とは
    フィードバック制御
    物理を理解し,操る
    ラプラス変換によるダイナミクス表現
    制御工学最大の発明「PID制御」
    制御器の汎用化
    制御アルゴリズムのソフトウェア実装
    ハードウェア実装の限界
    z変換を使ったプログラム化
    ソフトウェア実装のメリット,デメリット
    アナログとデジタル,連続と離散
    組み込み実装の難しさ
    メモリ,計算速度の制約
    リアルタイム実行の必要性
    実機デバッグの困難さ
    安全性の要求
    モデルベース開発
    シミュレーションの活用
    設計フェーズをレイヤに分ける
    コード生成
    MBDの課題
    本書のゴール
    実現すること
    モデル予測制御を高い計算効率で実装する
    本書の内容
    生成AI時代にあるべきMBDの姿
    生成AIがあれば技術者は不要なのか
    参考資料

    第2章:制御系設計ワークフローを理解する
    制御プログラムの参照モデル
    1層:物理層
    2層:論理回路層
    3層:プロセッサ層
    4層:アセンブル層
    5層:コンパイル層
    6層:振る舞い層
    7層:アルゴリズム層
    アルゴリズム実装の観点
    物理量を表すデータ型
    固定小数点数
    浮動小数点数の数値計算不安定問題
    行列の条件数で不安定性を調べる
    浮動小数点数のゼロ除算回避
    浮動小数点数の論理演算
    言語実装の観点
    メモリ範囲外アクセスの保護
    無限ループの回避
    制御実行時におけるメモリ動的割り当ての禁止
    可能ならRustを使いたい
    ワークフローの設計
    MPC実装の流れ
    C++による実装の流れ
    開発フェーズの違い
    開発環境を提案
    ライブラリのアーキテクチャ設計
    MPCの学問体系
    既存Pythonライブラリの現状
    Gitリポジトリ構造
    数学計算ライブラリ
    オブジェクト指向とクラス設計
    参考資料

    第3章:行列計算のライブラリ化とC++実装
    効率の良い行列計算を実現するには
    分かりやすい,かつ速い「ゼロコスト抽象」
    行列の定義
    行列同士の演算
    制御工学で扱う行列の特徴
    行列計算のライブラリ構造
    C++バージョンについて
    行列クラスの定義
    メモリのどこに格納するか
    行優先と列優先──データをどう並べるか
    テンプレートクラスによる汎化
    行列の演算を定義
    インライン展開と参照渡し
    for文の効率化
    テンプレートメタプログラミング
    範囲外アクセスの保護
    転置行列の定義
    対角行列の定義
    スパース行列の定義
    スパース行列の表現方法「CSR形式」
    スパース行列の加算
    スパース行列の行列積
    CSR形式のテンプレートメタプログラミング
    コンパイル時展開型CSR形式スパース行列の定義
    スパース行列のループアンローリング
    行列の除算
    逆行列の定義
    効率的な逆行列計算「GMRES法」
    GMRES法の実装
    インタフェースの定義
    3種類の行列クラスを使い分ける
    機能の構造化
    「名前空間」による名前被り防止
    逆行列計算クラスの定義
    参考資料

    第4章:制御工学計算のライブラリ化とC++実装
    本章の目的
    状態空間によるシステム表現
    離散時間かつ線形の状態空間を実装
    テンプレート関数の型推論
    クラスに属する型エイリアスと定数
    型と実体の作り方を統一する
    PythonからC++コードを自動生成
    状態空間クラスインスタンスを自動コード生成
    行列クラスインスタンスを自動コード生成
    空のスパース行列
    コード生成スクリプト
    カルマンフィルタの実装
    カルマンフィルタの機能
    カルマンフィルタの計算の流れ
    カルマンフィルタクラスを定義(Python)
    カルマンゲインGの収束演算
    カルマンフィルタクラスを定義(C++)
    C++カルマンフィルタのクラスインスタンスコード生成
    むだ時間の実装
    参考資料

    第5章:モデル予測制御計算のライブラリ化とC++実装
    本章の目的
    1. プラントモデリング
    2. MPCの定義とシミュレーション
    3. C++コード生成と動作確認
    4.実機実装
    線形時不変,制約なしMPCの実装
    メンバー変数を作る
    指令値軌道Rの作り方
    むだ時間を補償する機能
    線形時不変,制約ありMPCの実装
    最適化アルゴリズム「アクティブセット法」
    最適化計算を実現する「KKT連立方程式」
    可変サイズの行列計算
    制約を管理する「アクティブセット」クラス
    最適化の反復計算
    線形時変,制約なしMPCの実装
    実現したいコード
    関数オブジェクト
    数式計算の実装
    数式計算から数値計算へ変換
    関数化とクラス化
    数式からC++までコード生成
    抽象構文木によるPythonコード解析
    C++の関数オブジェクト
    参考資料

    Appendix:開発環境の構築とNMPC実装
    Modeling-Coding-Automation-Projectの環境構築
    コード実行環境
    1. WSLの有効化
    2. Ubuntu 24.04をインストール
    3. Visual Studio Code(VSCode)をインストール
    4. WSL Ubuntuの起動
    5. Dockerのインストール
    6. Dockerイメージを作成
    7. ライブラリのサンプルコードを実行
    C++デバッガのバグ
    非線形モデル予測制御の計算時間測定
    環境の準備
    計測実行
    NMPCの設計内容
    参考資料

モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) の商品スペック

Cコード 3055
出版社名 技術評論社
本文検索 可
紙の本のISBN-13 9784297160456
他の技術評論社の電子書籍を探す
ファイルサイズ 18.0MB
著者名 新帯俊信
著述名 著者

    技術評論社 モデル予測制御のソフトウェア設計と実装 ──Pythonによるモデル化・検証とC++ライブラリ開発(技術評論社) [電子書籍] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!