Forum Koga • Strona główna - Koga Portal - Modele - Żaglowce - Statki - Okręty - Forum modelarskie • SSN-688 - Strona 96
Strona 96 z 101

Re: SSN-688

: 01 wrz 2011, 13:13
autor: stefan
A co? kibelek rozsadziło?

Re: SSN-688

: 01 wrz 2011, 13:17
autor: bartes123
Nie chcę znowu czarnowidztwa uprawiać, ale popracowałem trochę w urzędzie pracy a następnie w instytucie. Czasem możesz najeździć się tyle samo czasu, co model budujesz. Szybciej byłoby ufundować Szczecinianom kolejną fontannę im. Andrzeja Koryckiego i w niej sobie próby porobić.
Miejska fontanna to jednak miejska fontanna - jak szybko biegasz możesz się w niej i bezkarnie zesrać. Ale okrętu podwodnego nie zwodujesz...

Re: SSN-688

: 01 wrz 2011, 13:27
autor: oksal
:cry: To jesteś skazany na fontannę w Tczewie.

Re: SSN-688

: 01 wrz 2011, 14:06
autor: Andrzej1
oksal pisze::cry: To jesteś skazany na fontannę w Tczewie.


Witaj, Adamie i Ty Kogowiczu

W/w wyrok nie jest ciężki, a wręcz powiem, że jestem z niego dumny.
Ale byłoby dobrze, aby w Tczewie model zachowywał się zgodnie z Waszymi, Drodzy
Przyjaciele, oczekiwaniami. A to jest związane z przeprowadzeniem wielu prób i korekt
oprogramowania. Będę musiał, prawdopodobnie, wynaleźć kilka razy koło i odkryć, że to Ziemia
do okoła Słońca krąży a nie odwrotnie.
Ale obiecuję, Wam, że nie odpuszczę. Dopóki tuszu w drukarce (mam zapas) i tchu
w piersiach (Tomasz_D i inni słyszeli).

Z ukłonami
Andrzej Korycki

P.S. Pismo do ZUK jest identycznej treści co do UM. I mam stempelek, że wpłynęło, tą razą czarny.
P.S.P.S.
bartes123 pisze:...
Miejska fontanna to jednak miejska fontanna - jak szybko biegasz możesz się w niej i bezkarnie zesrać. Ale okrętu podwodnego nie zwodujesz...

Zwoduję.

Re: SSN-688

: 04 wrz 2011, 12:30
autor: Andrzej1
Witam

Tą razą mam dwa (słownie 2) zdania do napisania :
Po pierwsze primo : LAla wczoraj machała śrubą w rybkariumie, jest nieżle.
I pytanie : Na mojej apartaturze są dwa dwa trymery z napisem CH1 i CH2 i etykietą ATV.
Co to ?
Uprzejmie proszę wyjadaczy RC o jakąś informację.

Z ukłonami
Andrzej Korycki

P.S.
W środę spodziewam się reakcji ZUK,u.

Re: SSN-688

: 04 wrz 2011, 20:44
autor: rychenko
Witaj Andrzeju
ATV służy to ustawienia końcowych punktów wychyleń serwa, a CH 1 CH2 to kanały jakie ta funkcja ustawia.
;)

Re: SSN-688

: 05 wrz 2011, 00:06
autor: Andrzej1
Witam

Dziękuję Ci Ryszardzie. Zrobiłem się okropnie "mondry".
Nie będę tym kręcił, bo nie. I tak ustawiam wszystko w programie.

Ponieważ nie mam wyobrażenia żadnego, jak sterować zanurzaniem okrętu, to znaczy nie wiem jak mają ze sobą współpracować stery głębokości, zbiorniki balastowe i dżojstik na aparaturze, to wymyśliłem, że będę ustawiał ile wody ma nabrać zbiornik dziobowy. Rufowy ma się dostosować tak, aby inklinometr
wskazywał zero przechyłu na dziób. W ten sposób zanurzę okręt. Jak to będzie wyglądało w praniu
jeszcze nie wiem. Funkcje sterujące zbiornikiem dziobowym wyglądają tak :

Kod: Zaznacz cały

unsigned char MocSilnWZalOdOdleglZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{
   int nrImp = CalkujImpulsyZbiornika( zbiornik );
   nrImp -= NumerZadanyImp;
   if ( nrImp < 0 )nrImp = -nrImp;
   if ( nrImp > 100 )return PELNA_MOC;
   if ( nrImp > 70 )return TRZY_CZWARTE_MOCY;
   if ( nrImp > 40 )return POL_MOCY;
   if ( nrImp > 25 )return JEDNA_CZWARTA_MOCY;
   
   return JEDNA_OSMA_MOCY;
}

unsigned char ZatrzymacSilnikZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{
   int nrImp = CalkujImpulsyZbiornika( zbiornik );
   nrImp -= NumerZadanyImp;
   if ( nrImp < 0 )nrImp = -nrImp;
   if ( nrImp < 8 )return 1;
   return 0;
}


void SetPolozenieTlokaZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{
   int nrImp = CalkujImpulsyZbiornika( zbiornik );
   unsigned char moc = MocSilnWZalOdOdleglZbiorniki( zbiornik, NumerZadanyImp );
   unsigned char kierunek;
   if ( IsSilnikZbiornikaBusy( zbiornik ) )return;
   kierunek = GetKierunekObrotowSilnikZbiornika( zbiornik );
   
   if ( nrImp > NumerZadanyImp )
   {// powinien oprozniac
      switch( StanSilnika( zbiornik ) )
      {
      case SILNIK_STOI:
         if( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )return;
         if ( SILNIK_NAPELNIA == kierunek )
         {
            KierunekObrotowSilnikaZbiornika( zbiornik, OPROZNIAJ_ZBIORNIK);
            return;
         }
         SetMocSilnikaZbiornika( zbiornik, moc );
         SilnikZbiornikaOn( zbiornik );
         break;
      case SILNIK_NAPELNIA:
         SilnikZbiornikaOff( zbiornik );
         return;
      case SILNIK_OPROZNIA:
         SetMocSilnikaZbiornika( zbiornik, moc );
         if ( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )   SilnikZbiornikaOff( zbiornik );
         break;
      case SILNIK_BUSY:
         break;
      }
      
   }
   else if ( nrImp == NumerZadanyImp )
   {
      SilnikZbiornikaOff( zbiornik );
      SetMocSilnikaZbiornika( zbiornik, moc );
   }
   else
   {// powinien napelniac
      switch( StanSilnika( zbiornik ) )
      {
      case SILNIK_STOI:
         if( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )return;
         if ( SILNIK_OPROZNIA == kierunek )
         {
            KierunekObrotowSilnikaZbiornika( zbiornik, NAPELNIAJ_ZBIORNIK);
            return;
         }
         SetMocSilnikaZbiornika( zbiornik, moc );
         SilnikZbiornikaOn( zbiornik );
         break;
      case SILNIK_NAPELNIA:
         SetMocSilnikaZbiornika( zbiornik, moc );
         if ( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )   SilnikZbiornikaOff( zbiornik );
         return;
      case SILNIK_OPROZNIA:
         SilnikZbiornikaOff( zbiornik );
         break;
      case SILNIK_BUSY:
         break;
      }
      
   }
}
// Impulsy z nadajnika maja od 264 do 468
// To ma sie odwzorowac na 1100 impulsow impulsatora
// tylko sterowanie tylko zbiornikiem dziobowym

void SetPolozenieTlokaZbiornikaDzZbiorniki( void )
{
   int nrImp;
   cli();
   nrImp = iRCDlugImpZanurzenia;
   sei();
   if( nrImp < 264 )nrImp = 264;
   if( nrImp > 458 )nrImp = 458;
   nrImp -= 264; //Zmienna od 0 do 194
   nrImp *= 57;
   nrImp /=10;
   SetPolozenieTlokaZbiorniki( ZBIORNIK_DZIOBOWY, nrImp );

}


i działają. To znaczy macham dżojstikiem, a zbiornik się "rusa".
Dokładność ustawienia zbiornika = 2 impulsy to jest kilka gramów wagi modelu.
O kolejnej "surażce lub pokcesie" za poniedługo.
Z ukłonami
Andrzej Korycki

Re: SSN-688

: 05 wrz 2011, 20:12
autor: Slawek Kromer

Re: SSN-688

: 06 wrz 2011, 00:30
autor: Andrzej1
Witam

Dzięki Ci Sławku za link. Modele O.P. oglądam z dużą przyjemnością. Na tym filmie widać, że
i tamten model ma kłopoty z utrzymaniem poziomu gdy się nie porusza.

Oto pierwsza próba LAli sterowanej radiem z pełną, choć jeszcze nieco niezdarną funkcjonalnością :

http://www.youtube.com/watch?v=dBLNjn-g4SQ

Dama trzyma się troszku krzywo, ale wypiła zbyt dużo i cóż : dupka opadła.

Sam program, który nią sterował na polecenia z aparatury wyglądał tak :

Kod: Zaznacz cały

void TestSterowaniaGlebokoscia20110904( void )
{
   int czas;

   SilnikGlownyOff();   
   BootWaterOnBoardMain();

   OpoznienieNaStarcie10Sek();

   InitZbiorniki();
   PORTA &= ~_BV(LED_GREEN);

   while( !ShipInTheWater() );
   czas = GetIntSecondMain();
   while( ( GetIntSecondMain() - czas ) < 2 );
   
   for(;;)
   {
      ZmianaGlebokosciImpZbiorniki( );
      SterowanieSilnikiemGlownym();
      SterowanieZaworemNapowietrzaniaMain();
      SteryGlebokosciMain();
      
      if ( !ShipInTheWater() )
      {
         InitZbiorniki();
         for(;;);
      }
      
   }
}


i nie był za zbytnio skomplikowany. Oczywiście nie widać tu szczegółów, ale ... .
Do fontanny coraz bliżej.

Z ukłonami
Andrzej Korycki

Re: SSN-688

: 06 wrz 2011, 14:29
autor: radek
Andrzeju z czego wynika fakt, że okręt nie zanurza się równo?
Zagadnienie pewnie dosyć skomplikowane (w tym pewnie położenie tłoków, ustalenie środka ciężkości, program itd) ale chciałbym się dowiedzieć, jakiego typu problemy są problemami głównymi i czy nie da się wprowadzić jakiegoś programowego regulatora PID który by to wyrównywał.

Może Twoja odpowiedź już padła w tym wątku, ale prawdopodobnie w kodzie, w który nie jestem w stanie wniknąć nie znając struktury we-wy oraz układu sprzężeń zwrotnych.

Pozdrawiam.