seilog-ger
[ URL:seilog.org ] Writtern by Seiji Nakamura

2020/10/30 (更新日:2021/10/1)

電動車椅子・電気自動車の制御をstateflowを使ってモデルベース開発する考え方

EV

 電動搬送車・電動車椅子・電気自動車を作りたい人に向けて

 電気自動車をどのように制御するか理解したい方へ、
 電動車椅子を車両速度で制御する場合の考え方が分かっていない
 と思うことはありませんか?

 車両制御を状態遷移と状態量計算で表現しモデル(モデルベース開発)を組み立てる考え方の一つの例を紹介します。
 制御ロジック・状態量計算にはMatlab/Simulinkを、状態遷移はstateflowで組み込みます。
 第一に車椅子の仕様の考え方の参考になります。
 第二に、Stateflowでシミュレーションしたことのない人がシミュレーションモデルをつくる参考になると思います。

 ■目次
  電動車椅子・電気自動車の制御を考える一つの手順と基本的な内容
   1.電動車椅子・電気自動車を考える前提条件
   (コンセプト・諸元・目標性能)
   2.電動車椅子・電気自動車の要求を整理する要求図
   3.電動車椅子・電気自動車の要求図を具体化して整理する例     
   4.電動車椅子・電気自動車の制御システム図
   5.電動車椅子・電気自動車の制御ロジックの概要をモデル化
    (matlab/Simulink・stateflow)
   6.電動車椅子・電気自動車の制御ロジックの状態遷移図(stateflow)
  最後に

 私はMATLAB/simulinkを使って車両&車両制御モデルを構築し動作のシミュレーションを業務でおこなっていた経験があります。

電動車椅子・電気自動車の制御をstateflowを使ってモデルベース開発する考え方

by Alberto_Fabregas pixabay

電動車椅子・電気自動車の制御を考える一つの手順と基本的な内容

 電動車椅子を「レバーに応じて車両速度を制御する」様にロジックを作ることを目標にして、必要な情報を整理して決めていく手順とその内容を説明します。
 Matlab/Simulink・stateflowでモデルを作成する準備までが対象になります。

 *トルク制御・一般的な電動車の制御については、投稿済の電気自動車制御で結構詳しく説明をしていますので参照ください。
   ⇒ 電気自動車の制御ロジック(モデル化)の設計手順
     電気自動車の制御をモデル化してシミュレーション評価

 1.電動車椅子・電気自動車を考える前提条件(コンセプト・諸元・目標性能)


 電動車椅子の設計で必要になる“前提”について目安を整理してみました。

 状況により内容は変わると思いますが、全体像を理解して制御設計するのが大切だと思います。

 ざっと目を通して基本的な項目を確認してから始めてください。

 2.電動車椅子・電気自動車の要求を整理する要求図

 制御ロジックをいきなり検討するのではなく、手順を踏んで制御ロジックを構築するとやり直しが少なく効率の良い開発ができると思いませんか。
 ここでは、大きな要求項目をリストアップして徐々にブレークダウンすることで実際のロジックに結びつける準備をします。

  (1)使われ方:ユースケース


「電動車椅子で歩道を安全に走行する。」ことを制御の目的に設定し、状況を解析してみます。制御目的に応じて最初の命題は設定してください。

要因となる項目を大きく5つ挙げました。

人により見方が違う場合もありますので、ご自分で検討して不足の場合は追加してみてください。

  (2)要求図

 5つの項目について、満足できるように要因分析をしました。
 制御に係る内容を優先で解析をしている傾向がありますが、制御以外の項目も幅広く挙げると、全体の電動車椅子開発をより円滑に進めることが出来ると思います。
 上位の内容を成立させる為に必要な“要求”を掘り下げる様に要求図の形でまとめてあります。
 下流になるに従って具体的になっています。

 3.電動車椅子・電気自動車の要求図を具体化して整理する例       

 要求図で具体化されてきた項目を、制御に係る内容とそれ以外の内容にわける必要があります。
 また、制御に係る内容でも重要度や緊急度から、今回制御に織込む必要がある内容か織込む必要がない内容かを分ける必要があります。
 制御に織込む内容は、言葉だけではなく制御ロジックに織込めるデータレベルにまで具体化する必要があります。
 制御に関わる第4の項目 = 「安全にユーザーの思い通りに走行できる。」に関して、要求図のブロック要素に付けられたid毎に要求仕様を具体化して表にまとめました。
 表中の“今回の電気駆動システムによる対応”で“(対応)する”と書いてある項目が、今回織込む内容になります。
 それぞれの図や表の内容は、コンセプトに従い別途試算した結果を記入しています。
 詳細は説明しませんが、計算過程は以前の投稿も参照してください:
  ⇒ 電気自動車のモータ出力を設計します【電池・インバータも決める為】

 4.電動車椅子・電気自動車の制御システム図

 ハードのシステム構成と信号の関係をシステム図で表現します。
 VCU:車両コントローラに制御を組込みますが、制御に必要な入出力信号の概要がわかります。

 ここまでの内容で制御の考え方はほぼ決まりました。
 この先は、どの様にロジックを組立てていくかが課題となります。

 5.電動車椅子・電気自動車の制御ロジックの概要をモデル化(matlab/Simulink・stateflow)


制御モデルはモデルベース開発(model base development)で考えています。- 充電については除外 –

入出力値に応じた状態量計算および通常のロジックで構成される入出力処理部と、制御状態遷移ロジック部の2ブロックで構成しています。
入出力処理部をmatlab/simulinkで
状態遷移ロジック部をmatlab/stateflowで作成します。

 入出力処理部は、入出力値に応じた状態量計算と定常ロジックで常に決まった処理をする部分になります。
 一般的な内容なのでここでは触れません。
 それに対し制御状態遷移ロジック部は運転状態に応じて制御の状態を選択して車両の変化を生み出していきます。

 6.電動車椅子・電気自動車の制御ロジックの状態遷移図(stateflow)

 簡単に状態遷移ロジックを説明します。
 始めに電源を投入してCPUの準備ができると、走行制御に状態が遷移します。
 走行制御では、前進走行・後進走行の制御を状況に合わせ選択します。
 その後、車両状況の変化に応じて、車両を停止して電源遮断かフェイル処理をおこないます。
 センサの情報に応じて状態遷移しているのです。

状態遷移のロジックはstateflowでMatlab/Simulinkにモデルとして組み込むことが出来ます。
stateflowで使われる情報は、情報処理をしている入出力処理部 = matlab/simulinkの結果を取り込んでいます。
必要な条件が成立した時点で状態遷移する判断を常に行います。

Matlab/Simulink上でstateflowで状態遷移図を表現してモデル化していくことになります。
stateflowで表現する手法を理解するには、
 ①Mathworksのマニュアルの対象の部分を参照する
 ②書籍で勉強する
必要があります。
stateflowで作成する手順を、比較的初心者にもわかり易く説明している書籍を紹介します。

stateflowは、状態遷移図をMAtlab/Simulink上にほぼそのまま作成していく作業になりますが、色々な条件があります。
やり方で行き詰まった時に参照してください。
力になると思います。

最後に

 電動車椅子の制御ロジックに関して、少しでも実務の参考になればと説明してきました。
 今回の制御ロジックはmatlab/simulink/stateflowでモデルを作成して、シミュレーションにより所望の動作をしていることを検証しています。
 ただし、使用する目的によりそのままでは使えない場合があるので、ベンチなどで問題がないことを確認してから実車に搭載して使用する様にお願いします。

 *最後まで読んでいただきありがとうございます。舌足らずで説明不足の所はお許しください。

Copyright – Seiji Nakamura, 2020 All Rights Reserved. 

関連記事