Witam
Po drobnych kłopotach z aprowizacją, uzupełniłem elektronikę na zbiorniku, na razie dziobowym.
Zbiornik dziobowy jest bliżej "końputera", to może on ... .
Oto stan przed i po :
Użyte materiały :
Jeszcze jeden drobiazg i można przystąpić do prób.
Z ukłonami
Andrzej Korycki
SSN-688
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Znalazłem błąd w programie.
Czujnik jest wymontowany z aparatu do mierzenia ciśnienia (lekarskiego).
W aparacie ciśnienie atmosferyczne stosowane jest jako ciśnienie odniesienia. W okręcie ciśnienie
się zmienia, bo powietrze jest sprężane przez tłoki zbiorników. Wiedząc o tym, zakleiliśmy
otwory w mierniku za pomocą Poxipolu. Ale albo Poxipol jest porowaty, albo zaklejone zostało
to deko niedokładnie, więc pomiar głębokości przestaje być pomiarem. Oczywiście ciśnienie
się zmienia gdy pracują silniki zbiorników, stąd przypuszczenie o zakłócenia.
Założyłem na zawór odpowietrzający rurkę i pozostawiłem go otwartym. Pomiar ciśnienia
stał się znów pomiarem i okręt zaczął zachowywać się zgodnie z oczekiwaniami.
Poprawka w programie będzie taka :
1. Wylutuję czujnik ciśnienia
2. Spróbuję go uszczelnić malując po wierzchu rzadkim epidianem.
Rzadki epidian z epidianu E53 uzyskuje się podgrzewając go do temperatury ... no
takiej aż stanie się jak woda. Do podgrzewania używam opalarki. Należy uważać aby się
nie zagotował bo ulegnie degradacji. Dodatkowym bonusem podgrzewanego epidianu jest
skrócenie czasu żelowania (do jednej doby).
3. Po trzech dniach zamontuję czujnik i podejmę próby na nowo.
Z ukłonami
Andrzej Korycki
P.S.
Szukanie tego błędu trwało dwa tygodnie. Ciągle błądziłem wokół zakłóceń elektrycznych.
Bo jak pracowały silniki, to było źle. Jak stały - dobrze. LAla jest złośliwą babą, ale
dokonam Poskromienia Złośnicy.
Znalazłem błąd w programie.
Czujnik jest wymontowany z aparatu do mierzenia ciśnienia (lekarskiego).
W aparacie ciśnienie atmosferyczne stosowane jest jako ciśnienie odniesienia. W okręcie ciśnienie
się zmienia, bo powietrze jest sprężane przez tłoki zbiorników. Wiedząc o tym, zakleiliśmy
otwory w mierniku za pomocą Poxipolu. Ale albo Poxipol jest porowaty, albo zaklejone zostało
to deko niedokładnie, więc pomiar głębokości przestaje być pomiarem. Oczywiście ciśnienie
się zmienia gdy pracują silniki zbiorników, stąd przypuszczenie o zakłócenia.
Założyłem na zawór odpowietrzający rurkę i pozostawiłem go otwartym. Pomiar ciśnienia
stał się znów pomiarem i okręt zaczął zachowywać się zgodnie z oczekiwaniami.
Poprawka w programie będzie taka :
1. Wylutuję czujnik ciśnienia
2. Spróbuję go uszczelnić malując po wierzchu rzadkim epidianem.
Rzadki epidian z epidianu E53 uzyskuje się podgrzewając go do temperatury ... no
takiej aż stanie się jak woda. Do podgrzewania używam opalarki. Należy uważać aby się
nie zagotował bo ulegnie degradacji. Dodatkowym bonusem podgrzewanego epidianu jest
skrócenie czasu żelowania (do jednej doby).
3. Po trzech dniach zamontuję czujnik i podejmę próby na nowo.
Z ukłonami
Andrzej Korycki
P.S.
Szukanie tego błędu trwało dwa tygodnie. Ciągle błądziłem wokół zakłóceń elektrycznych.
Bo jak pracowały silniki, to było źle. Jak stały - dobrze. LAla jest złośliwą babą, ale
dokonam Poskromienia Złośnicy.
Ostatnio zmieniony 21 cze 2011, 13:02 przez Andrzej1, łącznie zmieniany 1 raz.
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Na filmie jest LAla z dołączonym urządzeniem do wykazania błędu w programie.
http://www.youtube.com/watch?v=8PQG4zbzdrQ
Urządzenie to, to ta brązowa rurka przyczepiona do odpowietrznika.
Program powinien utrzymać okręt na stałej głębokości około 1 cm pod powierzchnią wody
przez czas 40 sekund, a potem wynurzyć okręt z maksymalną prędkością.
Niestety wyszły mi z głowy wykłady z teorii regulacji i układ się wzbudza.
Już zmodyfikowałem program tak, abym mógł regulować prędkość obrotową silników zbiorników.
Zmiana prędkości odbywa się za pomocą PWM (Pulse Width Modulation) ( zmiana szerokości impulsu).
żeby nie było, żem z NASA, CASA lub SRASA, to wytłumaczę na palcach co to jest :
Normalnie przy zasilaniu silnika podaje się napięcie stałe na jego zaciski. Wtedy pracuje
on z maksymalną prędkością (dla danego napięcia).
Jeżeli jednak w okresach (tu przyjąłem z niczego czyli z głowy) 0.1 sekundy, napięcie podajemy
przez 0.05 sekundy, a przez pozostałe 0.05 sekundy nie, to silnik będzie się obracał wolniej.
Moc, pewnie i prędkość jest proporcjonalna do stosunku :
czas podawania impulsu/(czas podawania impulsu + czas bez impulsu).
Zmiana prędkości obrotowej ułatwi znacznie proces regulacji.
A oto stosowny kawałek programu, wyjęty z przerwania milisekundowego :
Jest tu jescze jeden pomysł : tłoki zbiorników stanowią duże obciążenie dla silnika, a start jeszcze
większe. Dlatego przez pierwsze 40ms silnik dostaje napięcie cały czas niezależnie od ustawionej
wartości w zmiennej cMocSilnika, dopieto po tym włączany jest proces PWM.
Z ukłonami
Andrzej Korycki
Na filmie jest LAla z dołączonym urządzeniem do wykazania błędu w programie.
http://www.youtube.com/watch?v=8PQG4zbzdrQ
Urządzenie to, to ta brązowa rurka przyczepiona do odpowietrznika.
Program powinien utrzymać okręt na stałej głębokości około 1 cm pod powierzchnią wody
przez czas 40 sekund, a potem wynurzyć okręt z maksymalną prędkością.
Niestety wyszły mi z głowy wykłady z teorii regulacji i układ się wzbudza.
Już zmodyfikowałem program tak, abym mógł regulować prędkość obrotową silników zbiorników.
Zmiana prędkości odbywa się za pomocą PWM (Pulse Width Modulation) ( zmiana szerokości impulsu).
żeby nie było, żem z NASA, CASA lub SRASA, to wytłumaczę na palcach co to jest :
Normalnie przy zasilaniu silnika podaje się napięcie stałe na jego zaciski. Wtedy pracuje
on z maksymalną prędkością (dla danego napięcia).
Jeżeli jednak w okresach (tu przyjąłem z niczego czyli z głowy) 0.1 sekundy, napięcie podajemy
przez 0.05 sekundy, a przez pozostałe 0.05 sekundy nie, to silnik będzie się obracał wolniej.
Moc, pewnie i prędkość jest proporcjonalna do stosunku :
czas podawania impulsu/(czas podawania impulsu + czas bez impulsu).
Zmiana prędkości obrotowej ułatwi znacznie proces regulacji.
A oto stosowny kawałek programu, wyjęty z przerwania milisekundowego :
Kod: Zaznacz cały
if ( cZbiornik0Busy )
{
TPWMSlilnika0 = 0;
}
else
{
if ( cStatusSilnika0 & SILNIK_RUN )
{
if ( TPWMSlilnika0 > cMocSilnika0 )
{
PORTA &= ~_BV( Zb1_Silnik ); //Wylacz silnik (napiecie)
}
else
{
PORTA |= _BV( Zb1_Silnik ); //Wlacz silnik (napiecie)
}
if ( ++TPWMSlilnika0 > PELNA_MOC )
{
TPWMSlilnika0 = 0;
}
}
}
Jest tu jescze jeden pomysł : tłoki zbiorników stanowią duże obciążenie dla silnika, a start jeszcze
większe. Dlatego przez pierwsze 40ms silnik dostaje napięcie cały czas niezależnie od ustawionej
wartości w zmiennej cMocSilnika, dopieto po tym włączany jest proces PWM.
Z ukłonami
Andrzej Korycki
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Układ scalony został uszczelniony tak :
Jednak nie dość. Nadmuchanie powietrza do LAli powoduje zmianę wskazań ciśnieniomierza
w stopniu powodującym nieużyteczność tych pomiarów. Nacisk na blaszkę w środku
też powoduje zmianę wskazań.
Na razie nie mam pomysłu.
Z ukłonami
Andrzej Korycki
Układ scalony został uszczelniony tak :
Jednak nie dość. Nadmuchanie powietrza do LAli powoduje zmianę wskazań ciśnieniomierza
w stopniu powodującym nieużyteczność tych pomiarów. Nacisk na blaszkę w środku
też powoduje zmianę wskazań.
Na razie nie mam pomysłu.
Z ukłonami
Andrzej Korycki
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Bronię się jak mogę przed wylutowywaniem układu scalonego.
Na razie próbuję wyeliminować wpływ ciśnienia na górną płaszczyznę układu pomiarowego.
Zeszlifowałem epidian uszczelniający powierzchnię i przykleiłem kwadracik z blachy mosiężnej
1mm. Wydaje się, że na powierzchni 1cm kw nie będzie się odkształcała.
Jeżeli to nie pomoże, to wylutuję układ i bazując na mosiężnym denku wtopię scalaka w kostkę
epidianu. Martwi mnie jedynie możliwość, że przy wlutowywaniu epidian może popękać.
No ale cóż, nie mam innego pomysłu na odseparowanie układu pomiarowego od ciśnienia
wewnątrz okrętu.
Z ukłonami
Andrzej Korycki
Bronię się jak mogę przed wylutowywaniem układu scalonego.
Na razie próbuję wyeliminować wpływ ciśnienia na górną płaszczyznę układu pomiarowego.
Zeszlifowałem epidian uszczelniający powierzchnię i przykleiłem kwadracik z blachy mosiężnej
1mm. Wydaje się, że na powierzchni 1cm kw nie będzie się odkształcała.
Jeżeli to nie pomoże, to wylutuję układ i bazując na mosiężnym denku wtopię scalaka w kostkę
epidianu. Martwi mnie jedynie możliwość, że przy wlutowywaniu epidian może popękać.
No ale cóż, nie mam innego pomysłu na odseparowanie układu pomiarowego od ciśnienia
wewnątrz okrętu.
Z ukłonami
Andrzej Korycki
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Nie obroniłem się.
Układ scalony w sarkofagu :
O tym, czy skutki dały jakieś rezultaty, za poniedługo.
Z ukłonami
Andrzej Korycki
Nie obroniłem się.
Układ scalony w sarkofagu :
O tym, czy skutki dały jakieś rezultaty, za poniedługo.
Z ukłonami
Andrzej Korycki
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Otóż, skutki dały tą razą rezultaty pozytywne.
Miernik ciśnienia zalany epoksydem przestał być wrażliwy na ciśnienie wewnątrz kadłuba.
Program do testowania wyglądał tak :
A sam eksperyment był przeprowadzony na stole. Do otwartego zaworu odpowietrzającego
przyłączyłem posiadaną naturalną sprężarkę za pomocą połączenia ustnego.
Dmuchałem Lalę na stole i obserwowałem zmiany wskazań manometru za pomocą
komputera. Zmian nie zaobserwowano. Jedynym efektem zalania epoksydem
było przesunięcie zera o umownych 16 jednostek (jedna jednostka to 9,2 mm).
Mimo wykonania różnych prób okręt nadal nie chce zawisnąć w wodzie.
Ciągle się zanurza i wynurza, ale próbuje.
Wygląda na to, że będę musiał przypomnieć sobie wykłady z teorii regulacji.
Odnalazłem takie oto książki, które, najprawdopodobniej, mi w tym pomogą.
Wszyscy się chwalą książkami, to ja też mogę, mam trzy :
Wszystkie trzy, to egzemplarze muzealne, ale wiedza w nich zawarta
zestarzała się mniej od właściciela.
Z ukłonami
Andrzej Korycki
Otóż, skutki dały tą razą rezultaty pozytywne.
Miernik ciśnienia zalany epoksydem przestał być wrażliwy na ciśnienie wewnątrz kadłuba.
Program do testowania wyglądał tak :
Kod: Zaznacz cały
void TestCzujnikaCisnienia20110620( void )
{
unsigned char ZanurzenieActCM;
OpoznienieNaStarcie10Sek();
for(;;)
{
if ( Every200ms )
{
Every200ms = 0;
ZanurzenieActCM = GetZanurzenieCm1();
WyslijZnak( ZanurzenieActCM );
}
}
}
A sam eksperyment był przeprowadzony na stole. Do otwartego zaworu odpowietrzającego
przyłączyłem posiadaną naturalną sprężarkę za pomocą połączenia ustnego.
Dmuchałem Lalę na stole i obserwowałem zmiany wskazań manometru za pomocą
komputera. Zmian nie zaobserwowano. Jedynym efektem zalania epoksydem
było przesunięcie zera o umownych 16 jednostek (jedna jednostka to 9,2 mm).
Mimo wykonania różnych prób okręt nadal nie chce zawisnąć w wodzie.
Ciągle się zanurza i wynurza, ale próbuje.
Wygląda na to, że będę musiał przypomnieć sobie wykłady z teorii regulacji.
Odnalazłem takie oto książki, które, najprawdopodobniej, mi w tym pomogą.
Wszyscy się chwalą książkami, to ja też mogę, mam trzy :
Wszystkie trzy, to egzemplarze muzealne, ale wiedza w nich zawarta
zestarzała się mniej od właściciela.
Z ukłonami
Andrzej Korycki
- Tomasz_D
- Posty: 558
- Rejestracja: 04 gru 2010, 21:55
Re: SSN-688
Jak ja dmucham swoją lalę na stole to na żaden manometr nie zerkam - reszta to jak zwykle NASA. 

- ramol
- Posty: 91
- Rejestracja: 23 lut 2011, 11:10
Re: SSN-688
Wiem że na pewno wszystko było przemyślane i wytestowane, ale pasowało by sprawdzić jakie wartości przekazuje czujnik do programu. Rybkarium zbyt głębokie nie jest, to i podczas zanurzania zmiany ciśnienia nie są zbyt duże, dodatkowo okręt opadający na zanurzeniu posiada pewną siłę bezwładu i zawsze zanim się ustabilizuje zanurzy się więcej niż miał zadane.
Ale... zakładając że czujnik ciśnienia ma odpowiednią skalę i odpowiednio wyłapuje i przekazuje zmiany ciśnienia, oraz okręt ma odpowiednio dużo czasu żeby się ustabilizować na pożądanej głębokości, trzeba zobaczyć jaką wartość powinien podawać czujnik na zadanej w programie testowym głębokości (ręczne przynurzenie), a następnie puścić program i debugerem sprawdzać wykonywanie programu krok po kroku, wtedy mamy możliwość na bieżąco sprawdzania wartości zmiennych z programu, a znając teoretyczne wartości jakie powinny mieć i porównując je z fizycznie uzyskiwanymi można wyłapać błędy nieprawidłowego działania. Przejechanie debugerem przez program daje też możliwość sprawdzenia poprawności działania czujników oraz poprawności przekazywanych przez nie danych.
Kibicuję cały czas.
Ale... zakładając że czujnik ciśnienia ma odpowiednią skalę i odpowiednio wyłapuje i przekazuje zmiany ciśnienia, oraz okręt ma odpowiednio dużo czasu żeby się ustabilizować na pożądanej głębokości, trzeba zobaczyć jaką wartość powinien podawać czujnik na zadanej w programie testowym głębokości (ręczne przynurzenie), a następnie puścić program i debugerem sprawdzać wykonywanie programu krok po kroku, wtedy mamy możliwość na bieżąco sprawdzania wartości zmiennych z programu, a znając teoretyczne wartości jakie powinny mieć i porównując je z fizycznie uzyskiwanymi można wyłapać błędy nieprawidłowego działania. Przejechanie debugerem przez program daje też możliwość sprawdzenia poprawności działania czujników oraz poprawności przekazywanych przez nie danych.
Kibicuję cały czas.
- Andrzej1
- Posty: 1568
- Rejestracja: 04 gru 2010, 21:56
- Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}
Re: SSN-688
Witam
Mariusz :
Przejechanie Debuggerem - jakie to piękne słowa. Tylko, że ja mogę wysłać przez RS kilka znaków
i to nie za dużo, bo obciążą procesor i wysyłanie znaków wpłynie znacząco na proces regulacji.
Nie ma debuggera, nie ma żadnego ułatwienia programistycznego. Czujnik ciśnienia był skalowany,
ale przed zalaniem epoksydem. Teraz trzeba by to powtórzyć.
Ale niestety problem leży gdzie indziej zupełnie.
Zanim silnik się rozpędzi, to mija trochę czasu. A już znacząco więcej (300ms) upływa zanim całkiem
stanie. Te 300 ms to czas od zdjęcia napięcia, do momentu, aż przestaną przychodzić impulsy
z impulsatora. W tym czasie waga okrętu zmienia się o około 10 gramów na zbiornik czyli razem
o około 20 gramów (to wartość maksymalna). Muszę tak zmienić algorytm, aby były to wartości mniejsze
(sterowanie PWM) i dodatkowo działać z wyprzedzeniem. Czyli regulator musi być typu PID.
Na razie mam kłopot z identyfikacją okrętu. Bo dwa zbiorniki wpływają na dwa parametry :
głębokość i przechył. Trzeba zdefiniować macierz transmitancji a potem to już tylko
zsyntetyzować poprawnie stabilny regulator. Z całą pewnością muszę brać pod uwagę
i wartości zmiennych (ciśnienie i przechył) oraz ich pochodne. Znając te cztery wartości
mogę dość precyzyjnie (przy założeniu, że pochodna będzie stała) wyznaczyć kiedy zatrzymać
silniki, aby układ się nie wzbudzał.
Poza tym jest jeszcze jeden drobiazg : okręt podwodny bez napędu NIE pozostaje na tej samej
głębokości. Tego nie przeskoczę, ale chciałbym, aby nie tłukł się o dno i nie wyskakiwał do góry.
Dość trudno jest napełnić balon tak, aby pozostał na wysokości 10m nad ziemią. Takie schody.
Bezwzględny pomiar głębokości nie ma tu nic do gadania. Głębokość jest jakaś i ma być taka, a nie
inna. Oczywiście jeszcze sprawdzę czy nie pływa (pomiar głębokości).
Z ukłonami
Andrzej Korycki
Mariusz :
Przejechanie Debuggerem - jakie to piękne słowa. Tylko, że ja mogę wysłać przez RS kilka znaków
i to nie za dużo, bo obciążą procesor i wysyłanie znaków wpłynie znacząco na proces regulacji.
Nie ma debuggera, nie ma żadnego ułatwienia programistycznego. Czujnik ciśnienia był skalowany,
ale przed zalaniem epoksydem. Teraz trzeba by to powtórzyć.
Ale niestety problem leży gdzie indziej zupełnie.
Zanim silnik się rozpędzi, to mija trochę czasu. A już znacząco więcej (300ms) upływa zanim całkiem
stanie. Te 300 ms to czas od zdjęcia napięcia, do momentu, aż przestaną przychodzić impulsy
z impulsatora. W tym czasie waga okrętu zmienia się o około 10 gramów na zbiornik czyli razem
o około 20 gramów (to wartość maksymalna). Muszę tak zmienić algorytm, aby były to wartości mniejsze
(sterowanie PWM) i dodatkowo działać z wyprzedzeniem. Czyli regulator musi być typu PID.
Na razie mam kłopot z identyfikacją okrętu. Bo dwa zbiorniki wpływają na dwa parametry :
głębokość i przechył. Trzeba zdefiniować macierz transmitancji a potem to już tylko
zsyntetyzować poprawnie stabilny regulator. Z całą pewnością muszę brać pod uwagę
i wartości zmiennych (ciśnienie i przechył) oraz ich pochodne. Znając te cztery wartości
mogę dość precyzyjnie (przy założeniu, że pochodna będzie stała) wyznaczyć kiedy zatrzymać
silniki, aby układ się nie wzbudzał.
Poza tym jest jeszcze jeden drobiazg : okręt podwodny bez napędu NIE pozostaje na tej samej
głębokości. Tego nie przeskoczę, ale chciałbym, aby nie tłukł się o dno i nie wyskakiwał do góry.
Dość trudno jest napełnić balon tak, aby pozostał na wysokości 10m nad ziemią. Takie schody.
Bezwzględny pomiar głębokości nie ma tu nic do gadania. Głębokość jest jakaś i ma być taka, a nie
inna. Oczywiście jeszcze sprawdzę czy nie pływa (pomiar głębokości).
Z ukłonami
Andrzej Korycki