SSN-688

Relacje z budowy tych jednostek
Awatar użytkownika
bartes123
Posty: 759
Rejestracja: 04 gru 2010, 21:56

Re: SSN-688

Post autor: bartes123 »

"No, do góry... Nie chce???"

hahahaha - brawo Andrzeju. Widać że z każdym dniem coraz bliższy jesteś celu. A LAla zanurza się na określoną głębokość, czy zachowuje się niczym Titanic waląc bezbłędnie w kierunku dna? No i czy to normalne że wydaje odgłosy niczym szczęśliwa foka?? A jak ma "żywy model" kwestię napędu? Też robi "kla kla kla"?

A oprócz tego zaczynam sobie pomału uświadamiać prawdę tekstu, który pojawił się przed bodajże "Karmazynowym Przypływem":
"Trzech najważniejszych ludzi na świecie to:
Prezydent USA, prezydent Rosji
i kapitan okrętu podwodnego, uzbrojonego w rakiety balistyczne."

http://youtu.be/feGRIu_7nmw


PS. Pytanie do naszego bossa Randąsława - czy można bezpośrednio "wrzucać" film z youtuba przez kod "umieść", czy tylko odnośniki?
Awatar użytkownika
Jarek
Posty: 536
Rejestracja: 04 gru 2010, 21:56

Re: SSN-688

Post autor: Jarek »

Andrzeju, a nie myślałeś nad przekładnią obrotów silnika ? Z filmiku wydaje mi się, że model ma za wysokie obroty i za szybko pływa. Takie jest moje zdanie. Zawsze wyobrażałem sobie, że model okrętu podwodnego pływa zarówno na powierzchni jak i pod wodą powoli i majestatycznie. Twoja "Lala" idzie jak torpeda, a chyba nie powinno tak być. Po za tym mniejsze obroty może zlikwidowały by to chlapanie śrubą. Co Ty na to ?
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

Re: SSN-688

Post autor: Andrzej1 »

Witam
I dziękuję, Panom za pochylenie się nad problemem LAli.

Bartek, na razie sterowanie zanurzaniem jest jakie jest. Ale, jak pisalem, jest pomysł na inne,
w moim pojęciu lepsze. Pokazałem jak było. Nie pokazałem jak wyciągałem ją sitkiem,
bo w ręku miałem sitko a nie aparat. Tak na wszelki wypadek miałem na sobie kąpielówki.

A teraz Jarek :
Przekładnie były planowane i obecne. W wersji pierwszej (silnik 600 - za duży) :
01.JPG


I aktualny silnik klasy 480 :
02.JPG


Sprzęgło na zdjęciu służyło WYŁĄCZNIE do centrowania silnika względem wału.
A obroty śruby, cóż mogę zrobić dowolne, ale cała naprzód powinna chlapać.
A w tym wypadku, gdy model nie reaguje na aparaturę, to normalne jest, że sterujący
ustawia więcej aby zareagował, a gdy to nie działa, to jeszcze więcej i tak do
max. Wreszczie zadziała ale z maksymalną prędkością. Stąd te wrażenia. Zdaję sobie
z tego sprawę ale na razie nie znam przyczyny. Na dnie działa ster kierunku
(bezpośrednio z aparatury), a silnik główny nie chce. Czyli sygnał
przechodzi przez wodę, tylko nie przechodzi przez mój program.
Kiedyś to znajdę, no będę szukał. Na razie kupiłem drugą aparaturę (jeszcze nie przyszła)
co by wyeliminować aparaturę jako przyczynę.

Z ukłonami
Andrzej Korycki
Awatar użytkownika
Jarek
Posty: 536
Rejestracja: 04 gru 2010, 21:56

Re: SSN-688

Post autor: Jarek »

Andrzej1 pisze:
Sprzęgło na zdjęciu służyło WYŁĄCZNIE do centrowania silnika względem wału.
A obroty śruby, cóż mogę zrobić dowolne, ale cała naprzód powinna chlapać.
A w tym wypadku, gdy model nie reaguje na aparaturę, to normalne jest, że sterujący
ustawia więcej aby zareagował, a gdy to nie działa, to jeszcze więcej i tak do
max. Wreszczie zadziała ale z maksymalną prędkością. Stąd te wrażenia. Zdaję sobie
z tego sprawę ale na razie nie znam przyczyny. Na dnie działa ster kierunku
(bezpośrednio z aparatury), a silnik główny nie chce. Czyli sygnał
przechodzi przez wodę, tylko nie przechodzi przez mój program.
Kiedyś to znajdę, no będę szukał. Na razie kupiłem drugą aparaturę (jeszcze nie przyszła)
co by wyeliminować aparaturę jako przyczynę.

Z ukłonami
Andrzej Korycki


Z tego opisu to tak wynika jakby sterowanie silnikiem było nieproporcjonale. A może podłączyć silnik bezpośrednio pod kanał w odbiorniku i ominąć Twój komputer. Nie pamiętam w Twojej relacji czy zastosowałeś regulator obrotów ( a szukać mi się nie chce na stu stronach), czy jest zintegrowany z Twoim komputerem pokładowym na Lali. Spróbuj silnik podłączyć pod oddzielny regulator. Musi zadziałać. Jeżeli nie to wtedy wina radia. W innym wypadku musisz szukać rozwiązania problemu w Twoim komputerze pokładowym.
Awatar użytkownika
antosiek
Posty: 464
Rejestracja: 04 gru 2010, 21:55

Re: SSN-688

Post autor: antosiek »

Ten problem z silnikiem jest widoczny na filmach. A sprawdzałeś ten silnik z pominięciem swojej elektroniki. Może w nim tkwi przyczyna lub w przekładni. Pomierz napięcie na silniku w czasie pracy.
Jeszcze jedno. Docierałeś silnik? Jak nie to jest prosta metoda. Przyłożyć z 2/3 napięcia nominalnego i zanurzyć na kilka sekund do wody destylowanej (uwaga chlapie). Potem do spirytusu żeby związać wodę i niech sobie wyschnie z 24h. Po kropelce oliwki w każdą panewkę i po takim zabiegu masz idealnie dotarte szczotki.
Co Ci pozwolono kupić z budżetu rodzinnego.
Awatar użytkownika
Jarek
Posty: 536
Rejestracja: 04 gru 2010, 21:56

Re: SSN-688

Post autor: Jarek »

O kurcze o takim docieraniu to jeszcze nie słyszałem. No cóż człowiek podobno uczy się całe życie. ;)
Ale czy takie zabiegi są konieczne ? Czy nie wystarczy włączyć silnik na sucho i niech sobie chodzi aż akumulatory wyczerpie ? Wtedy szczotki chyba też się ułożą na komutatorze ? Zresztą po tylu próbach to chyba już dotarte ?
Awatar użytkownika
oksal
Posty: 1879
Rejestracja: 04 gru 2010, 21:55

Re: SSN-688

Post autor: oksal »

Andrzej, Oskar za La'le Ci się należy, ujęcie "zejścia" ewentualnie "upadku" GWIAZDY na same dno jest rewelacyjne- Twoja myśl techniczna jest górą i GUR'y też:) Jeszcze raz namawiam abyś GUR'ę do Tczewa na zjazd porwał (jeżeli odmawia;) lu b w przeciwnym wypadku zaprosił . Chyba powinienem to w odwrotnej kolejności napisać:)
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

Re: SSN-688

Post autor: Andrzej1 »

Moje życzene jest dla Pana rozkazem,
odwrotnie, może czy co ? Pewności nie ma całkiem.

Z ukłonami
Andrzej Korycki

P.S.
Będę próbował namówić Gurę.
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

Re: SSN-688

Post autor: Andrzej1 »

Witam

Kolejne eksperymenty za mną. Stabelaryzowałem impulsy przychodzące
ze zbiorników. Odciążyłem nieco przerwanie zegarowe jednomilisekundowe.
Tabelaryzowanie przeprowadzałem na programie, który zmieniał napełnienie
zbiornika dziobowego na rozkaz z aparatury, a rufowy miał doprowadzić okręt
do poziomu. Naniosłem pomierzone punkty na wykres. Otrzymane punkty
zaaproksymowałem trzema odcinkami prostej jak w programie :

Kod: Zaznacz cały

unsigned char MocSilnWZalOdOdleglZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{// Ustawia moc silnika zbiornika w zaleznosci od aktualnej ilosci impulsow
 // Silnik rufowy ma wieksze opory
   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 > 45 )return POL_MOCY;
   if ( nrImp > 25 )return JEDNA_CZWARTA_MOCY;
   return JEDNA_OSMA_MOCY;
/*   
   
   if ( ZBIORNIK_DZIOBOWY == zbiornik )
   {// Silkik dziobowy ma mniejsze opory
      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;
   }
   else
   {// zbiornik rufowy ma wieksze opory
      
      if ( nrImp > 70 )return PELNA_MOC;
      if ( nrImp > 30 )return TRZY_CZWARTE_MOCY;
      if ( nrImp > 15 )return POL_MOCY;
      return JEDNA_CZWARTA_MOCY;
   }
*/   
}

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

unsigned char UruchamiacSilnikZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{// 10 - arbitralnie przyjeta strefa nieczulosci
   int nrImp = CalkujImpulsyZbiornika( zbiornik );
   nrImp -= NumerZadanyImp;
   if ( nrImp < 0 )nrImp = -nrImp;
   return ( nrImp > 3 );
}


unsigned char SetPolozenieTlokaZbiorniki( unsigned char zbiornik, int NumerZadanyImp )
{// Zwraca 1 gdy osiągnieto zadane polozenie
 // 0 gdy kontynuowac
   int nrImp = CalkujImpulsyZbiornika( zbiornik );
   unsigned char moc = MocSilnWZalOdOdleglZbiorniki( zbiornik, NumerZadanyImp );
   unsigned char kierunek;
   if ( IsSilnikZbiornikaBusy( zbiornik ) )return 0;
   kierunek = GetKierunekObrotowSilnikZbiornika( zbiornik );
   
   if ( nrImp > NumerZadanyImp )
   {// powinien oprozniac
      switch( StanSilnika( zbiornik ) )
      {
      case SILNIK_STOI:
         if( !UruchamiacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )return 1;
         if ( SILNIK_OPROZNIA != kierunek )
         {
            KierunekObrotowSilnikaZbiornika( zbiornik, OPROZNIAJ_ZBIORNIK);
            return 0;
         }
         SetMocSilnikaZbiornika( zbiornik, moc );
         SilnikZbiornikaOn( zbiornik );
         return 0;
      case SILNIK_NAPELNIA:
         SilnikZbiornikaOff( zbiornik );
         return 0;
      case SILNIK_OPROZNIA:
         SetMocSilnikaZbiornika( zbiornik, moc );
         if ( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )
         {
            SilnikZbiornikaOff( zbiornik );
            return 1;
         }
         return 0;
      case SILNIK_BUSY:
         return 0;
      }
   }
   else if ( nrImp == NumerZadanyImp )
   {
      SetMocSilnikaZbiornika( zbiornik, moc );
      SilnikZbiornikaOff( zbiornik );
      return 1;
   }
   else
   {// powinien napelniac
      switch( StanSilnika( zbiornik ) )
      {
      case SILNIK_STOI:
         if( !UruchamiacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )return 1;
         if ( SILNIK_NAPELNIA != kierunek )
         {
            KierunekObrotowSilnikaZbiornika( zbiornik, NAPELNIAJ_ZBIORNIK);
            return 0;
         }
         SetMocSilnikaZbiornika( zbiornik, moc );
         SilnikZbiornikaOn( zbiornik );
         return 0;
      case SILNIK_NAPELNIA:
         SetMocSilnikaZbiornika( zbiornik, moc );
         if ( ZatrzymacSilnikZbiorniki( zbiornik, NumerZadanyImp ) )   
         {
            SilnikZbiornikaOff( zbiornik );
            return 1;
         }
         return 0;
      case SILNIK_OPROZNIA:
         SilnikZbiornikaOff( zbiornik );
         return 0;
      case SILNIK_BUSY:
         return 0;
      }
   }
   return 0;
}


unsigned char SetPolozenieTlokowZbiornikowImpulsyRC( void )
{// Zawiera wyniki doswiadczenia z 02-11-2011
   int nrImpDz;
   int nrImpRu;
//   static unsigned char ZbiornikiZainicjowane = 1;
   
   // Zmienne kontrolne uzywane do wysylania przez RS
   int impDz = 0, impRu = 0;
   static int impDz1 = 0, impRu1 = 0;
//   int iDlugImp;
   // Koniec zmiennych wysylanych przez RS
   
   nrImpDz = iRCDlugImpZanurzenia;
//   iDlugImp = nrImpDz;
   
   if( nrImpDz < 264 )nrImpDz = 264;
   if( nrImpDz > 458 )nrImpDz = 458;
   nrImpDz -= 264; //Zmienna od 0 do 194
// Przedzial od 0 do 194 podzielony na trzy częsci
// 0 - 10 Napelniany jest zbiornik dziobowy - zbiornik rufowy stoi
// Zbiornik dziobowy napelniany od 0 do 230 impulsow

   impDz = CalkujImpulsyZbiornika( ZBIORNIK_DZIOBOWY );
   impRu = CalkujImpulsyZbiornika( ZBIORNIK_RUFOWY );   
   
   if ( nrImpDz < 10 )
   {
      nrImpDz = 23 * nrImpDz;
      nrImpRu = 0;
   }
   else if( nrImpDz < 40 )
   {// 10 - 39 calkowite zanurzenie kadluba - bez kiosku
    // dziobowy od 230 do 534
    // rufowy od 0 do 400
      nrImpDz -= 10;          // od 0 do 29
      nrImpRu = 395 * nrImpDz;   // / 29;
      nrImpRu /= 29;
   
      nrImpDz = 304 * nrImpDz;
      nrImpDz /= 29;
      nrImpDz += 230;
      
   }
   else if ( nrImpDz < 80 )
   {// Przedzial od 39 do 194 to przedzial sterowania przu zanurzonym kadlubie
   // Na jeden impuls przypada zmiana 0.57g wagi modelu.
      nrImpRu = 395;
      nrImpDz = 534;
   }
   else
   {
      nrImpDz -= 80;
      nrImpRu = 395 + nrImpDz;
      nrImpDz = 532 + nrImpDz;
   }
   
//   ZbiornikiZainicjowane = 0;
   
   SetPolozenieTlokaZbiorniki( ZBIORNIK_DZIOBOWY, nrImpDz );
   SetPolozenieTlokaZbiorniki( ZBIORNIK_RUFOWY, nrImpRu );
L_Display:   
// Kontrolne wysylanie polozen przez RS
//   impDz = CalkujImpulsyZbiornika( ZBIORNIK_DZIOBOWY );
//   impRu = CalkujImpulsyZbiornika( ZBIORNIK_RUFOWY );   
   if( ( impDz != impDz1 ) || ( impRu != impRu1 ) )
   {
      impDz1 = impDz;
      impRu1 = impRu;
      WyslijZnak( 'D' );
      WyslijInt( impDz );
      WyslijZnak( 'R' );
      WyslijInt( impRu );
//      WyslijZnak( 'I' );
//      WyslijInt( iDlugImp );
   }
   
   return 0;
}


Musiałem nieco zmienić pomierzone wartości aby model zachowywał się dobrze
A zachowuje się tak :

http://www.youtube.com/watch?v=UpfX8kxyrWQ

Teraz , zgodnie z sugestią Gury, będzie trzeba przekonstruować aparaturę, co by
było łatwiej tym sterować. Drążek z lewej strony zastąpimy potencjometrami, jeden
będzie ustalał zanurzenie a drugi prędkość obrotów silnika. Prawy drążek to będą stery.
Pozostaje do dopracowania jeszcze algorytm zanurzania, ale zmiany będą niewielkie,
jak sądzę.

Z ukłonami
Andrzej Korycki
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

Re: SSN-688

Post autor: Andrzej1 »

Witam

Rozkręciłem aparaturę. Ujrzałem taki oto widok :
01a.JPG


Mimo oporów wyjąłem takie oto :
02a.JPG


Wybaczcie jakość zdjęć, ale to wszystko jest czarne i wyszło tak jak trzech
murzynów w ciemnej sieni.
Teraz trzeba wymyśleć czym zastąpić ten zestaw dźwigni i popychaczy.

Z ukłonami
Andrzej Korycki
ODPOWIEDZ