[MATLAB&SIMULINK] 如何提取並處理Simscape Power System 中powergui的諧波分析數據


 

花了一兩個小時研究了一番powergui的fft。在powergui中,FFT Analysis Tool如圖所示

開發環境:MATLAB R2015a + Window 10 enterpirse

 

 那么如果我想提取出Simulink模型中的數據並且做fft處理,得到自己想要的分析圖像,應該怎么辦呢?

方法一:

其實MATLAB在這個過程中調用了power_fftscope()這個函數。它的函數原型可以在matlab的幫助文檔中找到。函數調用的格式如下。

在command窗口里輸入如下命令即可設定與調用由FFT Analysis Tool產生的波形數據

>> FFTDATA = power_fftscope(Va)    %實例化對象FFTDATA,它代表Va的fft結構體數據 
FFTDATA = 

               time: [457947x1 double]
            signals: [1x1 struct]
          blockName: 'HP/VA'
              input: 1
             signal: 1
          startTime: 'last'
             cycles: 1
        fundamental: 60
       maxFrequency: 1000
    THDmaxFrequency: Inf
            THDbase: 'fund'
                mag: [17x1 double]
              phase: [17x1 double]
               freq: [17x1 double]
                THD: 272.5235
       samplingTime: 4.3673e-06
    samplesPerCycle: 3816
        DCcomponent: 14.5702
     magFundamental: 48.1973

>> FFTDATA.fundamental = 100        %設定基頻

FFTDATA = 

               time: [457947x1 double]
            signals: [1x1 struct]
          blockName: 'HP/VA'
              input: 1
             signal: 1
          startTime: 'last'
             cycles: 1
        fundamental: 100
       maxFrequency: 1000
    THDmaxFrequency: Inf
            THDbase: 'fund'
                mag: [17x1 double]
              phase: [17x1 double]
               freq: [17x1 double]
                THD: 272.5235
       samplingTime: 4.3673e-06
    samplesPerCycle: 3816
        DCcomponent: 14.5702
     magFundamental: 48.1973

>> FFTDATA.cycles = 200          %設定周期數

FFTDATA = 

               time: [457947x1 double]
            signals: [1x1 struct]
          blockName: 'HP/VA'
              input: 1
             signal: 1
          startTime: 'last'
             cycles: 200
        fundamental: 100
       maxFrequency: 1000
    THDmaxFrequency: Inf
            THDbase: 'fund'
                mag: [17x1 double]
              phase: [17x1 double]
               freq: [17x1 double]
                THD: 272.5235
       samplingTime: 4.3673e-06
    samplesPerCycle: 3816
        DCcomponent: 14.5702
     magFundamental: 48.1973

>> FFTDATA.maxFrequency = 7900      %設定最高頻率

FFTDATA = 

               time: [457947x1 double]
            signals: [1x1 struct]
          blockName: 'HP/VA'
              input: 1
             signal: 1
          startTime: 'last'
             cycles: 200
        fundamental: 100
       maxFrequency: 7900
    THDmaxFrequency: Inf
            THDbase: 'fund'
                mag: [17x1 double]
              phase: [17x1 double]
               freq: [17x1 double]
                THD: 272.5235
       samplingTime: 4.3673e-06
    samplesPerCycle: 3816
        DCcomponent: 14.5702
     magFundamental: 48.1973

>> x = FFTDATA.freq     %獲得頻率

 
         

x =

 
         

0
60
120
180
240
300
360
420
480
540
600
660
720
780
840
900
960

 
         

>> y = FFTDATA.mag       %獲得幅值

 
         

y =

 
         

14.5702
48.1973
79.0183
18.0582
9.8706
7.3618
5.3919
4.5902
3.5941
3.4998
3.1022
2.7178
2.7215
2.3526
2.3970
2.6270
2.1154



之后通過簡單的繪圖命令我們就可以繪制出模型的頻譜圖。

 

 方法二:

 如果你只是很簡單的想修改由FFT Analysis Tool生成的頻譜分析圖形,不妨試試下面簡單的方法。

在command中新建一個figure

>> figure

打開后選擇工具下的plot edit

 然后右鍵粘貼即可。

這樣你就可以通過set()來設定figure的參數,改變圖形的配置。具體要設定gca句柄。

比如

>> set(gca,'yscale','log') %將y軸轉換成對數坐標

 對於gca句柄,在[2]中有較為詳盡的命令。

 

參考:

[1]:http://cn.mathworks.com/help/physmod/sps/powersys/ref/power_fftscope.html;jsessionid=db0b9a8ee73742bf537d1f0a3291?refresh=true#responsive_offcanvas

[2]:http://wenku.baidu.com/link?url=HqIyvz6p9G8IY1Xb01_sXcN_aZjdV8iUk2AuCby1T0WHIKxahcHTPozq2M8UgGqQdjzJElSpfEI2W83EB0gYbRbB3uVGxpJKQjJGJobwR6C


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM