Closed NTRQZ1 closed 3 years ago
@NTRQZ1 Thanks for reaching out,
I am not particularly good at reading Chinese, so I can only answer the questions you asked here.
So to answer your question directly, the general library is header only and fitShell is only a 'test' - so something like:
[cxx] fitShell.cpp -o fitShell.exe [Note: turn on optimizations for extra performance]
However, the code used to recalibrate the penetration formula is actually here
To run regression.py you would need to compile the Python extension which can be done by running:
python setup.py
in the Python directory - you may need to pip install cppimport
if do not already have it installed. After which you can run the python file normally.
wows_ballistics is a website that produces graphs - and raw data - from shell parameters that uses the Webassembly extension from this repository. As such, any computations that the website does can be entirely replicated using code from this repository.
@NTRQZ1 I got someone to translate what you did. If I understand what you did, you were trying to investigate how deck penetration works and found that the ballistics model [fnord_disc model] used in wowsft and wows ap calculator overestimated the amount of deck penetrations and hence the impact angles of shells.
I have made similar observations. So, a few months ago, using the reverse engineered code along with help from some other individuals, I implemented the corrected model. This model also happens uses the same air drag formula you used in your post meaning your flight model and the one currently used here are more or less identical. As of right now, both this repo and the website use this corrected model.
(You can read about it here). Note: I also adjusted the time scaling to 2.75 after the post due to external reverse engineering [yours is 2.775 (5.55 / 2) if I'm not mistaken].
However, the one discrepancy between the current model here and the one you have proposed are your penetration constants. In your penetration fitting, you seem to have arrived at different constants than I did. I suspect this is due to the samples used to regress these values - for instance GC Armada data seems quite suspect. Hopefully, this discrepancy can be rectified shortly.
@jcw780 Thanks for the prompt and detailed reply! Very happy to know you are actively working on the modeling of ballistics, penetration and dispersion!
I have seen the wows_ballistics website earlier this year when I was watching Citizen's twich streaming. It turns out the author is you. Great work! I also followed the link and find the post on wows forum, which explains the old model and the improved model super clear.
Thanks to your friend who did the translation. It is basically what I was (am) doing. Yes, I was studying plunging fire (impact angles and deck penetrations) and find that the predictions from the previous model don't match the training room tests. Then I modified the model and get improved predictions of the shell flight time, impact angles and deck penetrations. The main points are: ballistics (1) the drag calculation: only keep the quadratic term and ensure that the drag force is pointing to the other direction of the traveling direction, which is same as the model in this repo. It makes more sense in terms of fluid mechanics as well. (2) time scaling: we are almost same as you mentioned. I am trying to fine-tune the model and make the factor match the claimed value of 2.61. (3) vertical scaling: besides the first point, a vertical scaling with a factor of 0.95 (linear) is needed to make the predicted impact angles meet the ricochet criteria. Thanks to your post, I find the reverse engineered code very interesting. The log scaling can explain well why the 'rainbow' from Colbert does not look as high as the improved model predicts. So instead of a linear scaling of 0.95, the log scaling its own may be adequate for the ricochet criteria, since the CV decks are above sea level and the impact angles on the decks are smaller than those at the sea level. I am also interested in testing this effect and see if it works. Let me know if you have insights on this or have a way to measure the ingame flight height of a shell. penetration (1) The penetration formula can be fitted, based on the predicted shell velocity from the ballistics model. I agree that the discrepancy is more a data set issue. BTW the Armada penetrations values may have some problem, for example the values for KGV. (2) As you stated in the post on forum, the deck penetration seems to be calculated without normalization, which is set so in my model and the results can match the training room tests. I feel unsettled using different penetration mechanisms on horizontal and vertical/tilted armors. Including the log scaling in the vertical dimension may not (?) be able to solve this problem, since the scaling should apply to all the shells and is not working differently for different calibers (the shells may start from different height though). (3) An fun observation is that in the old and our fitted penetration models, Penetration/D is always a function of M/D^3 if we check the exponents. This is also true in many of the historical naval models.
The results of the tests (AP shell/deck armor/distance/ribbon type/ricochet chances) can be checked out here deck_aromor_tests.xlsx The tests are using multiple (small to medium caliber: 127, 152, 203mm) types of AP shells, which should be complementary to the NC tests mentioned in the forum.
For the ballistics model, currently I am mainly using HE shell flight time for validation: shell_flight_time.zip (matlab code, can be opened by notepad as well) The data is collected in training room when aiming at different distances on multiple ships. In the recent versions, there is a bug: it is always showing HE flight time no matter which type of shells we load when aiming. (mino surely AP; stock NC shows AP flight time though. weird bug) When this bug is fixed by WG, we can have more validation with AP shells. In addition to the four points you mentioned in the forum post, the improved model can also make better prediction on shall flight time, especially kitakaze, gearing and yamato. The improved max firing range predictions as you mentioned may be equivalent to this one.
Look forward to your insights or comments, I will also keep you posted when I make any improvement to the current model. I like the new website for ballistics and thanks for the contribution to the committee!
Happy holidays!
Ahoy 780,
Great to see this project! I was trying to learn plunging fire in wows two months ago and found that the model in wows ap calculator ("old model") not accurate on predicting the impact angle. After checking the old model, I made some revision based on fluid mechanics and the principles of vector operations. A large amount of training room tests have been done to calibrate the parameters in the ballistics model as well.
The revisions above and testing results are published on a Chinese forum NGA: https://bbs.nga.cn/read.php?tid=23971432 Not sure if u can read Chinese or not. I can also prepare some material in English these days if necessary. If you are more comfortable to chat in Chinese (just like I am), I am also glad to hop on QQ or Wechat.
It seems that in ur fitting, the penetration data is from Armada videos (I'm also using these values for my fitting). I'm now going through fitshell.cpp as well as the revised model from ThiSpawn. Could you let me know how to compile this code? I have also noticed that there is another repository wows_ballistics. What is the difference between these two or how are they related to each other? Looking forward to the reply and future communication (or maybe even collaboration)!
Best, NTRQZ