空調制御ソフトウェアの標準化開発

特集論文

空調制御ソフトウェアの標準化開発
長崎事業所

技術第2部

車冷システム課
津田 憲宏

空気のかくはんや涼感を与える役目がある。

１．まえがき鉄道車両用空調装置（以下、空調装置）は三菱電機（株）長崎製作所（以下、長電）の主要製品であり、当所はその空調装置の空調制御ソフトウェアを開発している。
空調装置は鉄道会社や車両タイプごとに製品要件が異なるため、要件に合わせて、機器や機器構成が異なる製品を開発してきた。これに伴い、空調制御ソフトウェアも製品に合わせて開発を行ってきた。ソフトウェア開発を、低コスト、短納期で実現するため、開発する機能要件に類似する過去のソフトウェアを流用する派生開発スタイルを長年繰り返してきたので、派生したソフトウェアが増加した。
このような開発を繰り返した結果、ソフトウェアはモジュー

図１．車両内の空調装置の機器構成ル間の関係やインターフェースが複雑になり、改造時の影響範囲の判断が難しくなっていた。

空調装置は、鉄道会社や通勤電車、豪華列車などの車両

今回、空調装置の機器構成のパターン化や複雑化したソタイプで、構成する機器の台数が異なる。室内送風機、室フトウェアの見直しにより、更なる低コスト、工期短縮を外送風機、圧縮機の台数を変え、車両タイプに応じた制御図るため、空調制御ソフトウェアの標準化開発を行った。

を行うことで、最適な空調制御を実現している。

目標をソフトウェア開発全体で30%の工数削減と設定し、ソフトウェア開発プロセスには、組込みシステムで注目さ2.2れている「モデルベース開発」を適用した。

空調制御ソフトウェアの機能構成を、図2に示す。

本稿では、標準化開発における、ソフトウェア部品化の空調制御ソフトウェアは、①外部インターフェース、②設計方針、モデル化の範囲と展開方法及びMATLAB/温度制御、③機器制御、④保護機能、⑤故障記録により構Simulink（以下、MATLAB）の効果を中心に紹介し、最後成される。以下に空調制御の機能を説明する。に標準化開発における改善効果を述べる。

①外部インターフェースで車両情報管理装置からの空調制御情報を受信し、冷房か暖房か（空調運転モード）を決定

２．空調装置の概要
2.1

空調制御ソフトウェアする。
②温度制御で車内温度と目標温度の温度差により冷暖房の空調装置強さ（運転能力）を決定する。
③機器制御で空調運転モード及び運転能力に基づき、室内一般的な電車を例に、車両内の空調装置の機器構成を図1送風機や暖房ヒーターなどの空調装置の各機器を制御すに示す。

る。

空調装置は、室内送風機（図1①）、室外送風機（図1②）、④保護機能で空調装置の各機器の状態監視を行い、故障と圧縮機（図1③）、ダンパ（図1④）により構成される。その他判定したときは、対象機器を停止する。

システム構成として、車両に設置されるラインフローファ⑤故障記録で故障発生時のトラブルシューティングや空調

ン（図1⑤）、暖房ヒーター（図1⑥）がある。

制御状態の把握を目的としてデータを記録する。

空調装置では、冷凍サイクルの原理により、冷房を行っている。圧縮機により圧縮した冷媒ガスを循環させ、室外送風機により車内の熱を車外に排出し、室内送風機により車内に冷風を吹き出す。
暖房ヒーターは、車両の床や座席下に設置される。ラインフローファンは、天井内に設置される線状の扇風機で、
16

空調制御ソフトウェアの標準化開発

3.2 空調制御ソフトウェアのパターン化に向けた構成
パターンAを例にとって、空調制御ソフトウェアの主要機能である温度制御と機器制御のデータフローを図3に示す。

図３．データフロー
図２．空調制御ソフトウェア機能構成図

各機能の処理内容を説明する。
①運転モード判定

３．標準仕様のパターン化

車両情報管理装置からの指令を受けて、冷房、暖房、自動などの運転モードを決定する。機器構成の違いによ

これまでの鉄道会社の要求を分析し、主要機器である室る影響はない。

内送風機、室外送風機及び圧縮機の台数の組合せにより、3②能力判定

パターンの標準仕様を定めた。機器台数の違いで、制御ソ運転モードが冷房の場合、設定温度、外気温度、車内フトウェアに影響を与える箇所を検討した。その結果に基温度、湿度、乗車率及びカレンダーにより冷房能力のレづき柔軟にソフトウェアを変更できる仕組みを考慮し、ソベルを決定する。冷房能力のレベルは圧縮機の台数によフトウェア部品化設計を行った。

3.1

り異なり、圧縮機2台の場合は7段階、圧縮機1台では3段空調装置の機器構成のパターン階となる。機器台数の違いにより冷房能力のレベル数が異なるため機器台数ごとに処理が異なる。

各パターンの機器台数を表1に示す。なお、ダンパ、ライ③運転パターン生成

ンフローファン、暖房ヒーターは主要機器ではなく、パター

能力判定にて決定した冷房能力のレベルに従い、機器ン化が難しい機器であるため除外した。

ごとのON/OFFを決定する。圧縮機については動作台数

表１．パターンごとの機器台数と強弱の組合せを決定する。冷房能力を下げるとき、運転している2台の圧縮機から1台のみの運転に変更する場

室内

室外

送風機

送風機

パターンA

112パターンB

222パターンC

111構成

合は、故障状態や運転積算時間によりローテーション判圧縮機定を行い停止する圧縮機を選択する。機器台数の違いにより運転する機器が異なるため機器台数ごとに処理が異なる。
④機器制御
運転パターン生成にて決定した機器のON/OFFと圧縮機の強弱に従い、各機器を制御する。機器台数による処理の違いはなく、機器台数分の部品を実装する。
17

空調制御ソフトウェアの標準化開発

3.3（1）モデル化部

ソフトウェア部品化設計

空調制御に関わる機能をモデル化し、インターフェー能力判定機能、運転パターン生成機能では、3.2で述べたス及び処理の流れの明確化を図った。従来のソフトウェように機器の台数により処理内容が大きく違ってくる。機

ア仕様書は自然言語で書かれており、ソフトウェア設計器台数に対応した処理をそれぞれ部品化し、機器構成のパ技術者の経験が浅い場合、機能設計者とソフトウェア設ターンに応じた部品を実装することで開発の効率化を図り、計者間で解釈の違いが発生する可能性がある。モデル化

機器構成の異なる車両への適用を容易に実施できるようににより、ソフトウェア設計書をブロック線図で記載するした。

ことで、自然言語による仕様記述の曖昧さをなくし、仕様の認識違いを防止した。仕様記述例を図5に示す。
【自然言語での仕様記述例】

４．モデルベース開発“圧縮機起動信号が入り、かつ前回の圧縮機起動信号が切りとなった場合、圧縮機起動設定を行う。”

モデルベース開発とは、従来、ハードウェア上でしかで信号入り/切りと信号ON/OFFの関係を取り間違えるきなかった動作や性能の検証を、コンピューター上でモデことによる仕様の認識違いが発生する恐れがある。

ル化してシミュレーションを行い、製品開発の期間短縮や品質向上を図る開発手法である。今回の開発では、モデル【モデルでの仕様記述例】

ベース開発手法を機能設計から導入した。ツールとしては、モデルベース開発のデファクトスタンダードであるMATLABを採用した。

4.1

モデルベース開発の実施方針

MATLABを用いてモデル化しコードを自動生成するモデル化部と、従来通りC言語で実装するC言語部を、図4のとおり定義した。モデル化部は機器構成によって処理が異なる可能性が高い機能、C言語部はハードウェアに依存するメ

図５．仕様記述例

モリやレジスタへのアクセス処理など、モデル化できない機能と定義した。
（2）C言語部標準仕様に最も近い派生ソフトウェアを流用元とし、標準化開発を行った。過去の派生ソフトウェア適用案件の障害分析と静的解析による評価を行った結果、外部変数の更新タイミングによる障害と複雑度が高い部分の障害が過半数を占めた。今回の標準化開発では、流用元プログラムからサイクロマチック複雑度の低減と外部変数の抑制を行い実装した。
さらに、C言語部の保守性を高めるため、関数のサイズ、ネスト数の見直しを実施し、表2.のように改善した。なお、各指標は静的解析ツールであるQACを用いて測定した。
表２．C言語部評価

指標

図４．モデル化適用範囲
注 ＊1:Portable Test Equipmentの略称。
注 ＊2:Controller Area Networkの略称。

18

改善前

改善後

サイクロマチック複雑度（STCYC)

7.7

3.0

プログラムの難易度（STDIF)

59.8

18.9

移植時間（STPRT)

11.1

8.0

空調制御ソフトウェアの標準化開発

4.2

機能設計におけるモデルの展開

５．モデルベース開発導入による効果

モデルは、機能ごとの入出力を明確にするトップレベル

5.1

モデルを作成し、段階的に詳細化する方針で展開した。図6にモデルの詳細化イメージについて圧縮機制御機能を例にソフトウェア設計フェーズでの改善

ソフトウェア設計段階において、MATLABを用いること示す。

で、シミュレーションによる妥当性検証を机上で行い、フロントローディング化を図った。以降に図6のモデルのシミュレーション例を示す。
①圧縮機制御モデルの入力値である起動要求、故障情報、
起動条件、運転制限指令の4項目の入力パターンを作成しモデルに入力する。
②入力パターンの作成は、MATLABにて行い、経過時間ごとに入力値を設定する。図7に入力パターン例を示す。入力値は、「0」から開始し、4秒後に「1」、6秒後に「0」に戻す、というパターンである。

図７．入力パターン③作成した入力パターンをモデルに入力し、モデルでの出力結果をシミュレーションする。図8にモデルシミュレーションの例を示す。全ての入力が「1」の場合「true」が出力されることをシミュレーションしている。

図６．モデル詳細化イメージ①圧縮機制御モデルをトップレベルモデルとして作成した。

図８．モデルシミュレーション

起動要求や故障情報などを入力値とし、圧縮機起動信号を出力値として設定した。これにより、圧縮機制御モデ5.2

ルの入出力情報を明確にした。
②圧縮機制御モデル内の処理として、圧縮機起動信号設定

ソフトウェア製作フェーズでの改善

従来は、ソフトウェア仕様書を基に、C言語でコーディンモデルを作成した。

グを行っていた。MATLABのコード自動生成機能を使用し③圧縮機起動信号設定モデル内の処理として、圧縮機起動てコードの自動生成を行うことで、コーディング時間の短判定モデルを作成した。

縮と人的なコーディングミスによる障害混入の排除を実現

このように、処理を段階的に詳細化し、それぞれのモデルした。性能面でも、自動生成したコードで問題ないことをで入出力情報を明確にした。

確認した。

19

空調制御ソフトウェアの標準化開発

5.3

表３．改善効果

ソフトウェア試験フェーズでの改善
フェーズ

ソフトウェア試験設計では、MATLABの自動パターン生成機能を使用してシミュレーションパターンを自動生成することで、効率化を図った。図8のモデルにおいて、試験パ

よ モ
る デ
効ル
化
果に－

ターンを自動生成した結果を図9に示す。0.2秒ごとに、各入力値のパターンを自動生成している。

設計－〇〇

製
作

試
験〇〇〇〇

内
容

効果

標準ソフトウェア仕様書の作成による影響
範囲特定作業の効率化。
既存ソフトウェア構成の見直しよる流用時の設計検討時間の削減。
モデル化によるオーダーカスタマイズ作業の効率化。
設計段階でのシミュレーション検証による試験時間削減。
コード自動生成によるコーディング時間の削減。
コード自動生成による人的コーディングミス混入の削減による手戻り時間の削減。
自動試験パターン生成による試験設計作業の効率化。
試験項目モレの排除による再試験時間の削減。

図９．試験パターン自動生成結果

合 計

5%
3%
5%
6%

6%

5%

30%

本対応により、試験項目のモレを排除できる。また、自動生成により試験設計工数を削減した。

７．むすび
今回、標準ソフトウェアを開発したが、今後も環境の変６．標準化開発における改善効果化やサービス向上などにより、空調制御ソフトウェアに対今回の標準化開発により、案件展開時に見込まれる改善する細かな要求が求められると想定される。したがって、効果を表3に示す。効果は、ソフトウェア開発全体工数に対標準ソフトウェアをベースに、柔軟にカスタマイズできるする工数削減率であり、開発計画の目標値を達成する見込仕組みを作り、顧客の要求を満たしていく。
最後に、本開発遂行に当たり、御協力いただいた関係者みである。の方々に深く感謝申し上げる。

今後は、モデルのレパートリィを増やし、モデル入れ替えによる効率的な案件適用を目指す。

執筆者紹介津田憲宏

ツダノリヒロ

1985年入社。主に空調制御システムのソフトウェア開発に従事。現在、長崎事業所技術第2部車冷システム課。

20