SUBSIM Radio Room Forums



SUBSIM: The Web's #1 resource for all submarine & naval simulations since 1997

Go Back   SUBSIM Radio Room Forums > Silent Hunter 3 - 4 - 5 > SHIII Mods Workshop
Forget password? Reset here

Reply
 
Thread Tools Display Modes
Old 10-03-10, 10:03 PM   #1
sub_optimal
Watch
 
Join Date: Sep 2010
Location: Toronto, Canada
Posts: 24
Downloads: 44
Uploads: 0
Default

Quote:
Originally Posted by Kafka BC View Post
And here is my shameless attempt at Naval History education.
How very appropriately shameless, given that it reflects only credit upon you!
sub_optimal is offline   Reply With Quote
Old 10-04-10, 08:59 PM   #2
Kafka BC
Planesman
 
Join Date: Jan 2010
Location: Halifax, Nova Scotia
Posts: 197
Downloads: 163
Uploads: 0
Default

Quote:
Originally Posted by sub_optimal View Post
How very appropriately shameless, given that it reflects only credit upon you!
Thanks. Wasn't looking for any, but was trying to give it to the boys of the Royal Canadian Navy Volunteer Reserve, the Naval Reservists, and the good officers that commanded them.
__________________
Ah, for just one time I would take the Northwest Passage
To find the hand of Franklin reaching for the Beaufort Sea
Tracing one warm line through a land so wide and savage
And make a Northwest Passage to the sea.

- Stan Rogers (1949-1983)
Kafka BC is offline   Reply With Quote
Old 10-05-10, 01:34 PM   #3
LGN1
Ace of the Deep
 
Join Date: Mar 2006
Posts: 1,138
Downloads: 147
Uploads: 12
Default

Hi,

a while ago I made a long-term fatigue model for myself. From reading old threads (thanks to all who investigated this earlier!), experimenting,... I found out the following things:

In basic.cfg every rank has this section

[CREW_0] ;SEAMAN
MoraleMin=0.30 <--- value below which morale cannot drop (see comment below)
MoraleMax=0.60 <--- value above which morale cannot rise
MoraleStep=0.05 <--- amount by which morale is increased in the crew comp. every 10 min.
FatigueMin=0 <--- value below which fatigue cannot drop
FatigueMax=0.80 <--- value above which fatigue cannot rise
FatigueStep=0.031 <--- amount by which fatigue is reduced in the crew comp. every 10 min.
CoefMorale=0.4 <--- see formula below
CoefFatigue=0.21 <--- see formula below
QualEffect=1 <--- see formula below
Hp=10
Wounded=-0.02 <--- amount by which morale is reduced if someone is wounded in the compartment
Dead=-0.05 <--- amount by which morale is reduced if someone dies in the compartment
SunkShips=0.1 <--- amount by which morale increases if a ship is sunk
TorpedoHit=0.05 <--- broken, does nothing
Experience=0

Now the question is how do these values influence the efficiency in a compartment. The answer is (assuming all men are healthy, never tested wounded men):

Efficiency = (M*(1-c_m)+c_m)*(F*(c_f-1)+1)

M: morale of crew member
c_m: CoefMorale in basic.cfg
F: fatigue of crew member
c_f: CoefFatigue in basic.cfg

The total efficiency is the sum of all the efficiencies of the crew members in the compartment. For petty officers the efficiency is multiplied with the QualEffect factor from basic.cfg (if they have the qualification corresponding to the compartment). For officers the total efficiency in the compartment is multiplied by QualEffect. Thus, having an officer with the right qualification is most important.

Ok, now we need to know how efficiency influences the different tasks. This is where my knowledge is limited. Here is what I think. We have several tasks: Repairs, torpedo reload, steering commands, sensor work.

Repair times: Repair time is given by (this is without a repair team, i.e. only the crew in the compartment is doing the repairs. I think you need at least two men in the compartment.)

T = Tfix(depends on damage amount)*Interval3/Eff,
Tfix: hardcoded 'basic' time
Eff: efficiency in compartment (formula above)
Interval3: specified for each compartment in basic.cfg
Interval1 and Interval2 seem to have no influence


Torpedo reload time:
T = Tfix*factor
Tfix: 'basic' time in sim file
factor=1 for efficiency in compartment >= Interval3
factor=3/2 for Interval2 < efficiency in compartment < Interval3
factor=3 for Interval1 < efficiency in compartment < Interval2
infinity for efficiency in compartment < Interval1 (i.e., no reloading)

I did not notice any influence of efficiency on giving commands. I also do not know for sure how efficiency influences the sensors. It seems that the Interval values have no influence. So, I guess a continuous scale is used (as with repair times, not as in the case of torpedo reloading). Engines will not work if efficiency in compartment < Interval1. It seems the other Intervals have no influence.

Finally, basic.cfg contains the [FATIGUE_COEF] values for each compartment:

RegularFactor50=0.001 <--- amount by which fatigue is decreased when a crew member is moved into the compartment
RegularFactor51=0.001 <--- unknown. No idea.
SpecificFactor50=0.045 <--- amount by which fatigue decreases every 10 min. when the sub is surfaced
SpecificFactor51=0.045 <--- amount by which fatigue decreases every 10 min. when the sub is submerged
BadWeather5=0.02 <--- amount by which fatigue is decreased in bad weather (I'm not sure whether it's added to RegularFactor or used without it. But this can be easily checked.)

That's how I think it works. If someone has more information or thinks something is wrong I would love to know it. Especially, it would be great to know more about how sensors are influenced by the efficiency.

Cheers, LGN1

PS: One has to be careful when playing with MoraleStep. If you make it negative the morale can become negative because it is not stopped by MoraleMin. IIRC, you can also get negative fatigue if you choose some strange settings.

Last edited by LGN1; 10-06-10 at 02:56 PM. Reason: Corrected and clarified some issues
LGN1 is offline   Reply With Quote
Old 10-05-10, 08:25 PM   #4
sub_optimal
Watch
 
Join Date: Sep 2010
Location: Toronto, Canada
Posts: 24
Downloads: 44
Uploads: 0
Default

That's fantastic, LGN1. That saves a ton of work.

Do you mind if I ask a few questions?

Firstly, are you sure that "Efficiency = (M*(1-c_m)+c_m)*(F*(c_f-1)+1)" shouldn't read "Efficiency = ((M*1-c_m)+c_m)*((F*c_f-1)+1)"?

Second, what leads you to the conclusion that SpecificFactor is envoked when crews are moved from compartment to compartment? I've been sitting here moving my crews around, their fatigue doesn't seem to go up. Furthermore, in the default settings, the SpecificFactor for compartments 3 and 4 (diesel and electric engines respectively) are mirrored for the x0 and x1 conditions (ie 30 is 0.4, 31 0.1; 40 is 0.1, 41 0.4). This would seem to fit the model that these factors should reflect the submerged and surfaced postures of the submarine, as the electrics are only used submerged and the diesels surfaced. Thus:

30 - diesel surfaced - in use = 0.4 (high)
31 - diesel submerged - not in use = 0.1 (low)
40 - electric sufaced - not in use = 0.1 (low)
41 - electric submerged - in use = 0.4 (high)
sub_optimal is offline   Reply With Quote
Old 10-06-10, 03:02 AM   #5
divingbluefrog
Medic
 
Join Date: Jan 2006
Posts: 164
Downloads: 63
Uploads: 1
Default

LGN1, I see you have fine tuned your model since your discovery of the formula that changes my life... Thank you again for this fantastic breakthrough.
I can give you my two cents :
Regular - noncombat situation
Specific – Combat situation
This is not my own conclusion, I found this somewhere in the inmost depths of this forum, and copied it to my own Tips 'd Tricks file.

For the Tfix in the repair time formula, I incline toward a relation with the Hit Point of the equipment/compartment, even with the amount of hp lost or remaining...
Could you confirm the formula is T = Tfix/(Eff*Interval3) ?

By the way, do you have any idea about the Resilience factor? All I know is that it is influenced by crewman HP, the more HP, the less resilience. Should have an influence on Fatigue or Efficiency...
divingbluefrog is offline   Reply With Quote
Old 10-06-10, 01:50 PM   #6
LGN1
Ace of the Deep
 
Join Date: Mar 2006
Posts: 1,138
Downloads: 147
Uploads: 12
Default

Quote:
Originally Posted by sub_optimal View Post
That's fantastic, LGN1. That saves a ton of work.

Do you mind if I ask a few questions?

Firstly, are you sure that "Efficiency = (M*(1-c_m)+c_m)*(F*(c_f-1)+1)" shouldn't read "Efficiency = ((M*1-c_m)+c_m)*((F*c_f-1)+1)"?

Second, what leads you to the conclusion that SpecificFactor is envoked when crews are moved from compartment to compartment? I've been sitting here moving my crews around, their fatigue doesn't seem to go up. Furthermore, in the default settings, the SpecificFactor for compartments 3 and 4 (diesel and electric engines respectively) are mirrored for the x0 and x1 conditions (ie 30 is 0.4, 31 0.1; 40 is 0.1, 41 0.4). This would seem to fit the model that these factors should reflect the submerged and surfaced postures of the submarine, as the electrics are only used submerged and the diesels surfaced. Thus:

30 - diesel surfaced - in use = 0.4 (high)
31 - diesel submerged - not in use = 0.1 (low)
40 - electric sufaced - not in use = 0.1 (low)
41 - electric submerged - in use = 0.4 (high)
Hi,

I am pretty sure about the formula. Your version can be simplified to

Efficiency = (M-c_m+c_m)*(F*c_f-1+1) = M*F*c_f

which means for c_f=0 you have no efficiency. Also c_m has no influence. But in-game you can choose a purely morale-dependent model by choosing c_f=1. By choosing c_m=1 you get a pure fatigue model.

Sorry, about the regular and specific factors. I confused the two. It's the other way round (corrected it above). Look in this old thread:

http://www.subsim.com/radioroom//showthread.php?t=85656

Be careful, the formula given there for the efficiency is wrong, IMHO.

Quote:
Originally Posted by divingbluefrog View Post
LGN1, I see you have fine tuned your model since your discovery of the formula that changes my life... Thank you again for this fantastic breakthrough.
I can give you my two cents :
Regular - noncombat situation
Specific – Combat situation
This is not my own conclusion, I found this somewhere in the inmost depths of this forum, and copied it to my own Tips 'd Tricks file.

For the Tfix in the repair time formula, I incline toward a relation with the Hit Point of the equipment/compartment, even with the amount of hp lost or remaining...
Could you confirm the formula is T = Tfix/(Eff*Interval3) ?

By the way, do you have any idea about the Resilience factor? All I know is that it is influenced by crewman HP, the more HP, the less resilience. Should have an influence on Fatigue or Efficiency...
About the specific and regular factors, see the thread I linked above. It's quite old, but I don't know any definite conclusion about the regular factor.

You are right about the repair times. I am pretty sure that the status of the damaged item (via hitpoints) plays a role. However, how hitpoints exactly enter is not known to me. The formula is just about how the efficiency enters (what happens if you send more men to repair). A more correct version would be

T = Tfix(damage/hitpoints)*Interval3/Eff

,i.e., Tfix is an unknown function of the damage/hitpoints. If you increase the Interval3 value, the time will also increase.

Which Resilience factor do you mean? The colored bar for each crew member? I think it's just 1-fatigue. I don't think that hitpoints influence the efficiency. At least I can predict the efficiency (green bar above the compartment) without using any hitpoint information.

Cheers, LGN1
LGN1 is offline   Reply With Quote
Old 10-06-10, 02:23 PM   #7
sub_optimal
Watch
 
Join Date: Sep 2010
Location: Toronto, Canada
Posts: 24
Downloads: 44
Uploads: 0
Default

Quote:
Originally Posted by LGN1 View Post
I am pretty sure about the formula. Your version can be simplified to

Efficiency = (M-c_m+c_m)*(F*c_f-1+1) = M*F*c_f
Wait... maybe I'm going crazy, but I thought that you had to do the addition and subtraction first, and then the multiplication and division.
sub_optimal is offline   Reply With Quote
Old 10-06-10, 02:43 PM   #8
LGN1
Ace of the Deep
 
Join Date: Mar 2006
Posts: 1,138
Downloads: 147
Uploads: 12
Default

Just a small example to illustrate the formula (values taken from GWX):

[CREW_0] ;SEAMAN
MoraleMin=0.30
MoraleMax=0.60
FatigueMin=0
FatigueMax=0.80
CoefMorale=0.4
CoefFatigue=0.21
QualEffect=1

--> A rested seaman adds 0.76 to the efficiency in a compartment. When completely exhausted he adds 0.76*0.368 = 0.27968.

[CREW_3] ;PETTYOFFICER
MoraleMin=0.40
MoraleMax=0.70
FatigueMin=0
FatigueMax=0.80
CoefMorale=0.3
CoefFatigue=0.3
QualEffect=2

--> A rested petty officer adds 0.79 to the efficiency in a compartment. When completely exhausted he adds 0.79*0.44 = 0.3476. If he has the correct qualification for the compartment he adds 1.58 and 0.6952, respectively.

[CREW_6] ;SUBLIEUTENANT
MoraleMin=0.50
MoraleMax=0.80
FatigueMin=0
FatigueMax=0.80
CoefMorale=0.2
CoefFatigue=0.4
QualEffect=1.5

--> A rested sub lieutenant adds 0.84 to the efficiency in a compartment. When completely exhausted he adds 0.84*0.52 = 0.4368.

If the officer is in a compartment with a sailor (both rested), the total efficiency is (0.84+0.76)*1.5 = 2.4 (assuming the officer has the correct qualification). Clearly, having an officer with the correct qualification is very important.

Cheers, LGN1
LGN1 is offline   Reply With Quote
Old 10-06-10, 02:26 PM   #9
sub_optimal
Watch
 
Join Date: Sep 2010
Location: Toronto, Canada
Posts: 24
Downloads: 44
Uploads: 0
Default

Quote:
Originally Posted by sub_optimal View Post
Second, what leads you to the conclusion that SpecificFactor is envoked when crews are moved from compartment to compartment?
... which is, of course, not what you said at all. I fail at reading.
sub_optimal is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -5. The time now is 08:00 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 1995- 2025 Subsim®
"Subsim" is a registered trademark, all rights reserved.