방위각 절대치 적용 #269
@ -253,9 +253,10 @@ public class PwrGnrSimService {
|
|||||||
} else { // 각도
|
} else { // 각도
|
||||||
dKoubai[i] = (2 * Math.PI) * (Double.parseDouble(data.getSlopeAngle()) / 360);
|
dKoubai[i] = (2 * Math.PI) * (Double.parseDouble(data.getSlopeAngle()) / 360);
|
||||||
}
|
}
|
||||||
|
//초기 계산식 - 절대치인정
|
||||||
// dHoui[i] = Math.abs((2 * Math.PI) * (Double.parseDouble(data.getAzimuth()) / 360));
|
dHoui[i] = Math.abs((2 * Math.PI) * (Double.parseDouble(data.getAzimuth()) / 360));
|
||||||
dHoui[i] = (2 * Math.PI) * (Double.parseDouble(data.getAzimuth()) / 360);
|
//변경된 계산식 - 절대치 불인정
|
||||||
|
//dHoui[i] = (2 * Math.PI) * (Double.parseDouble(data.getAzimuth()) / 360);
|
||||||
// 지붕별 모듈정보 셋팅
|
// 지붕별 모듈정보 셋팅
|
||||||
int j = 0;
|
int j = 0;
|
||||||
for (PwrGnrSimRoofResponse m : moduleGroupList) {
|
for (PwrGnrSimRoofResponse m : moduleGroupList) {
|
||||||
@ -867,11 +868,11 @@ public class PwrGnrSimService {
|
|||||||
// houi[rad]을 [도]로 변환
|
// houi[rad]을 [도]로 변환
|
||||||
houi = (houi / (2 * Math.PI)) * 360;
|
houi = (houi / (2 * Math.PI)) * 360;
|
||||||
|
|
||||||
// 電力ピークカット(houi 절대값으로 변경)
|
// 電力ピークカット
|
||||||
double watt_peakcut_result =
|
double watt_peakcut_result =
|
||||||
((matrix_multiply1 * (Math.cos(Math.abs(houi) * Math.PI / 180) + 1) + matrix_multiply2) < 0.1)
|
((matrix_multiply1 * (Math.cos(houi * Math.PI / 180) + 1) + matrix_multiply2) < 0.1)
|
||||||
? 0.1
|
? 0.1
|
||||||
: (matrix_multiply1 * (Math.cos(Math.abs(houi) * Math.PI / 180) + 1) + matrix_multiply2);
|
: (matrix_multiply1 * (Math.cos(houi * Math.PI / 180) + 1) + matrix_multiply2);
|
||||||
|
|
||||||
////////////
|
////////////
|
||||||
// pcs1과 모듈 1의 전류차 구하기 용도
|
// pcs1과 모듈 1의 전류차 구하기 용도
|
||||||
@ -987,27 +988,24 @@ public class PwrGnrSimService {
|
|||||||
int sekisairitsu_ceil = (int) Math.ceil(sekisairitsu / 5.0) * 5;
|
int sekisairitsu_ceil = (int) Math.ceil(sekisairitsu / 5.0) * 5;
|
||||||
double pcs_henkankouritsu = (pcsHenkankouritsu * 1000 <= 985) ? Math.ceil(pcsHenkankouritsu * 1000 / 5) * 5 : 985;
|
double pcs_henkankouritsu = (pcsHenkankouritsu * 1000 <= 985) ? Math.ceil(pcsHenkankouritsu * 1000 / 5) * 5 : 985;
|
||||||
|
|
||||||
int a = 1, b = 1;
|
int i;
|
||||||
|
for (i = 1; i < 37; i++) { // pcs効率によるピークカットデータベースから積載率の一致する行番号取得
|
||||||
for(int i = 1 ; i < 37 ; i++){
|
|
||||||
a++;//pcs効率によるピークカットデータベースから積載率の一致する行番号取得
|
|
||||||
if (sekisairitsu_ceil == peakcut_by_pcs_data.get(i).get(0)) {
|
if (sekisairitsu_ceil == peakcut_by_pcs_data.get(i).get(0)) {
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
for(int j = 1 ; j < 15 ; j++){
|
int j;
|
||||||
b++;//pcs効率によるピークカットデータベースから積載率の一致する列番号取得
|
for (j = 1; j < 15; j++) { // pcs効率によるピークカットデータベースから積載率の一致する列番号取得
|
||||||
if (pcs_henkankouritsu == peakcut_by_pcs_data.get(0).get(j)) {
|
if (pcs_henkankouritsu == peakcut_by_pcs_data.get(0).get(j)) {
|
||||||
break;
|
break;
|
||||||
};
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
double peakcut_by_pcs = peakcut_by_pcs_data.get(a).get(b); //ピークカット率を代入
|
double peakcut_by_pcs = peakcut_by_pcs_data.get(i).get(j); // ピークカット率を代入
|
||||||
double peakcut_by_pcs_kijun = peakcut_by_pcs_data.get(a).get(10); //基準ピークカット率(変換効率0.965)を代入
|
double peakcut_by_pcs_kijun = peakcut_by_pcs_data.get(i).get(10); // 基準ピークカット率(変換効率0.965)を代入
|
||||||
double peakcut_by_pcs_result = peakcut_by_pcs_kijun - peakcut_by_pcs; // ピークカット率と基準ピークカット率の差分を代入
|
double peakcut_by_pcs_result = peakcut_by_pcs_kijun - peakcut_by_pcs; // ピークカット率と基準ピークカット率の差分を代入
|
||||||
|
|
||||||
|
|
||||||
if(((100 - watt_peakcut_result + peakcut_by_pcs_result) /100) < 1){
|
if(((100 - watt_peakcut_result + peakcut_by_pcs_result) /100) < 1){
|
||||||
|
|
||||||
watt_peakcut_result = ((100 - watt_peakcut_result+peakcut_by_pcs_result)/100);
|
watt_peakcut_result = ((100 - watt_peakcut_result+peakcut_by_pcs_result)/100);
|
||||||
@ -1869,20 +1867,20 @@ public class PwrGnrSimService {
|
|||||||
// + Math.cos(taiyousekii[i]) * Math.sin(koubai) * Math.sin(houi) *
|
// + Math.cos(taiyousekii[i]) * Math.sin(koubai) * Math.sin(houi) *
|
||||||
// Math.sin(jikakudo[i][j])));
|
// Math.sin(jikakudo[i][j])));
|
||||||
// System.err.println( " " );
|
// System.err.println( " " );
|
||||||
//houi 절대값으로 변경
|
|
||||||
cosTheta[m][j] =
|
cosTheta[m][j] =
|
||||||
Math.max(
|
Math.max(
|
||||||
0,
|
0,
|
||||||
(Math.sin(latlng[i][0]) * Math.cos(koubai)
|
(Math.sin(latlng[i][0]) * Math.cos(koubai)
|
||||||
- Math.cos(latlng[i][0]) * Math.sin(koubai) * Math.cos(Math.abs(houi)))
|
- Math.cos(latlng[i][0]) * Math.sin(koubai) * Math.cos(houi))
|
||||||
* Math.sin(taiyousekii[i])
|
* Math.sin(taiyousekii[i])
|
||||||
+ (Math.cos(latlng[i][0]) * Math.cos(koubai)
|
+ (Math.cos(latlng[i][0]) * Math.cos(koubai)
|
||||||
+ Math.sin(latlng[i][0]) * Math.sin(koubai) * Math.cos(Math.abs(houi)))
|
+ Math.sin(latlng[i][0]) * Math.sin(koubai) * Math.cos(houi))
|
||||||
* Math.cos(taiyousekii[i])
|
* Math.cos(taiyousekii[i])
|
||||||
* Math.cos(jikakudo[i][j])
|
* Math.cos(jikakudo[i][j])
|
||||||
+ Math.cos(taiyousekii[i])
|
+ Math.cos(taiyousekii[i])
|
||||||
* Math.sin(koubai)
|
* Math.sin(koubai)
|
||||||
* Math.sin(Math.abs(houi))
|
* Math.sin(houi)
|
||||||
* Math.sin(jikakudo[i][j]));
|
* Math.sin(jikakudo[i][j]));
|
||||||
|
|
||||||
rb[m][j] = (cosThetaZ[i][j] == 0) ? 0 : cosTheta[m][j] / cosThetaZ[i][j];
|
rb[m][j] = (cosThetaZ[i][j] == 0) ? 0 : cosTheta[m][j] / cosThetaZ[i][j];
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user