NI產品與技術 討論區

取消
顯示結果 
搜尋替代 
您的意思是: 

使用labview控制儀器的問題

抱歉上次發問有誤,這次我們帶來了專題用的程式檔,請高手幫忙解決

 

我們希望利用labview控制訊號產生器AFG3102產生一個弦波

 

並在訊號產生器的output端接上DAQ,將弦波的資料讀進labview,並且用矩陣

 

儲存,再利用矩陣抓出最大最小值的功能,將最大最小值相減(即求振幅),然後把

 

這個振幅存起來(第二個區塊)

 

接下來增加弦波的大小並且再次利用上述方法得到振幅大小,將第二次的振幅大小與上一次做比較

 

若是比上一次的振幅大,則程式繼續這個迴圈(也就是不斷的增加弦波振幅),若之前的振幅較大,

 

則往第三個迴圈執行.

 

若是按照我們的方法來寫,程式執行開始應該是會一直進行增加振幅這個動作,

 

但是在中途我們卻發現了問題,第一個問題是:程式執行了大約5.6次後就會停住,

 

並且在tkafg3k(close)這個方塊發生error: data out of range

 

而且當我們用highlight讓程式慢慢執行時,發現第一次矩陣取到的最大最小值會發生錯誤

 

ex:我們輸入的振幅為1vpp,可是抓到的最大最小值是1和-1,相減後振幅變成2了

 

而且當執行到第5.6次時(也就是程式停住時)發現在第二個區塊裡取到的最大最小值也會發生錯誤

 

導致程式繼續往第3個執行(ex:最大值突然變成-0.1,最小值變成-0.5)

 

請問是哪裡的撰寫有問題呢?還是這個程式有不用矩陣也可以存取波形資料並取出最大最小值求振幅

 

的寫法呢?請各位高手幫忙解惑,若看不太懂問題也請告訴我們,我們會再想辦法描述的更詳盡或

 

附上ㄧ些專題的檔案,感激不盡.

 

 

0 積分
1 條訊息(共 2 條)
3,889 檢視
你要先考慮你讀進來的點是否有包含一個完整的週期,假設你波形的一個完整週期是用 2000 點採樣,可是你每次只讀 1000 點進來取最大值與最小值,那麼一定不會取到 global maximum or minimum 而只是 local maximum or minimum。
0 積分
2 條訊息(共 2 條)
3,873 檢視