Alfa-class Submarine

View previous topic View next topic Go down

Alfa-class Submarine

Post by Maurice on Wed May 30, 2012 12:19 pm

Alright, I have been working on this baby for a while. Once again, this is a Rigid Chips edition of a real Soviet submarine. It is based off of the same body as all my other submarines (because I know that body works), but I have done some recowling to make it look like an Alfa. I made its engines as powerful as I could without inducing major vibration, but it still falls 9 knots short of the real submarine's maximum speed (41 kts). I borrowed the depth set and roll stabilization scripts from Echo_Delta_Oscar's Mark-class submarine, after editing them slightly, of course. This is the fastest full size, purpose built submarine I have ever made. I do have one operational note, at full speed, which I am sure you will be at most of the time, the set depth gauge is 5 meters lower than actual depth.

Code:
// [RCD]
Val
{
   B(default=200, max=200)
   B2(default=320, max=320)
   B3(default=140, max=140)
   B4(default=50, max=50)
   BANK(default=0, min=-20, max=20)
   DH(default=-1, min=-1, max=105)
   DIVEB(default=0, min=-20, max=20, step=5)
   DPAR(default=0, min=-20, max=20)
   ENG(default=0, min=-10000, max=200000)
   PLANES(default=0, min=-15, max=15, step=5)
   ROLL(default=-123454321, min=-20, max=20)
   RUDD(default=0, min=-25, max=25, step=5)
   TORP(default=0, max=200000, step=200000)
}
Key
{
   0:Planes(step=5)
   1:Planes(step=-5)
   2:Rudd(step=5)
   3:Rudd(step=-5)
   4:eng(step=1000)
   5:eng(step=-1000)
   6:S1(step=-1)
   7:B(step=10), B2(step=15), B3(step=7), B4(step=2.5)
   8:B(step=-10), B2(step=-15), B3(step=-7), B4(step=-2.5)
   9:TORP(step=200000)
   10:S1(step=1)
}
Body
{
   Core() {
      S:Frame(angle=67) {
         S:Frame(angle=56) {
            S:Chip(angle=-123) {
               N:TrimF(angle=-45) {
                  N:Cowl(angle=-135, effect=#F000) {
                     N:Cowl(angle=-25, effect=#F000) {
                        N:Cowl(angle=-20, color=#0D0D0D) {
                           N:Cowl(color=#0D0D0D) {
                              N:Cowl(color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(angle=-90, color=#0D0D0D) { }
                              }
                              W:Cowl(angle=-136, option=2, color=#808080) { }
                           }
                        }
                     }
                  }
                  N:Cowl(angle=135) {
                     N:Cowl(angle=25) {
                        N:Cowl(angle=20, color=#800000) {
                           N:Cowl(color=#800000) {
                              N:Cowl(color=#800000) {
                                 N:Cowl(color=#800000) { }
                              }
                           }
                        }
                     }
                  }
               }
               N:TrimF(angle=45) {
                  N:Cowl(angle=135) {
                     N:Cowl(angle=25) {
                        N:Cowl(angle=20, color=#800000) {
                           N:Cowl(color=#800000) {
                              N:Cowl(color=#800000) {
                                 N:Cowl(color=#800000) { }
                              }
                           }
                        }
                     }
                  }
                  N:Cowl(angle=-135, effect=#F000) {
                     N:Cowl(angle=-25, effect=#F000) {
                        N:Cowl(angle=-20, color=#0D0D0D) {
                           N:Cowl(color=#0D0D0D) {
                              N:Cowl(color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(angle=-90, color=#0D0D0D) { }
                              }
                           }
                        }
                     }
                  }
               }
               N:Trim(angle=90) {
                  N:Cowl(angle=135, effect=#F000) {
                     N:Cowl(angle=25, effect=#F000) {
                        N:Cowl(angle=20, color=#0D0D0D) {
                           N:Cowl(color=#0D0D0D) {
                              N:Cowl(color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                              }
                           }
                        }
                     }
                  }
                  N:Cowl(angle=-135, effect=#F000) {
                     N:Cowl(angle=-25, effect=#F000) {
                        N:Cowl(angle=-20, color=#0D0D0D) {
                           N:Cowl(color=#0D0D0D) {
                              N:Cowl(color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                              }
                           }
                        }
                     }
                  }
                  S:Chip() {
                     S:Chip() { }
                  }
               }
               N:Weight() {
                  N:Cowl(angle=-135, effect=#F000) {
                     N:Cowl(angle=-25, effect=#F000) {
                        N:Cowl(angle=-20) {
                           N:Cowl(color=#0D0D0D) {
                              N:Cowl(color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                              }
                           }
                        }
                     }
                  }
                  N:Cowl(angle=135) {
                     N:Cowl(angle=25) {
                        N:Cowl(angle=20, color=#800000) {
                           N:Cowl(color=#800000) {
                              N:Cowl(color=#800000) {
                                 N:Cowl(color=#800000) { }
                              }
                           }
                        }
                     }
                  }
                  E:Jet(angle=-135, power=B2, option=2) { }
                  W:Jet(angle=-135, power=B2, option=2) { }
               }
               S:Chip() {
                  S:Chip(name=Hull) {
                     S:Chip() {
                        S:Chip() {
                           N:TrimF(angle=45) {
                              N:Cowl(angle=135) {
                                 N:Cowl(angle=25) {
                                    N:Cowl(angle=30, color=#800000) {
                                       N:Cowl(color=#800000) {
                                          N:Cowl(color=#800000) {
                                             N:Cowl(color=#800000) {
                                                N:Cowl(color=#800000) {
                                                   N:Cowl(option=5, color=#800000) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                              N:Cowl(angle=-135) {
                                 N:Cowl(angle=-25) {
                                    N:Cowl(angle=-30, color=#0D0D0D) {
                                       N:Cowl(color=#0D0D0D) {
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(color=#0D0D0D) {
                                                N:Cowl(color=#0D0D0D) {
                                                   N:Cowl(option=5, color=#0D0D0D) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                           N:TrimF(angle=-45) {
                              N:Cowl(angle=-135) {
                                 N:Cowl(angle=-25) {
                                    N:Cowl(angle=-30, color=#0D0D0D) {
                                       N:Cowl(color=#0D0D0D) {
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(color=#0D0D0D) {
                                                N:Cowl(color=#0D0D0D) {
                                                   N:Cowl(option=5, color=#0D0D0D) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                              N:Cowl(angle=135) {
                                 N:Cowl(angle=25) {
                                    N:Cowl(angle=30, color=#800000) {
                                       N:Cowl(color=#800000) {
                                          N:Cowl(color=#800000) {
                                             N:Cowl(color=#800000) {
                                                N:Cowl(color=#800000) {
                                                   N:Cowl(option=5, color=#800000) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                           N:Trim(angle=90) {
                              N:Cowl(angle=-135) {
                                 N:Cowl(angle=-25) {
                                    N:Cowl(angle=-30, color=#0D0D0D) {
                                       N:Cowl(color=#0D0D0D) {
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(color=#0D0D0D) {
                                                N:Cowl(color=#0D0D0D) {
                                                   N:Cowl(option=5, color=#0D0D0D) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                              N:Cowl(angle=135) {
                                 N:Cowl(angle=25) {
                                    N:Cowl(angle=30, color=#0D0D0D) {
                                       N:Cowl(color=#0D0D0D) {
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(color=#0D0D0D) {
                                                N:Cowl(color=#0D0D0D) {
                                                   N:Cowl(option=5, color=#0D0D0D) { }
                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                              N:Chip() { }
                              S:Chip() {
                                 S:Chip() { }
                              }
                           }
                           W:Jet(angle=-135, power=B2, option=2, color=#0D0D0D) { }
                           E:Jet(angle=-135, power=B2, option=2, color=#0D0D0D) { }
                           S:Chip() {
                              W:Jet(angle=-135, power=B3, option=2, color=#0D0D0D) { }
                              E:Jet(angle=-135, power=B3, option=2, color=#0D0D0D) { }
                              N:Frame(angle=90) {
                                 N:Weight(angle=-90, option=2) { }
                              }
                              S:Chip() {
                                 S:Chip() {
                                    S:Weight(color=#0D0D0D) {
                                       S:Chip(color=#0D0D0D) { }
                                       W:Frame(option=1, color=#0D0D0D) {
                                          S:Chip(angle=DiveB, color=#0D0D0D) { }
                                       }
                                       W:Cowl(option=4, color=#0D0D0D) { }
                                       E:Frame(option=1, color=#0D0D0D) {
                                          S:Chip(angle=DiveB, color=#0D0D0D) { }
                                       }
                                       E:Cowl(option=3, color=#0D0D0D) { }
                                       S:Frame(angle=-30, option=1) {
                                          S:RLW(angle=120, power=-Eng, color=#C5B601) {
                                             E:Frame(angle=60, option=1) {
                                                W:Trim(angle=60, color=#C5B601) { }
                                             }
                                             W:Frame(angle=60, option=1) {
                                                E:Trim(angle=60, color=#C5B601) { }
                                             }
                                             N:Frame(angle=60, option=1) {
                                                S:Trim(angle=60, color=#C5B601) { }
                                             }
                                             S:Frame(angle=60, option=1) {
                                                N:Trim(angle=60, color=#C5B601) { }
                                             }
                                          }
                                       }
                                       S:Frame(angle=30, option=1) {
                                          S:RLW(angle=-120, power=-Eng, color=#C5B601) {
                                             E:Frame(angle=-60, option=1) {
                                                W:Trim(angle=-60, color=#C5B601) { }
                                             }
                                             W:Frame(angle=-60, option=1) {
                                                E:Trim(angle=-60, color=#C5B601) { }
                                             }
                                             N:Frame(angle=-60, option=1) {
                                                S:Trim(angle=-60, color=#C5B601) { }
                                             }
                                             S:Frame(angle=-60, option=1) {
                                                N:Trim(angle=-60, color=#C5B601) { }
                                             }
                                          }
                                       }
                                    }
                                    S:Trim(angle=90, color=#0D0D0D) {
                                       S:Chip(angle=-Rudd, color=#0D0D0D) {
                                          E:Chip(color=#0D0D0D) { }
                                          W:Chip(color=#800000) { }
                                       }
                                       W:Cowl(option=4, color=#800000) { }
                                       E:Cowl(option=3, color=#0D0D0D) { }
                                    }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=-135) {
                           N:Cowl(angle=-25) {
                              N:Cowl(angle=-30, color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) {
                                    N:Cowl(color=#0D0D0D) {
                                       N:Cowl(color=#0D0D0D) {
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(option=5, color=#0D0D0D) { }
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=135) {
                           N:Cowl(angle=25) {
                              N:Cowl(angle=30, color=#800000) {
                                 N:Cowl(color=#800000) {
                                    N:Cowl(color=#800000) {
                                       N:Cowl(color=#800000) {
                                          N:Cowl(color=#800000) {
                                             N:Cowl(option=5, color=#800000) { }
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        W:Jet(angle=-135, power=B2, option=2) { }
                        E:Jet(angle=-135, power=B2, option=2) { }
                        N:Frame(angle=90) {
                           N:Weight(angle=90, option=2) { }
                        }
                     }
                     W:Frame(angle=105, option=1) {
                        W:Frame(angle=150, option=1) {
                           W:Frame(angle=-75, option=1) {
                              E:Trim(angle=roll) { }
                           }
                        }
                     }
                     E:Frame(angle=105, option=1) {
                        E:Frame(angle=150, option=1) {
                           E:Frame(angle=-75, option=1) {
                              W:Trim(angle=roll) { }
                           }
                        }
                     }
                  }
                  W:Jet(angle=-135, power=B2, option=2) { }
                  E:Jet(angle=-135, power=B2, option=2) { }
               }
               N:Weight() {
                  N:Chip() {
                     N:Cowl(angle=-135) {
                        N:Cowl(angle=-25) {
                           N:Cowl(angle=-20) {
                              N:Cowl() {
                                 N:Cowl(color=#0D0D0D) {
                                    E:Cowl(angle=-100, color=#0D0D0D) { }
                                    W:Cowl(angle=-100, color=#0D0D0D) { }
                                 }
                              }
                           }
                        }
                     }
                     N:Cowl(angle=135) {
                        N:Cowl(angle=25) {
                           N:Cowl(angle=20, color=#800000) {
                              N:Cowl(color=#800000) {
                                 N:Cowl(color=#800000) {
                                    N:Cowl(color=#800000) { }
                                 }
                              }
                           }
                        }
                     }
                     N:TrimF(angle=45) {
                        N:Cowl(angle=135) {
                           N:Cowl(angle=25) {
                              N:Cowl(angle=20, color=#800000) {
                                 N:Cowl(color=#800000) { }
                                 S:Cowl(color=#800000) {
                                    S:Cowl(color=#800000) {
                                       S:Cowl(angle=20, color=#800000) {
                                          S:Cowl(angle=25, option=5, color=#800000) { }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=-135) {
                           N:Cowl(angle=-25) {
                              N:Cowl(angle=-20, color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(color=#0D0D0D) {
                                    S:Cowl(color=#0D0D0D) {
                                       S:Cowl(angle=-20, color=#0D0D0D) {
                                          S:Cowl(angle=-25, option=5, color=#0D0D0D) { }
                                       }
                                    }
                                    N:Cowl(angle=-90, color=#0D0D0D) { }
                                 }
                              }
                           }
                        }
                     }
                     N:TrimF(angle=-45) {
                        N:Cowl(angle=-135) {
                           N:Cowl(angle=-25) {
                              N:Cowl(angle=-20, color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(color=#0D0D0D) {
                                    S:Cowl(color=#0D0D0D) {
                                       S:Cowl(angle=-20, color=#0D0D0D) {
                                          S:Cowl(angle=-25, option=5, color=#0D0D0D) { }
                                       }
                                    }
                                    N:Cowl(angle=-90, color=#0D0D0D) { }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=135) {
                           N:Cowl(angle=25) {
                              N:Cowl(angle=20, color=#800000) {
                                 N:Cowl(color=#800000) { }
                                 S:Cowl(color=#800000) {
                                    S:Cowl(color=#800000) {
                                       S:Cowl(angle=20, color=#800000) {
                                          S:Cowl(angle=25, option=5, color=#800000) { }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     }
                     E:Frame(angle=80, option=1) {
                        E:Frame(angle=-160, option=1) {
                           E:Frame(angle=-100, color=#0D0D0D) {
                              W:Trim(angle=-DiveB, color=#0D0D0D) { }
                           }
                        }
                     }
                     N:Trim(angle=90) {
                        N:Cowl(angle=-135) {
                           N:Cowl(angle=-25) {
                              N:Cowl(angle=-20, color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(color=#0D0D0D) {
                                    S:Cowl(color=#0D0D0D) {
                                       S:Cowl(angle=-20, color=#0D0D0D) {
                                          S:Cowl(angle=-25, option=5, color=#0D0D0D) { }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=135) {
                           N:Cowl(angle=25) {
                              N:Cowl(angle=20, color=#0D0D0D) {
                                 N:Cowl(color=#0D0D0D) { }
                                 S:Cowl(color=#0D0D0D) {
                                    S:Cowl(color=#0D0D0D) {
                                       S:Cowl(angle=20, color=#0D0D0D) {
                                          S:Cowl(angle=25, option=5, color=#0D0D0D) { }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        S:Chip(angle=-Rudd) { }
                        S:Frame(angle=100) {
                           S:Arm(angle=80, power=TORP, option=200000) { }
                        }
                        S:Frame(angle=-100) {
                           S:Arm(angle=-80, power=TORP, option=200000) { }
                        }
                     }
                     N:Chip() {
                        N:Cowl(angle=-135) {
                           N:Cowl(angle=-25) {
                              N:Cowl(angle=-20, color=#0D0D0D) {
                                 N:Cowl() { }
                                 S:Cowl(color=#0D0D0D) {
                                    S:Cowl(color=#0D0D0D) {
                                       S:Cowl(angle=-20, color=#0D0D0D) {
                                          S:Cowl(angle=-25, option=5, color=#0D0D0D) { }
                                       }
                                    }
                                    N:Cowl(angle=65, color=#0D0D0D, effect=#3000) {
                                       N:Cowl(angle=-66, color=#0D0D0D) {
                                          W:Cowl(angle=-90, color=#0D0D0D) {
                                             W:Cowl(angle=-20, color=#0D0D0D) { }
                                          }
                                          E:Cowl(angle=-90, color=#0D0D0D) {
                                             E:Cowl(angle=-20, color=#0D0D0D) { }
                                          }
                                          N:Cowl(angle=-90, color=#0D0D0D) { }
                                          N:Cowl(color=#0D0D0D) {
                                             N:Cowl(color=#0D0D0D) {
                                                N:Cowl(angle=-30, color=#0D0D0D) {
                                                   W:Cowl(angle=-90, color=#0D0D0D) {
                                                      N:Cowl(angle=-90, color=#0D0D0D) { }
                                                   }
                                                   E:Cowl(angle=-90, color=#0D0D0D) { }
                                                   N:Cowl(color=#0D0D0D) {
                                                      W:Cowl(angle=-90, color=#0D0D0D) { }
                                                      E:Cowl(angle=-90, color=#0D0D0D) { }
                                                   }
                                                }
                                                W:Cowl(angle=-90, color=#0D0D0D) {
                                                   W:Cowl(angle=-20, color=#0D0D0D) { }
                                                }
                                                E:Cowl(angle=-90, color=#0D0D0D) {
                                                   E:Cowl(angle=-20, color=#0D0D0D) { }
                                                }
                                             }
                                             W:Cowl(angle=-90, color=#0D0D0D) {
                                                W:Cowl(angle=-20, color=#0D0D0D) { }
                                             }
                                             E:Cowl(angle=-90, color=#0D0D0D) {
                                                E:Cowl(angle=-20, color=#0D0D0D) { }
                                             }
                                          }
                                       }
                                       W:Cowl(angle=-91, color=#0D0D0D) { }
                                       E:Cowl(angle=-91, color=#0D0D0D) { }
                                       S:Cowl(angle=-110, color=#0D0D0D) {
                                          S:Cowl(angle=-140, color=#0D0D0D) {
                                             S:Cowl(angle=-109, color=#0D0D0D) {
                                                W:Cowl(angle=-90, color=#0D0D0D) { }
                                                E:Cowl(angle=-90, color=#0D0D0D) { }
                                                N:Cowl(angle=-80, color=#0D0D0D) { }
                                             }
                                          }
                                       }
                                    }
                                    N:Cowl(angle=-90, color=#0D0D0D) { }
                                 }
                              }
                           }
                        }
                        N:Cowl(angle=135) {
                           N:Cowl(angle=25) {
                              N:Cowl(angle=20, color=#800000) {
                                 N:Cowl(color=#800000) { }
                                 S:Cowl(color=#800000) {
                                    S:Cowl(color=#800000) {
                                       S:Cowl(angle=20, color=#800000) {
                                          S:Cowl(angle=25, option=5, color=#800000) { }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                        W:Jet(angle=-135, power=B2, option=2) { }
                        E:Jet(angle=-135, power=B2, option=2) { }
                        N:Chip() {
                           W:Jet(angle=-135, power=B, option=2) { }
                           E:Jet(angle=-135, power=B, option=2) { }
                        }
                     }
                     W:Jet(angle=-135, power=B2, option=2) { }
                     E:Jet(angle=-135, power=B2, option=2) { }
                     W:Frame(angle=80, option=1) {
                        W:Frame(angle=-160, option=1) {
                           W:Frame(angle=-100, color=#0D0D0D) {
                              E:Trim(angle=DiveB, color=#0D0D0D) { }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
   }
}
Script
{
print 0,"Z/X = Throttle up/down"
print 1,"Up/Down = Set depth"
print 2,"Left/Right = Turn"
print 4,"Set Depth: ",DH,"meters"
print 5,"Speed : ", _VEL()*3600/1852," knots"

if _KEY(0)>(0){
  DH=DH-1/4}

if _KEY(1)>(0){
  DH=DH+1/4}

if _KEY(0)>(0) & _KEY(1)>(0){
  DH=-1
  B=200
  B2=320
  B3=140
  ENG=0
}
if DH>-1 {
   B=0
   B2=0
   B3=0
}
if DH=-1 {
   B=200
   B2=320
   B3=140
}
 
Dpar=-DH-_Y(Hull)
DiveB=-Dpar+_TODEG(_AX(Hull))
Roll=-_TODEG(_AZ(Hull))-Bank}
avatar
Maurice
Hover
Hover

Posts : 153
Join date : 2011-10-07
Age : 22
Location : The early 1970's

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by MrSparks on Wed May 30, 2012 5:40 pm

Maurice wrote:I do have one operational note, at full speed, which I am sure you will be at most of the time, the set depth gauge is 5 meters lower than actual depth.

I have a few more regarding the same system.
Depth control doesn't function at speeds less than 7 knots (what is it with automated systems on watercraft and speeds under 7 knots?)
At full stop; depth greater than -1 results in the sub candlesticking to 100m down, but -1 results in resting at the surface.
At 10 knots the depth is 5 greater than set.
At ~14 knots the depth is accurate.
At 27.5 knots the depth is 5 shallower than set.
At ~32.7 knots(max cruising speed) the depth is ~6 shallower than set.

Going deeper than 100m is a very bad idea.

MrSparks
Tank
Tank

Posts : 73
Join date : 2012-01-05
Age : 27
Location : Michigan

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by Maurice on Wed May 30, 2012 10:57 pm

Yeah, there are a few issues, and I can explain all of them.

Depth control doesn't function at speeds less than 7 knots (what is it with automated systems on watercraft and speeds under 7 knots?)
The reason for this is that at this low of a speed, the force of air resistance (or really water resistance, but RC acts as though they are one and the same) is not of a large enough magnitude to actually change the attitude of the submarine.

At full stop; depth greater than -1 results in the sub candlesticking to 100m down, but -1 results in resting at the surface.
This is because I designed the ballast system to be an "all-or-nothing" system. Below -1 meter, all of the ballast balloons immediately have their power set to 0. The propellers on the back are actually VERY buoyant and cause the back end to rise when the power and ballasts are zero.

At 10 knots the depth is 5 greater than set.
At ~14 knots the depth is accurate.
At 27.5 knots the depth is 5 shallower than set.
At ~32.7 knots(max cruising speed) the depth is ~6 shallower than set.
This is all due to the design of the submarine. At low speeds, it noses down. At high speeds , it noses up. Below 14 knots, the depth control system has difficulty countering this nose-down habit, and the actual depth is lower than set. Above 14 knots, the depth control system has difficulty countering the nose-up force, and the actual depth is higher than set.

Going deeper than 100m is a very bad idea.
Indeed it is. For some reason, this depth is the maximum depth for all large submarines. It is for all of mine, and all of EDO's. My guess is that there is some large change in the level of air resistance at this point (the actual point is somewhere betwixt 101 and 103 meters).
avatar
Maurice
Hover
Hover

Posts : 153
Join date : 2011-10-07
Age : 22
Location : The early 1970's

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by MrSparks on Thu May 31, 2012 9:47 am

Maurice wrote: I designed the ballast system to be an "all-or-nothing" system.

Why?

MrSparks
Tank
Tank

Posts : 73
Join date : 2012-01-05
Age : 27
Location : Michigan

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by Rainman on Thu May 31, 2012 10:08 am

Maurice wrote:Yeah, there are a few issues, and I can explain all of them...

(etc. etc.)


If you have an interest in mitigating this, I would suggest broadening the sweep of all your attitude-control variables and then adding a new variable into the control formulas that multiplies each by a factor based on current speed. That way you can get a scaled response that will hopefully result in a more consistent and accurate depth control system.

Something like this, maybe; just tweak the constants until you get numbers that suit your system:
Code:

ScaleFactor=1
If ScaleFactor<1{ScaleFactor=1}
If _VEL()<[whatever 7 knots translates to in m/s]{ScaleFactor=_VEL} //Greatly magnifies the control surface angle at low speeds proportional to the speed, to compensate for lower resistance forces. You'll probably need to fiddle around multiplying _VEL() by some factor to get it matched properly.
If _VEL()>[whatever 14 knots translates to in m/s]{ScaleFactor=_VEL/[Arbitrary constant; about half the speed would probably be good.]} //Moderately magnifies the control surface angle at high speeds proportional to the speed, to compensate for higher body drag forces
//Alternately, if the disparity at high speeds is more-or-less constant,
If _VEL()>[whatever 14 knots translates to in m/s]{ScaleFactor=1.25}
//You can just set the factor to a suitable constant. I picked an arbitrary one.
//If either part of the code causes the vehicle to compensate in the wrong direction somehow, changing the sign of the factor should alleviate it.

I've used speed-adjustment-factor codes like this to good effect in improving the handling for my models, such as the steering and braking systems for my Grey Mamba .

----------------------------------
Sorry I didn't respond with more than just critique/improvement suggestions; I'm sure the sub is typical of your quality and fun-to-pilot designs, but unforunately I'm stuck on a Linux machine for the moment so I haven't had the opportunity to play around with it yet. Sad
avatar
Rainman
Tank
Tank

Posts : 80
Join date : 2011-02-14
Age : 25
Location : New England, US

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by Maurice on Sat Jun 02, 2012 5:34 pm

The reason for the ballast system being all-or-nothing is really a matter of laziness, MrSparks. I really did not want to test and retest to find out what ballast gave the model neutral buoyancy, nor did I want to script it to set the ballasts to that number when stopped, zero when moving, and full when at the surface. But it turned out okay, to me at least, because in reality, an Alfa would only be stationary if it was at the dock, surfaced (which, I will admit, was most of the time). Alfas were fast attack submarines, designed to intercept American SSN's and SSBN's. If they were out of the harbor, they were moving, FAST.

And Rainman, that might help with the high speed and low speed problems, but I don't think that it would help below 7 knots. It's just too slow for air resistance to be effective. I have several aircraft with airbrakes, and they do not help at all below 50 km/h in air, no matter what the deflection is. I think that there might be some sort of threshold for air resistance affecting things.
avatar
Maurice
Hover
Hover

Posts : 153
Join date : 2011-10-07
Age : 22
Location : The early 1970's

View user profile

Back to top Go down

Re: Alfa-class Submarine

Post by Sponsored content


Sponsored content


Back to top Go down

View previous topic View next topic Back to top

- Similar topics

 
Permissions in this forum:
You cannot reply to topics in this forum