-
Notifications
You must be signed in to change notification settings - Fork 19
Feature/add earth ir and fix albedo to thermal calc #755
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Feature/add earth ir and fix albedo to thermal calc #755
Conversation
…thAlbedo and EarthInfrared constructors
… in EarthAlbedo constructor
… in EarthInfrared constructor
…st heater and heat load parameters
…tion and adjust view factor exponent
|
@200km コンフリクトは解消しておきます |
|
最低限必要な変更のみ残し、不要な変更(userサイドで持つべきマトリクス)はもとに戻した |
|
@kai0722 長らく放置してすみません。conflict解除をお願いします。 |
…d-earthIR-and-fix-albedo-to-thermal-calc
200km
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
conflict解除ありがとうございます。コメントつけました。
| [EARTH_INFRARED] | ||
| calculation = ENABLE | ||
| // Earth infrared temperature hot/cold side [K]. Default value is Global effective temperature of 250K | ||
| earth_infrared_temperature_hot_side = 250.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[NITS] 変数の最後にKという単位をつけてください。
| 0,10,10,20,20,10,10 | ||
| 1,0,0,0,0,0,0 | ||
| 2,0,0,0,0,0,0 | ||
| 2,0,0,0,0,0,0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[NITS] 必要ない修正に見えます。
| private: | ||
| double earth_infrared_W_m2_ = 0.0; //!< Earth infrared [W/m^2] | ||
| bool is_calc_earth_infrared_enabled_ = false; //!< Calculation flag | ||
| double earth_infrared_temperature_hot_side_ = 0.0; //!< Earth infrared temperature hot side [K] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[NITS] 変数名に単位を入れてください。
| inline void SetIsCalcEarthInfraredEnabled(const bool is_calc_earth_infrared_enabled) { | ||
| is_calc_earth_infrared_enabled_ = is_calc_earth_infrared_enabled; | ||
| } | ||
| inline void SetEarthTempHotSide(const double earth_infrared_temperature_hot_side) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[NITS] ここの関数たちにも単位を入れてください。
| std::string EarthInfrared::GetLogValue() const { | ||
| std::string str_tmp = ""; | ||
|
|
||
| str_tmp += logger::WriteScalar(earth_infrared_temperature_hot_side_); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[Q] 将来的にはこの温度は固定値ではなく変動値になる想定なのでしょうか?
| // albedo radiation calculation; earth_albedo_W_m2 reflects the shadow coefficient. | ||
| if (cos_theta_albedo > 0.0) { | ||
| albedo_radiation_W_ = earth_albedo_W_m2 * area_m2_ * alpha_ * cos_theta_albedo; | ||
| double cos_theta = InnerProduct(vec_a, vec_b); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[IMO] この辺りのローカル変数はその後変更する予定が無いものなら、constつけると良いかなと思います。
|
|
||
| // Calc view factor | ||
| // ref)POWER INPUT TO A SMALL FLAT PLATE FROM A DIFFUSELY RADIATING SPHERE WITH APPLICATION TO EARTH SATELLITES: THE SPINNING PLATE | ||
| if (h < 1732e3) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[MUST] マジックナンバーは最低限コメントが欲しい。もしくは、const double 変数名で説明_m = 1732e3みたいな感じでもよい。
| double Node::CalcEarthInfraredRadiation_W(math::Vector<3> earth_position_b_m, double earth_infrared_W_m2) { | ||
| math::Vector<3> earth_direction_b = earth_position_b_m.CalcNormalizedVector(); | ||
|
|
||
| double lamda = acos(InnerProduct(earth_direction_b, normal_vector_b_)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[IMO] こちらの関数も上のものと同様のコメント
お忙しい中ありがとうございます! |
Related issues
#708
Description
Added thermal input from Earth infrared radiation to the thermal calculation.
The main additions for this feature are as follows:
Created
earth_infrared.cpp/hppto manage thermal input from Earth infrared radiationAdded functionality to calculate thermal input to each node in
Node::CalcEarthInfraredRadiation_W(line 98 innode.cpp)In addition, some thermal-related equations have been revised.
In particular, by adjusting the exponent in Banister's approximation used for albedo calculation, we were able to obtain results that closely match those from Thermal Desktop analyses.
Test results
Below are several comparisons with analysis results from Thermal Desktop. An evaluation of the errors in the analysis results is also included.
example 1)


The errors in 6-panel nodes are shown below.

exampel 2)


The errors in 6-panel nodes are shown below.

example 3)


The errors in 6-panel nodes are shown below.

Impact
The output of thermal calculations will change (with improved accuracy).