Merge pull request '방위각 절대치 적용' (#268) from dev into dev-deploy

Reviewed-on: #268
This commit is contained in:
ysCha 2025-12-17 18:44:29 +09:00
commit cd91cc9006

View File

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