Previous Next

    如何透過 Analog Discovery 2 在 MATLAB 中建立 Data Acquisition

    Mathworks MATLAB 從第一代的 Analog Discovery 即開始相互支援合作。目前在 R2018a 版本的 Data Acquisition Toolbox 可支援 第二代的 Analog Discovery 2,可讓您在 MATLAB 中執行以下任務:

    • 從兩個示波器通道讀取數據(模擬輸入)
    • 從兩個波形產生器控制並產生數據(模擬輸出)
    • 調整 Analog Discovery 2的擷取率
    • 查找並顯示 Analog Discovery 2 設置

     

    Mathworks 的原廠頁面內有說明如何以300 kHz的速率擷取電壓數據 (輸入波形是由外部函數發生器提供的正弦波 10Hz / 2Vpp)。 

    為 Digilent 設備創建 DataAcquisition

    使用來發現連接到系統的Digilent設備daqlist

    daqlist(“ digilent”
    dq = daq(“ digilent”
    ans =
    
      1×4 table
    
        DeviceID                     Description                            Model                  DeviceInfo       
        ________    _____________________________________________    ____________________    _______________________
    
         "AD1"      "Digilent Inc. Analog Discovery 2 Kit Rev. C"    "Analog Discovery 2"    [1×1 daq.di.DeviceInfo]
    
    
    dq = 
    
    DataAcquisition using Digilent Inc. hardware:
    
                         Running: 0
                            Rate: 10000
               NumScansAvailable: 0
                NumScansAcquired: 0
                  NumScansQueued: 0
        NumScansOutputByHardware: 0
                       RateLimit: []
    
    Show channels
    Show properties and methods
    

    添加模擬輸入通道

    添加具有設備IDAD1和通道ID的模擬輸入通道1將測量類型設置為Voltage

    ch_in = addinput(dq, "AD1", "1", "Voltage");

    設置數據獲取和通道屬性

    將採集速率設置為300 kHz,並將輸入信號的動態範圍設置為-2.5至2.5伏。

    ch_in.Name = "AD1_1_in"
    rate = 300e3;
    dq.Rate = rate;
    ch_in.Range = [-2.5 2.5];
    ch_in = 
    
        Index    Type    Device    Channel    Measurement Type          Range              Name   
        _____    ____    ______    _______    ________________    __________________    __________
    
          1      "ai"    "AD1"       "1"      "Voltage (Diff)"    "-25 to +25 Volts"    "AD1_1_in"
    

    擷取單次樣本

    按需獲取單次掃描,顯示數據和触發時間。

    singleReading =
    
      timetable
    
        Time     AD1_1_in
        _____    ________
    
        0 sec    -0.37211
    
    
    startTime = 
    
      datetime
    
       21-Nov-2019 16:56:50.631

    獲取帶有時間戳的數據

    採集一組時鐘數據一秒鐘。

    [data, startTime] = read(dq, seconds(1));
    

    繪製獲取的數據

    plot(data.Time, data.AD1_1_in);
    xlabel('Time (s)');
    ylabel('Voltage (V)');
    title(['Clocked Data Triggered on: ' datestr(startTime)]);

     

    更多說明請參考 Mathworks 原廠頁面  

    和澄科技 Haley Technology

    電話 │ 886-3-5790380
    傳真 │ 886-3-5790370
    信箱 │ sales@haleytech.com
    地址 │ 新竹市關新路27號18樓之2

                  

     

     

    M有任何問題嗎? Line 我們最快! 

    產品搜尋