logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Przerzucenie danych z wykresów SIMULINKA do Matlaba

Berend 02 Maj 2019 09:11 2940 26
  • #1 17938172
    Berend
    Poziom 16  
    Cześć,

    Mam dosyć rozbudowany program do badania zwarć w Simulinku,
    ale niestety wykresy w Simulinku to słabo wychodzą i podejrzewam, że też źle skaluje.

    Zrobiłem to tak:

    Przerzucenie danych z wykresów SIMULINKA do Matlaba

    Mógłby mi ktoś podać krótki skrypt do tego, aby dane z bloczka to workspace wyrysowały gotowy wykres?

    Zwykłe oscyloskopy mam jako "structure with time"
    A bloczek to workspace mam jako "Array" (wyczytałem, że lepiej tak)

    Próbowałem zwykłe oscyloskopy wrzucić w takim kodzie:

    plot(ScopeData.time,ScopeData.signals(2).values)
    axis([0.0,10,0,400])
    xlabel('t[s]')
    ylabel('I[\A')
    title('Faza L2') 


    Ale też słabo.

    Więc generalnie próbowałem tak, ale nie wychodzi, mógłby mi ktoś odświerzyć pamieć bo kiedyś się to robiło na studiach, ale nie pamietam jak.

    
    figure(1)
    plot(NapiecieGen);


    Nie moge zwykłyć oscyloskopów zmienić jako "Array" wyskakuje błąd.
  • #2 17938313
    Rariusz
    Specjalista Automatyk
    Witam,

    Kod który przedstawiłeś

    Kod: Matlab
    Zaloguj się, aby zobaczyć kod


    Możesz wykorzystać do rysowania wykresu również dla danych z bloczku
    to workspace. Nie rozumiem tylko stwierdzenia "słabo wychodzą". Co
    chcesz uzyskać? Jak wykres ma wyglądać?. Coś się ogranie ;)

    Pozdrawiam,
  • #3 17938332
    Berend
    Poziom 16  
    Dzięki za odpowiedź.

    Ogólnie wykresy w simulinku źle się skalują, chciałbym to utworzyć w matlabie i móc uzyskać wybrany przez siebie zakres. (np. napięcia w zakresie od 60kV do 120kV w czasie 5 sekund itp).

    Rariusz jak wbijałem ten kod co zacytowałeś to właśnie nic się w matlabie nie pojawiało.

    Podobno lepsze wykresy są jak się zapisze jako array, dlatego dałem bloczek to workspace i tam użyłem zapisu jako "array", gdyż symulacja uniemożliwia zrzut danych do oscyloskopu jako "array"


    Mógłbyś mi napisać jakiś kodzik, aby mi się wykresy w matlabie pojawiały jako dane z worksapce?

    Byłbym wdzięczny
  • #5 17938712
    Berend
    Poziom 16  
    Dziękuje bardzo, wydawało mi się , że już jestem w ogrodku, ale nie...

    Z Twojego kodu, wyciągnąłem sobie taką cześć.

    Symulacja z poziomu matlaba się załączą,

    clc,close all,clear;
    %% Sim model
    sim('power_turbinemoje12015a',0.1);
    %% Plot results - Scope
    figure;
        plot(ScopeData7.time,ScopeData7.signals.values(:,1))
        xlabel('Time[s]');
        ylabel('Amplitude');
        grid on
        axis([0.0,0.3,-15000,15000])
        
    %% Plot results - to worspace
    figure;
    plot(simout.signals.values(:,1))
        xlabel('Time[s]');
        ylabel('Amplitude');
        grid on
        axis([0.0,0.3,-15000,15000])


    Ale wyskakuje błąd ...

    "
    Field reference for multiple structure elements that is followed by more reference blocks is an error.

    Error in ko (line 6)
    plot(ScopeData7.time,ScopeData7.signals.values(:,1))


    "
    Wyskakuje figure 1 ale pusty bez wykresu, co ciekawe figure 2 się nie załącza jak w przykładzie przez Ciebie podesłanym.

    Jak to widzisz?


    Edit:

    Z wersji odczytu z oscyloskopu poszło, tylko jest wykres jednolity, tak jakby jedno napięcie, jak to podzielić, żeby odczytywał trzy napięcia i rysował w innym kolorze?

    Dziękuje za dotychczasową pomoc.
  • #6 17939163
    Rariusz
    Specjalista Automatyk
    Witam,

    Uruchomiłem jeszcze raz swój przykład w matlab 2010b i u mnie
    pojawiją się dwa wykresy. A w bloczko skope i to workspace masz
    ustawione na structure with time?. Bo u mnie w przykładzie takie
    ustawienia miałem wszędzie.

    Pozdrawiam,
  • #7 17940758
    Berend
    Poziom 16  
    Zczytuje dane z oscyloskopu, ale jeśli chodzi o bloczek to workspace to wyświetla wykres z zakresami, ale już bez danych.

    Ale z peirwszego sposobu, wszystko mam na niebiesko, jak zrobić, żeby rozdzielić to na 3 fazy, każda innym kolorkiem?
  • #8 17940836
    Rariusz
    Specjalista Automatyk
    Witam,

    Zapisz dane i dodaj w poście jako załącznik i napisz jak chcesz
    żeby to było wyświetlane. Napiszę skrypt. Tak będzie szybciej bo
    narazie przerzucamy się postami.

    Pozdrawiam,
  • #9 17941959
    Berend
    Poziom 16  
    Byłoby super.

    Ogólnie chciałbym mieć możliwość zmiany zakresów w osiach X i Y, tak jak w Twoim przykładzie 3 , w porzednim pliku.(i w tym co czesć Twojego kodu wrzuciłem).

    Chodzi o to, żebym miał każdą faze innym kolorem i najlepiej, żeby była podpisana legenda. np. faza L1 napięcia czy prądu czerwona itp. (w przypadku napiecia to Uab, Ubc, Uca itp)


    Jakbyś tylko miał czas oczywiście.
  • #10 17942611
    Rariusz
    Specjalista Automatyk
    Witam,

    Podaj prosze dane w formacie *.cvs lub naljepiej *.mat. To co załączyłeś
    nie zawiera danych. Nic z Tym nie zrobię.

    Pozdrawiam,
  • #11 17943916
    Berend
    Poziom 16  
    Dziękuje za odpowiedź,

    Ale nie rozumiem, mam to zapisać jakby w formie kodu?

    I jeśli chodzi o dane to co mam jeszcze uwzglednic, w jakich zakresach bym to chciał zmieniać i zmiennych na jednym wykresie(np. pomiar 3 faz prądów na jednym wykresie?)
  • #12 17944037
    Rariusz
    Specjalista Automatyk
    Witam,

    1) Robisz symulację w simulinku.
    2) Masz dane w wrokspace.
    3) W oknie komend piszesz : save NAZWA_ZMINNEJ_Z_DANYM_Z WYKRESU
    np. save ScopeData7.
    4) Wrzycasz zapisany plik.

    Pozdrawiam,
  • #13 17944197
    Berend
    Poziom 16  
    Teraz rozumiem,

    tylko nie moge tutaj wrzucac z rozszerzeniem mat i po drugie, niestety zajmuje to grubo ponad 100mb.
  • #14 17944258
    Rariusz
    Specjalista Automatyk
    Witam,

    Ehhh to zapisz tylko część próbek lub wystaw na serwer...

    Pozdrawiam
  • #15 17945418
    Berend
    Poziom 16  
    Cześć, bede potrzebował około 18 wykresów z jednej symulacji..

    Ale wrzuciłem jedną próbke na dysk google.
    Pomiar prądów na wyjściu generatora.
    Link

    Jakbyś mi to pokazał jakąś to może bym to sobie reszte sam ogarnął?
  • #17 17946647
    Berend
    Poziom 16  
    Kolejny raz świetny post, ale...
    to za każdym razem musze zapisywać, dawać save i wczytywać...

    A do tej sekwencji, gdzie z czytuje dane z oscyloskopu.


    figure(1); 
        plot(Ugen.time,Ugen.signals.values(:,1)) 
        xlabel('Time[s]'); 
        ylabel('U[V]'); 
        title('Pomiar napięcia na wyjściu generatora')
        grid on 
        axis([0.0,7.0,-20000,20000])
       


    Dołożyć tak jakby signals values (:,2) oraz analogicznie (:,3) i wspólny z legendą,
    żeby to poskończonej symulacji od razu takie wykresy wyskakiwały?
  • #18 17946743
    Rariusz
    Specjalista Automatyk
    Witam

    Oooooo Panie...tak to my Polski nie zbudujemy...
    1) Podałem Ci przykład. Chciałeś aby wykres był innym kolorem to jest.
    2) Nic nie musisz zapisywać itp. Skrypt działał dla danych z pliku.
    3) Jak chcesz by działał po symulacji to usuń linię gdzie jest: clc,close all;
    oraz load Igen.mat
    4) Odplasz skrypt i gotowe.
    5) Modyfikujesz całość aby wyświetlić resztę.

    Do tego co podałeś wykorzystaj:

    Kod: Matlab
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam,
  • #19 17946965
    Berend
    Poziom 16  
    Dzięki ponownie...

    Dzięki takiemu kodowi udało się to ugryźć i wychodzi tak:

    Kod: Matlab
    Zaloguj się, aby zobaczyć kod



    Tutaj zrzut ekranu przy zwarciu fazy B z fazą C.
    Pomiary dotyczą wartości międzyfazowych (dzięki użyciu bloczka Block parametr U-I)

    I mam pytanie kolejne, czy tak powinien wyglądać przebieg zwarcia napięcia U AB przy zwarciu dwóch faz...?

    Według mnie przebiegi Uab i Uca powinny być takie same...(pomiar napiecia między niezwartą fazą A a zwartymi fazami B lub C)

    Przerzucenie danych z wykresów SIMULINKA do Matlaba Przerzucenie danych z wykresów SIMULINKA do Matlaba



    Edit:

    Wiesz może w jaki sposób sprawdzić, czy:
    signals.values(:,1) odpowiada prądu fazy A , signals.values(:,2) fazy B itd?

    Przerzucenie danych z wykresów SIMULINKA do Matlaba
  • #20 17947169
    Rariusz
    Specjalista Automatyk
    Witam,

    Odpowiedzi na pytanie pierwsze nie znam ale na drugie już tak.
    Kolejność wartości w signals.values odpowiadają połlaczenia.
    Jeśli używasz bloczka MUX to port 1 w bloczku MUX odpowiada
    pierwszej kolumnie w signals itd. Takie mam pytanie. Czy jesteś
    autorem tego modelu w simulinku ?

    Pozdrawiam,
  • #21 17947218
    Berend
    Poziom 16  
    Czyli w takim razie.

    Signals value 1 - odpowiada przyłączeniu A - czyli odpowiada prądu fazy A i potencjałowi Va(Ua)
    Signals value 2 - odpowiada przyłączeniu B - czyli odpowiada prądu fazy B i potencjałowi Vb(Ub)
    Signals value 3 - odpowiada przyłączeniu C - czyli odpowiada prądu fazy C i potencjałowi Vc(Uc)
    da
    Czyli by się zgadzało z Twoją legenda i moją kopią Twojego kodu?


    Co do modelu Simulinku to jestem autorem, generator został zaczerpniety z przykładu co znajduje się w simulinku, ale już jego dane znamionowe zostały wyliczone(rzeczywiste parametry)
  • #22 17947447
    Rariusz
    Specjalista Automatyk
    Witam,

    Tak.

    Pozdrawiam,
  • #23 17948739
    Berend
    Poziom 16  
    Super, nie wiem jak się wypłace za pomoc.

    Z gotowej cześci z przykładów simulinka, prędkość obrotową mam w pu, znasz kod, żeby to przeskalować na obr/min jak w Plc:D?
  • #24 17948824
    Rariusz
    Specjalista Automatyk
    Witam,

    W czym ?

    Pozdrawiam,
  • #25 17948889
    Berend
    Poziom 16  
    Jeśli dobrze rozumiem, to jest to wartość aktualnie zmierzona do wartości bazowej (znamionowej).

    Link do strony mathworks.
    Link
  • #26 17953187
    Rariusz
    Specjalista Automatyk
    Witam,

    Myślę że należy wyznaczyć wartości w ukłądzie SI na podstawie pu a następnie
    zamienić jednostki.

    Pozdrawiam
  • #27 17956643
    Berend
    Poziom 16  
    Wiesz co zostawiłem to jak było i jest.
    Na wykresie prędkość obrotowa w stosunku do znamionowej podpisane i jest.


    Rariusz bardzo dziękuje Ci za całościową pomoc.
REKLAMA