Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Simulink - przesuwnik fazy

14 Paź 2007 17:14 2034 3
  • Poziom 9  
    Witam.
    Mam następujący problem. Realizuję projekt w Simulinku i zatrzymałem się na części gdzie konstruuję przesuwnik fazy.
    Przesuwnik zrobiłem i działa bardzo dobrze, ale dla niskich częstotliwości (1Hz) a mój przesuwnik ma działać na 3ch pierwszych harmonicznych czyli sinusoidy dla 50, 100 i 150 Hz.

    Do budowy przesuwnika wykorzystałem bloczek Variable Transport Delay z biblioteki Continous. Bloczek ten posiada dwa wejścia i jedno wyjście. Na pierwsze wejście podaję sygnał Oryginalny, na drugie wejście podaję wartość przesunięcia sygnału (wartość 1=pi) a na wyjściu obserwuję rezultat.
    I tak jak już pisałem, wszystko działa dla częstotliwości źródła sinusoidalnego 1Hz (1*2*pi w/rad) a dla 50Hz sygnały są w tej samej fazie (nie wspominam już o 100 i 150Hz).
    Jak sobie z tym poradzić? Jakie zastosować nastawy? A może któryś z szanownych kolegów zna lepsze rozwiązanie mojego problemu. Za każdą radę serdecznie dziękuję :)

    Dodano po 15 [minuty]:

    zapomniałem dodać że pracuję na MatLAB 6.5.1 i metoda całkowania ODE1
  • Pomocny post
    Poziom 26  
    Witam!
    Cytat:
    Na pierwsze wejście podaję sygnał Oryginalny, na drugie wejście podaję wartość przesunięcia sygnału (wartość 1=pi) a na wyjściu obserwuję rezultat.

    Na drugie wejście podaje się wartość opóźnienia sygnału w czasie (w sekundach).
    Jeżeli Kolega chce opóźnić sygnał np. sinus 50 Hz o 90°, to należy podać 0,005s (5 ms), np. za pomocą bloku Constant z wpisaną wartością 5E-3.
    Wpisanie pi to przecież dla 50 Hz "mnóstwo" (powyżej trzech :D) okresów - tak długo zapewne Kolega nie obserwował wyników symulacji, stąd zero w odpowiedzi bloku.

    Pozdrawiam

    Jan
  • Poziom 9  
    jdjan1 -> wielkie dzięki za pomoc :) Teraz już działa :) Dzięki Tobie zrobiłem sobie automacik z wykorzystaniem bramki GAIN -> w Constant wpisuję sobie przesunięcie w stopniach o jaki mi chodzi i działa.

    Błąd mój polegał na tym że pracowałem na bardzo małej częstotliwości i gdy w bloczku podałem 1 uzyskiwałem przesunięcie o kąt pi/2 (wcześniej napisałem pi - pomyłka) więc stosując bloczek GAIN o wartości 1/90 uzyskiwałem przesunięcie o konkretny kąt. Najlepsze jest to że działało poprawnie dlatego trzymałem się swojego i nie wiedziałem czemu nie działa dla 50Hz.
    Na szczęście szybko poprawiłeś moją omyłkę :) jeszcze raz dzięki :)
  • Poziom 26  
    Witam!
    Cytat:
    Najlepsze jest to że działało poprawnie dlatego trzymałem się swojego i nie wiedziałem czemu nie działa dla 50Hz.

    Zdarza się nawet najlepszym - chwilowy brak koncentracji! :D
    Życzę sukcesów w materii okiełznania Matlab'a - WIELKIE wyzwanie.
    Jeżeli to wszystko, to zamknij temat klikając ikonę kłódki. W razie potrzeby będziesz go mógł otworzyć.

    Pozdrawiam

    Jan