目次
====

1. はじめに
2. ライセンス
3. バージョン履歴

はじめに
========

このディレクトリには、直流饋電システムシミュレーションプログラム RTSS
Rev.2.6.1 が入っています。


ライセンスについて
==================

(0) RTSS 本体のライセンスは，バージョン 2.6.0 より BSD ライセンスとしま
す。詳細は，RTSS のソースディストリビューションにある LICENSE-RTSS.en
をご覧ください。

(1) RTSS は，PCRE ライブラリ (http://www.pcre.org/) を用いています。
PCRE ライブラリのライセンスは，New BSD ライセンスとなっています。
その詳細については，RTSS のソースディストリビューションにある
LICENSE-PCRE.en をご覧ください。
ただし，RTSS のソースディストリビューションには，ライセンス条件を記した
上記ファイル以外には PCRE ライブラリのディストリビューションからコピー
されたファイルは存在しません。

(2) RTSS のソースディストリビューションにあるソースファイルのうち，
tinyxml.h, tinyxml.cpp, tinyxmlparser.cpp, tinyxmlerror.cpp の4ファイル
は，Tiny XML ライブラリ (http://www.grinninglizard.com/tinyxml/) として
配布されているものです。このうち tinyxml.h については，その冒頭部に
RTSS-specific changes とコメント行で示した部分について，改変（追加）を
行っています。
Tiny XML ライブラリのライセンスは，Zlib ライセンスです。その詳細につい
ては，これらのファイルの冒頭部のコメント行をご覧ください。

(3) RTSS は，GNU libiconv ライブラリを用いています。
RTSS のソースディストリビューションには，同ライブラリ由来のファイルは
一切存在しません。RTSS のバイナリディストリビューションについては，
GNU libiconv ライブラリの dll ファイルを添付することになりますので，
GNU LGPL に従うことになります（この記述をしている時点では，バイナリディ
ストリビューションは作成していませんが）。


バージョン履歴
==============

2.6.1 は 2.6.0 に対する機能拡張・バグ修正版です。2.6.1a2 がベースになっ
ています。2.6.1a2 に対する変更点は以下のとおりです。

（バグ修正）
(a) nxx_rf.cc において，<gradcrv> タグの属性の処理における誤りを修正し
    た。

--------

2.6.1a2 は 2.6.1a1 に対するバグ修正版です。

（バグ修正）
(a) 車上エネルギー蓄積装置を「リファレンスSOC」に基づいて制御するルー
    チンにおいて重大な誤りがあり，リファレンスSOCによるフィードフォワー
    ド制御がまったく効いていなかったバグを修正した。

--------

2.6.1a1 は 2.6.0 に対する機能拡張版です。2.6.0 からの変更点は以下の2点です:

（機能拡張）
(a) F ファイルにおいて，nominal_voltage フラグを追加した。このフラグに
    より，定格電圧値を変更できる。
(b) F ファイルにおいて，変電所と饋電線との接続点が複数あっても正常に動
    作するように変更した。超電導饋電線のシミュレーションがより容易にな
    る。

--------

2.6.0 は 2.5.x に対する大幅な機能拡張版です。2.6.0d2 がベースになって
います。2.6.0d2 からの変更点は以下の3点です:

（バグ修正・その他）
(a) rtss_path.cc および main.cc でファイルパスの扱いに誤りがあったもの
    を，修正した。
(b) TinyXML 2.6.1 に対応するための修正を行った。
(c) 特に，ライセンス関係のドキュメントを整備した。このバージョンから，
    RTSS 本体のライセンスを BSD ライセンスとすることとした。

--------

2.6.0d2 は 2.6.0d1 に続く大幅な機能拡張版の第2「デルタ」リリースです。
2.6.0d1 からの変更点は以下の1点です:

（仕様変更）
(a) DC-DC コンバータのき電システム側入出力電力から ESD の電流・電圧を求
    めるのに Newton-Raphson 法を用いているが，これが失敗し，プロセスが
    limit cycle に入った場合，それを検知して，解法を「二分法」に変更す
    るように変更した。

--------

2.6.0d1 は 2.6.0c2 に続く大幅な機能拡張版の第1「デルタ」リリースです。
2.6.0c2 からの変更点は以下の2点です:

（仕様変更）
(a) ESS の入出力電力が，ESD の最大充放電電力（に，そのときの DC-DC コン
    バータの損失を加えたもの）を超えないようにした。

（バグ修正）
(b) ESS を持っている列車もしくは変電所があるとき，その ESS が持っている
    ESD の電流・電圧が CSV ファイルに書き出される際，これらだけが他の各
    部のの電流・電圧よりも1時間刻み幅だけ遅れて書かれていたバグを修正し
    た。

--------

2.6.0c2 は 2.6.0c1 に続く大幅な機能拡張版の第2ガンマリリースです。
2.6.0c1 からの変更点はなく，バグ修正のみです。

--------

2.6.0c1 は 2.6.0b3 に続く大幅な機能拡張版の第1ガンマリリースです。
2.6.0b3 からの変更点は以下の1点です:

（機能拡張）
(a) 2次電池モデルを追加した。

--------

2.6.0b3 は 2.6.0b2 に続く大幅な機能拡張版の第3ベータリリースです。
2.6.0b2 からの変更点は以下の2点です:

（機能拡張）
(a) SOC の初期値・終端値・最大値・最小値を求め，R ファイルに出力するよう
    にした。

（バグ修正）
(b) 輪周ブレーキパワーの計算部分のバグを修正し，正当な出力となるようにし
    た。

--------

2.6.0b2 は 2.6.0b1 に続く大幅な機能拡張版の第2ベータリリースです。
2.6.0b1 からの変更点は以下の1点です:

（機能拡張）
(a) 輪周ブレーキパワーの出力を R ファイルに追加した。

--------

2.6.0b1 は 2.6.0a10 に続く大幅な機能拡張版の第1ベータリリースです。
2.6.0a10 からの変更点は以下の2点です:

（機能拡張）
(a) F ファイルで options csv_without_quotation というフラグを立てれば，
    CSV ファイルに引用符 ("") を書き込まないようにした。

（バグ修正）
(b) Nファイルにおいて，nextsta_pattern が Station_pass や Pass_pass であ
    るような次駅データで end_velocity は基本的にどんな値でも正常に動作す
    るよう変更した。

--------

2.6.0a10 は 2.6.0a9 に続く大幅な機能拡張版の第8アルファリリースです。
2.6.0a9 からの変更点は以下の1点です:

（機能拡張）
(a) XML P ファイルにおいて，エネルギー蓄積装置モデル指定部分の
    <parameters> タグの属性を4つ増やした。

--------

2.6.0a9 は 2.6.0a7 に続く大幅な機能拡張版の第7アルファリリースです。数字
が飛んでいます（a8 は一応出したけど…）。2.6.0a7 からの変更点は以下の3点
です:

（機能拡張）
(a) XML N ファイルにおいて，SOCカーブデータを次駅データごとに指定するた
    めの <nextsta> タグの属性を追加した。
(b) XML N ファイルにおいて，SOCカーブデータを格納している外部ファイルを
    指定する <accompanying_file> タグを追加した。
(c) XML P ファイルにおいて，「まともな」エネルギー蓄積装置モデルを指定で
    きるようにした。

--------

2.6.0a7 は 2.6.0a5 に続く大幅な機能拡張版の第7アルファリリースです。数字
が飛んでいます（a6 は出しませんでした）。2.6.0a5 からの変更点は以下の2点
です:

（機能拡張）
(a) N ファイルを XML 化した。

（機能変更）
(b) matrix クラスを書き換えた。また，diapattern, nextsta および gradcrv 
    の各クラスにおいて，自作のコンテナ RefTable.hh などでなく STL を用い
    るようにした。

--------

2.6.0a5 は 2.6.0a4 に続く大幅な機能拡張版の第5アルファリリースです。
2.6.0a4 から以下の4点の変更をしました。

（バグ修正）
(a) P ファイルの XML 化にからみ，複数の列車特性を共存させてのシミュレー
    ションにからむバグを修正した。

（機能拡張）
(b) XML P ファイルにおいて <energystorage> タグを追加可能とした。
(c) (b)の関係で，CSV ファイルに列車が持つ rnotch_for_capper 変数を書き出
    すことができるようにした。

（機能変更）
(d) XML P ファイルにおいて，<cs_command type="None" /> を指定した形式に
    ついては，<autodata> を指定するとエラーとなるようにした。

--------

2.6.0a4 は 2.6.0a3 に続く大幅な機能拡張版の第4アルファリリースです。変
更点は以下の通りです。
(1) 計算失敗関連のルーチンを変更しました。
(2) P ファイルを XML化しました。また，XML化されたPファイルを利用する場
    合のみ，複数の列車特性を共存させてのシミュレーションができるように
    なりました。
    XML P ファイルを利用する場合，N ファイルにおいて，どの特性を利用し
    てシミュレーションを行うかを指定しなければなりません。これは，
    cars コマンドに新たな引数を追加します。従来は cars 2 のように書け
    ばよかったのですが，XML P ファイルを利用する場合は cars E231 2 な
    どと書く必要があります。

--------

2.6.0a3 は 2.6.0a2 で見つかった，motion.cc にある train::brakef() メンバ
関数のバグ）を直したことだけです。ソースコードはかなりいじっていますが，
機能上の変更はほとんどありません。

--------

2.6.0a2 は 2.6.0a1 に続く大幅な機能拡張版の第2アルファリリースです。地上
設置エネルギー蓄積装置のモデルを組み込みました。また，CSV ファイルを書き
出す際，変電所の一部についてデータを書き出さないオプションを，XMLファイル
利用時にのみ追加できるようにしました。

--------

2.6.0a1 は 2.6.0a0 に続く大幅な機能拡張版の第1アルファリリースです。ログ
をLファイルに書き出すよう，プログラム全体を見直しました。この他，main.cc 
におけるファイルパス処理ルーチンのバグフィックスを行いました。この他の機
能追加は今回は行っていません。

--------

2.6.0a0 は大幅な機能拡張版の第0アルファリリースです。XML ベースの入力ファ
イル群が今後定義されますが，そのうち Sファイルが定義され，エネルギー蓄積
を除くほぼすべての機能が実装されました。SファイルのXML化版を利用すると，
新しい機能である　<subchar_vi_file> タグによる変電所特性の動作中の変更も
行うことができます。起動方法も順次変更していく予定です。コンパイル時に，
PCRE ライブラリ，および GNU libiconv ライブラリに依存しますので，コンパ
イル環境に準備してください。また，XML パーサとして TinyXML を用い，その
ソースファイルが RTSS のディストリビューション内に含まれています。
TinyXMLについては，http://www.grinninglizard.com/tinyxml/ を参照下さい。
作者の Lee Thomason 氏に謝意を表したいと思います。

--------

2.5.5 は，変電所方面別電流の計算に関する重大なバグフィックスを含みます。
従来は，1つの変電所と1つの饋電線との間のコネクションは複数設定が可能でし
たが，これを見直し，たかだか1コネクションのみとしました。また，方面別電
流はつねに1コネクションあたり「起点方」「終点方」の2つを計算するよう改め
ました。CSV ファイルにもこれが書き出されるようにしました。このほか，いく
つかの関数を移動する，コード内に数字リテラルで直接記入されている値をグロー
バル const 変数に変更するなど，コードの小整理を行いました。

--------

2.5.4 は機能拡張版で，タイプAリアルタイム制御について8引数フラグを用意し
ました（Sファイルにおけるフラグ g_sw_substn_ctl_a_8）。2.5.2用の入力ファ
イルもそのまま使用できます。詳細は rf_sfile.cc をご覧ください。また，-c 
オプションで書き出すことができる CSV ファイルに，「回生絞り込みがなかっ
たとした場合の電流値」を追加で書き出させるオプションを追加しました。Fファ
イルにフラグ options csv_has_noshiboと追加し，起動時に -c オプションで 
CSV ファイル書き出しを選択してください。

--------

2.5.3 は 2.5.2 に計算失敗確率低減のための工夫をさらに加えたものです。

--------

2.5.2 は 2.5.1 のバグフィックスと機能追加版です。コマンドラインに新たに
定義された -c オプションを追加することで、列車・変電所の位置・速度・電流
を当該オプションで指定した CSV ファイルに書き出すことができます。また、
gcc 3.4 で動くようにしました。このほか、回路計算ルーチンを見直しました
（コマンドラインオプションは工学院大学の2006年度卒論生のコントリビューショ
ンです）。さらに，過去にインプリメントされた「タイプAリアルタイム制御」
のルーチンを復活させました。Sファイルに，g_sw_substn_ctl_a というフラグ
を与えると，このルーチンを使うことができます。このフラグには，6つの引数
を与える必要があります。詳細は，rf_sfile.cc をご覧ください。

--------

2.5.1 は 2.5.0 のバグフィックスです。gcc 2.95.2 で動くようにしました。

--------

2.5.0 は 2.4.2 のさらなるバグフィックスですが、回路演算に関わる重要な部
分の変更を含むため、2.4.x から 2.5.0 に上げたものです。また、make 関係を
さらに改善してあります。特に、SPARC アーキテクチャではいまさら sun4c 用
バイナリでもなかろうということで、sun4m 用 (gcc で -mv8 オプションを与え
るもの) のみを作るように考えました。

--------

2.4.1, 2.4.2 は 2.4.0 を gcc 2.7.2.2 に通せるよう改造したもので、
Makefile を前者が Solaris x86 用に、後者が SPARC システム用に作ってあっ
たことを除けば基本的に同一でした。

--------

2.4.0 は station_obj オブジェクトの設計中のものですが、2.2.0 に比べて多
くのバグフィックスも含まれています。

--------

2.2.0 ではソースファイルの整理、Makefile の整備（GNU make を前提としてい
ます）を行った他、変電所リアルタイム制御機能（タイプＡ）の追加、
nextsta_pattern として3種類を新たに追加、などの比較的大きな機能追加を行
いました。

--------

2.1.2 はかなり重大なバグを修正したリビジョンです。また、2.1.3 以降 2.1.5 
にかけては小さな機能追加を行っています。

--------

2.1.1 から付け加えられた機能は次の通りです：
(1) 補機電流を入れられるようにした
(2) 方面別電流をとる機能を増やした

ABOUT
=====

このプログラムの使用に関しては、高木（E-mail: rt@takagi-ryo.ac）
にご相談下さい。ドキュメントとしてきちんと体系的に整備されたものがまだ
ありませんが、次第にまとまったものにしてゆく予定でおります。

GNU make および g++ で使える Makefile がつけてあります。

使用されてみてのご意見、バグレポート、その他もよろしくお願い致します。

                                   高木  亮（rt@takagi-ryo.ac）
