<!DOCTYPE html>
|
<html lang="en">
|
<head>
|
<meta charset="UTF-8">
|
<title>实际容量测试</title>
|
<script type="text/javascript" src='/js/jquery-1.8.3.js' ></script>
|
</head>
|
<body>
|
<table>
|
<tr>
|
<td><label for='battgroupid'>电池组id</label></td>
|
<td><input type="text" id='battgroupid'/></td>
|
</tr>
|
<tr>
|
<td><label for='MoncapStd'>标存容量</label></td>
|
<td><input type="text" id='MoncapStd'/></td>
|
</tr>
|
<tr>
|
<td><label for='MonvolStd'>标存电压</label></td>
|
<td><input type="text" id='MonvolStd' /></td>
|
</tr>
|
<tr>
|
<td><label for='Testcap'>测试容量</label></td>
|
<td><input type="text" id='Testcap'/></td>
|
</tr>
|
<tr>
|
<td><label for='Testcurr'>测试电流</label></td>
|
<td><input type="text" id='Testcurr' /></td>
|
</tr>
|
<tr>
|
<td><label for='Maxvol'>最大电压</label></td>
|
<td><input type="text" id='Maxvol'/></td>
|
</tr>
|
<tr>
|
<td><label for='Minvol'>最小电压</label></td>
|
<td><input type="text" id='Minvol' /></td>
|
</tr>
|
<tr>
|
<td><label for='result'>结果</label></td>
|
<td><input type="text" id='result' /></td>
|
</tr>
|
<tr>
|
<td><input type="button" id='b1' value="计算" /></td>
|
<td><input type="button" id='b2' value="清空" /></td>
|
</tr>
|
</table>
|
<table id='t2'>
|
|
</table>
|
</body>
|
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
|
<script type="text/javascript">
|
var tableTr=new Array();
|
var tableTh=new Array('电池组id','标存容量','测试电流','测试容量','最大电压','最小电压','标存电压','实际容量表示符','实际容量');
|
function tableAppend(battgroupid,result,STDAH,Testcurr,SumAH,MaxMonomerVol,MonomerVol,MonomerVolType,CapType_Real){
|
|
|
tableTr.push(battgroupid);
|
tableTr.push(STDAH);
|
tableTr.push(Testcurr);
|
tableTr.push(SumAH);
|
tableTr.push(MaxMonomerVol);
|
tableTr.push(MonomerVol);
|
tableTr.push(MonomerVolType);
|
tableTr.push(CapType_Real);
|
tableTr.push(result);
|
t2=document.getElementById("t2");
|
createTablenew($(t2),tableTh,tableTr);
|
}
|
function createTablenew(ele,ThArr,TdArr){
|
ele.children('table').remove();
|
var _table=$('<table></table>');
|
var _thead=$('<thead></thead>');
|
var _tbody=$('<tbody></tbody>');
|
var ThArray=new Array(); //设置th的数组
|
var TrArray=new Array(); //设置tr的数组
|
var TdArray=new Array(); //设置td的数组
|
var TdLength; //获取单元格个数
|
var TrLength; //获取行数
|
TdLength=TdArr.length;
|
TrLength=Math.ceil(TdLength/ThArr.length);
|
// 给每个th设置值
|
for(var i=0;i<ThArr.length;i++)
|
{
|
ThArray[i]=$("<th>"+ThArr[i]+"</th>");
|
}
|
// 给每个td设置值
|
for(var i=0;i<TdLength;i++)
|
{
|
TdArray[i]=$("<td>"+TdArr[i]+"</td>");
|
}
|
//设置tr
|
for(var i=0;i<TrLength;i++)
|
{
|
TrArray[i]=$("<tr></tr>");
|
}
|
//将td以col个赋给tr
|
var n=0;
|
for(var i=0;i<TrLength;i++)
|
{
|
for(var k=0;k<ThArr.length;k++)
|
{
|
TrArray[i].append(TdArray[n]);
|
n++;
|
}
|
}
|
//给th赋给thead
|
for(var i=0;i<ThArr.length;i++)
|
{
|
_thead.append(ThArray[i]);
|
}
|
_table.append(_thead);
|
// 将tr赋给table
|
for(var i=0;i<TrLength;i++)
|
{
|
_tbody.append(TrArray[i]);
|
}
|
_table.append(_tbody);
|
//将table添加到指定的容器中
|
ele.append(_table);
|
}
|
function createFullTbl(eleHead, eleBody, thList, tdList, status) {
|
if(arguments.length < 5) {
|
var status = new Array();
|
for(var i = 0; i < thList.length; i++) {
|
status.push(1);
|
}
|
}
|
var arrNewTh = getArrTh(status, thList);
|
var arrNewTd = getArrTd(status, tdList);
|
|
createTablenew(eleHead, arrNewTh, arrNewTd);
|
createTablenew(eleBody, arrNewTh, arrNewTd);
|
|
setTblWidth(eleHead, eleBody);
|
}
|
// 获取标纯电流
|
function GetFDCurrent(stdcap,hourrate)
|
{
|
var res = 0.055;
|
switch(hourrate)
|
{
|
case 1: res = 0.514; break;
|
case 2: res = 0.306; break;
|
case 3: res = 0.250; break;
|
case 4: res = 0.200; break;
|
case 5: res = 0.166; break;
|
case 6: res = 0.146; break;
|
case 7: res = 0.131; break;
|
case 8: res = 0.118; break;
|
case 9: res = 0.108; break;
|
case 10: res = 0.100; break;
|
case 20: res = 0.055; break;
|
default: res = 0.055; break;
|
}
|
|
return (stdcap * res);
|
}
|
|
// 获取放电小时率 stdah:标纯容量 current:当前电流
|
function GetHourRate(stdah,current)
|
{
|
var index = 0;
|
var value=[5.14, 3.06, 2.50, 2.00, 1.66, 1.46, 1.31, 1.18, 1.08, 1.00, 0.55, 0.40];
|
var res;
|
current = Math.abs(current);
|
res = current/(stdah/10);
|
if(res >= 5.14) return 1;
|
else if(res <= 0.55) return 20;
|
else
|
{
|
for(var index=0; index<10; index++)
|
{
|
if((res<=value[index]) && (res>value[index+1]))
|
break;
|
else continue;
|
}
|
if((value[index]-res) < (res-value[index+1]))
|
{
|
return (index+1);
|
}
|
else
|
{
|
if(index+2 > 10) return (20);
|
else return (index+2);
|
}
|
}
|
}
|
|
function N_TO_10H(n_H)
|
{
|
switch(n_H)
|
{
|
case 1 : return(1/0.55);
|
case 2 : return(1/0.61);
|
case 3 : return(1/0.75);
|
case 4 : return(1/0.79);
|
case 5 : return(1/0.833);
|
case 6 : return(1/0.876);
|
case 7 : return(1/0.917);
|
case 8 : return(1/0.944);
|
case 9 : return(1/0.974);
|
case 10: return(1/1);
|
case 20: return(1/1.1);
|
}
|
return 1.0;
|
}
|
|
//获取剩余容量 STDAH:标称容量 HourRate:放电小时率 SumAH:测试容量 MaxMonomerVol:最大电池电压 MonomerVol:当前电池组的最低单体电压
|
//MonomerVolType:电池标称电压 CapType:容量类型(定值是常量)
|
function GetMonomerCap(STDAH,HourRate,SumAH,MaxMonomerVol,
|
MonomerVol,MonomerVolType,CapType)
|
{
|
if((MaxMonomerVol - MonomerVolType*0.9) <= 0)
|
return 0;
|
if(SumAH < 0)
|
SumAH *= (-1);
|
var tmp_cap;
|
tmp_cap = MonomerVol - MonomerVolType * 0.9;
|
tmp_cap *= (STDAH - SumAH * N_TO_10H(HourRate));
|
var dt_vol = MaxMonomerVol - MonomerVolType*0.9;
|
if(dt_vol < 0.01)
|
dt_vol = 0.01;
|
tmp_cap = tmp_cap/dt_vol;
|
if(tmp_cap < 0)
|
tmp_cap = 0;
|
|
if(CapType == CapType_Rest)
|
return tmp_cap;
|
else if(CapType == CapType_Real)
|
return (tmp_cap + SumAH * N_TO_10H(HourRate));
|
else
|
return ((tmp_cap + SumAH * N_TO_10H(HourRate))*100 / STDAH);
|
}
|
|
//获取后备时间
|
function GetRestTimeSecond(restcap,curr)
|
{
|
var tmp_curr = Math.abs(curr);
|
if(tmp_curr < 0.1)
|
tmp_curr = 0.1;
|
|
var rest_time = ((restcap / tmp_curr) * 3600);
|
if(rest_time > (99*3600))
|
rest_time = (99*3600);
|
return rest_time;
|
}
|
var CapType_Rest = 0; //当查询剩余容量时传递
|
var CapType_Real = 1; //当查询实际容量时传递
|
|
|
$('#b1').click(function(){
|
var battgroupid = $('#battgroupid').val();
|
var STDAH=$('#MoncapStd').val();
|
//alert(STDAH);
|
var MonomerVolType=$('#MonvolStd').val();
|
var Testcurr=$('#Testcurr').val();
|
var HourRate=GetHourRate(STDAH,Testcurr);
|
var SumAH=$('#Testcap').val();
|
var MaxMonomerVol=$('#Maxvol').val();
|
var MonomerVol=$('#Minvol').val();
|
var result=GetMonomerCap(STDAH,HourRate,SumAH,MaxMonomerVol,MonomerVol,MonomerVolType,CapType_Real);
|
//alert(result);
|
$('#result').val(result);
|
tableAppend(battgroupid,result,STDAH,Testcurr,SumAH,MaxMonomerVol,MonomerVol,MonomerVolType,CapType_Rest);
|
});
|
$('#b2').click(function(){
|
$('#battgroupid').val();
|
$('#MoncapStd').val('');
|
$('#MonvolStd').val('');
|
$('#Testcurr').val('');
|
$('#Testcap').val('');
|
$('#Maxvol').val('');
|
$('#Minvol').val('');
|
});
|
|
</script>
|
</html>
|