Loging System Programing for c

燃費 馬力 瞬間燃費 インジェクション開度 0-400 0-100 Total System

ここに記載のソースリストは、著作権を放棄していません。掲載、引用には一報願えれば幸いです。
 

PICの初期設定

CCS-Cのおまじない
FUSEのセットです。内部クロックはH4で4逓倍させます。(10MHZX4=40MHz)だからといって、20MHZ取り付けて80MHZでは動きません。内部最大は40MHZですので・・・

//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
//
// SPEED COUNTER
/
//_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#include <18f8720.h>
#fuses H4,NOWDT,NOPROTECT,PUT,BROWNOUT,NOLVP
#device ADC=10//A/D変換10ビットモード
#USE DELAY(CLOCK=40MHZ, CRYSTAL=10MHZ)
#use RS232(BAUD=230400, XMIT=PIN_C6,RCV=PIN_C7)
//割り込み優先設定//
#PRIORITY CCP4,CCP5,CCP3,CCP2,CCP1,TIMER1
 

»  詳細  2008年1月12日 20:43

馬力計算

転載を快く承諾して頂いた株式会社パワーハウス・アクセル様に感謝いたします。
以下に記載の馬力計算に関わる版権は株式会社パワーハウス・アクセル殿が所有しております。
URL:http://www.poweraccel.co.jp/right_top.html


計算基本式と補正係数基本値
馬力=((車両総重量x到達速度(秒速)の2乗)/2g)ー((車両総重量x開始速度(秒速)の2乗)/2g)/75kgm(1馬力の意味)/所要秒数

消費馬力=(計測終了時の運動エネルギー)ー(計測開始時の運動エネルギー)/75kgm/減速所要秒数

駆動系の伝達ロス:横置きエンジンで約10%
            RF車で12%から15%
            乗用車タイプ4輪駆動車では20%から25%伝達ロス

馬力計算には速度変化を利用して計算を行います。類似の方法では加速度センサを利用する手もありますが、3軸データを合成する必要があるのと、振動ノイズ除去など処理が複雑になるため、一番簡単で、実現しやすい速度変化にて算出します。
摩擦、空気抵抗のロス計算は実車にて計測し、近似式を推定する方法とします。この方法は、HONDAのマニュアルベースであるATのようにニュートラル走行しても、ATに負担がかからない車向けですのでCVTで行うとミッションが壊れる可能性があります。またニュートラル走行は慣性力がなくなるので、死亡事故、人身事故、その他全ての事故、車両損壊を起こすか誘発する恐れがありますので、一般公道では絶対に行わないでください。(自己責任で行って下さい。ミッションが壊れる可能性が大きいのでやめたほうがいいです)クローズドなサーキット等の走行会(単独走行が可能な走行会)で主催者の了承を得てデータを採取すること。
※高負荷でニュートラルからドライブへの切替は非常に危険です。
DOWNLOADページにあるオデッセイABA RB2のデータでも大差ないですので、オデッセイのデータを使用するのが簡単です。

あるスピードで走行しているときギアをニュートラルにしたとします。減速させる力は空気抵抗+転がり抵抗+駆動系摩擦になります
この消費抵抗から馬力が計算できます。


以下がオデッセイの消費抵抗データとします。
速度 経過時間 時間差
180 560.4770725 0
179 565.7435525 5.266479981
178 571.0555383 5.311985841
177 576.4124339 5.356895536
176 581.8136429 5.401209065
175 587.2585694 5.444926428
174 592.746617 5.488047626
173 598.2771897 5.530572659
172 603.8496912 5.572501526
171 609.4635254 5.613834228
170 615.1180962 5.654570765
169 620.8128073 5.694711136
168 626.5470627 5.734255342
167 632.320266 5.773203382
166 638.1318213 5.811555257
165 643.9811323 5.849310966
164 649.8676028 5.88647051
163 655.7906367 5.923033888
162 661.7496378 5.959001101
161 667.7440099 5.994372149
160 673.7731569 6.029147031
159 679.8364827 6.063325748
158 685.933391 6.0969083
157 692.0632857 6.129894686
156 698.2255706 6.162284906
155 704.4196495 6.194078961
154 710.6449264 6.225276851
153 716.900805 6.255878575
152 723.1866891 6.285884134
151 729.5019826 6.315293528
150 735.8460894 6.344106756
149 742.2184132 6.372323818
148 748.6183579 6.399944715
147 755.0453274 6.426969447
146 761.4987254 6.453398013
145 767.9779558 6.479230414
144 774.4824224 6.50446665
143 781.0115292 6.52910672
142 787.5646798 6.553150624
141 794.1412782 6.576598364
140 800.7407281 6.599449937
139 807.3624334 6.621705346
138 814.005798 6.643364589
137 820.6702257 6.664427666
136 827.3551203 6.684894578
135 834.0598856 6.704765325
134 840.7839255 6.724039906
133 847.5266438 6.742718322
132 854.2874444 6.760800573
131 861.0657311 6.778286658
130 867.8609076 6.795176577
129 874.672378 6.811470331
128 881.4995459 6.82716792
127 888.3418152 6.842269343
126 895.1985898 6.856774601
125 902.0692735 6.870683694
124 908.9532701 6.883996621
123 915.8499835 6.896713382
122 922.7588175 6.908833978
121 929.6791759 6.920358409
120 936.6104626 6.931286674
119 943.5520814 6.941618774
118 950.5034361 6.951354709
117 957.4639305 6.960494478
116 964.4329686 6.969038082
115 971.4099541 6.97698552
114 978.3942909 6.984336793
113 985.3853828 6.9910919
112 992.3826337 6.997250842
111 999.3854473 7.002813618
110 1006.393228 7.007780229
109 1013.405378 7.012150675
108 1020.421303 7.015924955
107 1027.440406 7.01910307
106 1034.462091 7.02168502
105 1041.485762 7.023670804
104 1048.510822 7.025060422
103 1055.536676 7.025853875
102 1062.562728 7.026051163
101 1069.58838 7.025652285
100 1076.613037 7.024657242
99 1083.636103 7.023066034
98 1090.656982 7.02087866
97 1097.675077 7.01809512
96 1104.689792 7.014715415
95 1111.700532 7.010739545
94 1118.706699 7.00616751
93 1125.707699 7.000999308
92 1132.702934 6.995234942
91 1139.691808 6.98887441
90 1146.673726 6.981917713
89 1153.648091 6.97436485
88 1160.614306 6.966215822
87 1167.571777 6.957470628
86 1174.519906 6.948129269
85 1181.458098 6.938191745
84 1188.385756 6.927658055
83 1195.302284 6.916528199
82 1202.207086 6.904802179
81 1209.099566 6.892479992
80 1215.979128 6.879561641
79 1222.845175 6.866047124
78 1229.697112 6.851936441
77 1236.534341 6.837229593
76 1243.356268 6.82192658
75 1250.162295 6.806027402
74 1256.951827 6.789532057
73 1263.724268 6.772440548
72 1270.479021 6.754752873
71 1277.21549 6.736469032
70 1283.933079 6.717589027
69 1290.631192 6.698112855
68 1297.309232 6.678040519
67 1303.966604 6.657372017
66 1310.602711 6.636107349
65 1317.216958 6.614246516
64 1323.808748 6.591789518
63 1330.377484 6.568736354
62 1336.922571 6.545087025
61 1343.443412 6.52084153
60 1349.939412 6.49599987
59 1356.409974 6.470562045
58 1362.854502 6.444528054
57 1369.2724 6.417897898
56 1375.663072 6.390671576
55 1382.025921 6.362849089
54 1388.360351 6.334430436
53 1394.665767 6.305415618
52 1400.941572 6.275804635
51 1407.187169 6.245597486
50 1413.401963 6.214794171


プログラムの都合で計測開始を50KM時点の時間にします。また計測時間をそれぞれ時間差分だけ差し引くデータを作成します。
速度 経過時間
180 1413.401963
179 1408.135483
178 1402.823497
177 1397.466602
176 1392.065393
175 1386.620466
174 1381.132419
173 1375.601846
172 1370.029345
171 1364.41551
170 1358.76094
169 1353.066229
168 1347.331973
167 1341.55877
166 1335.747215
165 1329.897904
164 1324.011433
163 1318.088399
162 1312.129398
161 1306.135026
160 1300.105879
159 1294.042553
158 1287.945645
157 1281.81575
156 1275.653465
155 1269.459386
154 1263.234109
153 1256.978231
152 1250.692347
151 1244.377053
150 1238.032946
149 1231.660623
148 1225.260678
147 1218.833708
146 1212.38031
145 1205.90108
144 1199.396613
143 1192.867507
142 1186.314356
141 1179.737758
140 1173.138308
139 1166.516602
138 1159.873238
137 1153.20881
136 1146.523916
135 1139.81915
134 1133.09511
133 1126.352392
132 1119.591591
131 1112.813305
130 1106.018128
129 1099.206658
128 1092.37949
127 1085.537221
126 1078.680446
125 1071.809762
124 1064.925766
123 1058.029052
122 1051.120218
121 1044.19986
120 1037.268573
119 1030.326954
118 1023.3756
117 1016.415105
116 1009.446067
115 1002.469082
114 995.4847449
113 988.493653
112 981.4964022
111 974.4935885
110 967.4858083
109 960.4736576
108 953.4577327
107 946.4386296
106 939.4169446
105 932.3932738
104 925.3682134
103 918.3423595
102 911.3163083
101 904.290656
100 897.2659988
99 890.2429328
98 883.2220541
97 876.203959
96 869.1892436
95 862.178504
94 855.1723365
93 848.1713372
92 841.1761023
91 834.1872279
90 827.2053101
89 820.2309453
88 813.2647295
87 806.3072588
86 799.3591296
85 792.4209378
84 785.4932798
83 778.5767516
82 771.6719494
81 764.7794694
80 757.8999078
79 751.0338606
78 744.1819242
77 737.3446946
76 730.522768
75 723.7167406
74 716.9272086
73 710.154768
72 703.4000151
71 696.6635461
70 689.9459571
69 683.2478442
68 676.5698037
67 669.9124317
66 663.2763243
65 656.6620778
64 650.0702883
63 643.501552
62 636.9564649
61 630.4356234
60 623.9396235
59 617.4690615
58 611.0245334
57 604.6066355
56 598.215964
55 591.8531149
54 585.5186844
53 579.2132688
52 572.9374642
51 566.6918667
50 560.4770725


エクセルでグラフを作成します。作成した曲線で右クリックして近似曲線の追加を選択します。


近似曲線は多項式で3次式にします

オプションタブでグラフに数式を表示するをチェックします

このように近似式が表示されます

表示された近似式で右クリックし、データラベルの書式設定を選択します。

 分類は数値、桁数を拡張します。



拡張された数式が表示されるので、この係数を使用します。

プログラムソース(ccs-c用)

 Cの係数はエクセルで求めた多項式の数値をコピーして以下のようにします。

  se1=-0.0000993609038253;
  se2=0.0306038754237536;
  se3=3.88401302883352;
  se4=302.186845501079;

//0.05s毎に割込み
#int_timer1
void isr1()
{
            ・
            ・
            ・
            ・
            ・
   if(counter==10||counter==20)
   {
        start_rpm=gear_rpm;//(float)number1*30;//*2;
   }

   if((counter==10||counter==20))
   {
//計測を安定させる移動平均処理:
       ave_speed[3]=end_speed;
       end_speed=(ave_speed[1]+ave_speed[2]+ave_speed[3])/3;
       ave_speed[1]=ave_speed[2];
       ave_speed[2]=ave_speed[3];
       if((counter==10||counter==20))
       {
            end_rpm=(float)gear_rpm;
            if(counter>19)
            number1=0;
       }
       end_rpm=gear_rpm;
       toutatu_byou=0.5;//0.5秒サンプリング

       total_weight=sonota_weight+(mantan-(totalinjecton-mukou_count)*gas*gas_hosei)*0.75;
       kaiten_kasan_weight=25;
       los1=(pstart_speed*pstart_speed*pstart_speed)*se1+(pstart_speed*pstart_speed)*se2-pstart_speed*se3+se4;
los2=(end_speed*end_speed*end_speed)*se1+(end_speed*end_speed)*se2-end_speed*se3+se4;
       gensoku_byou=los1-los2;
       power1=((car_weight+total_weight)*(end_speed/3.6)*(end_speed/3.6)/19.6);
       power2=((car_weight+total_weight)*(pstart_speed/3.6)*(pstart_speed/3.6)/19.6);
       power=(power1-power2)/75/toutatu_byou;
              hosei_power1=((car_weight/((100-dentatu_los)/100)+total_weight)*(end_speed/3.6)*(end_speed/3.6)/19.6);
hosei_power2=((car_weight/((100-dentatu_los)/100)+total_weight)*(pstart_speed/3.6)*(pstart_speed/3.6)/19.6);
       hosei_power=(hosei_power1-hosei_power2)/75/gensoku_byou+power;
       jiku_power=hosei_power/((100-kaiten_kasan_weight)/100);
       if(jiku_power<0)
            jiku_power=0;

       if(sw1!=70&&abs(pstart_speed-end_speed)<=0.2)
       {
              jiku_power=0;
       }
       pstart_speed=end_speed;
       start_rpm=end_rpm;
   }

            ・
            ・
            ・
            ・
}