公式節點介紹
LabVIEW是一種圖形化的程式語言,在框圖程序中,如果涉及到了複雜的數學運算,框圖程序的連線將會十分繁瑣複雜,而且不直觀,調試、改錯也不是太方便,這時候,就可以用LabVIEW中提供的公式節點函數實現相應的計算功能了,其位於函數面板的「編程」-->「結構」子面板中。
在公式節點中輸入文本公式時,其語法同C語言類似,如每個公式語句必須以分號結束,可使用內置的多種數學函數,包括abs、sin、sinc、cos、ceil、exp、floor、log、log2、max、min、mod、pow、rand、sign、tanh等,同時,公式節點中可聲明變量,也支持一些常用的C語言的語句(包括賦值語句、 if條件語句、 for和do、while循環語句、Switch分支語句)等。公式節點與C語言語言的區別在於一些變量類型的聲明上有著細微區別。
利用公式節點,將數學公式的文本表達式輸入在公式節點的框圖內,並連接相應的輸入、輸出埠,則LabVIEW會自動根據公式計算出正確的結果,並從輸出端輸出。
下面通過使用公式節點求解一元二次方程的例子,說明公式節點的編程方法。
示例說明
對於如下的一元二次方程:
設計LabVIEW程序,輸入一元二次方程的三個係數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的係數,以求解不同的一元二次方程的解。
根據題目要求,設計前面板如下圖所示:
在前面板上,a、b、c三個控制項用作一元二次方程係數的輸入,x1、x2作為方程根的結果輸出。其中,a、b、c控制項類型為double(雙精度)類型,x1、x2為complex double(雙精度複數)類型。
編程思路及程序框圖實現
對於上面的一元該方程,令delta=b^2-4*a*c,從數學上來講,需根據delta的值來判斷該方程的根情況:
當delta>=0時,其兩個根為實數解,分別為(-b+sqrt(delta))/(2*a)和(-b-sqrt(delta))/(2*a);
當delta<0時,其兩個根為複數解,實部皆為-b/(2*a),虛部分別為sqrt(-delta)/(2*a)和-sqrt(-delta)/(2*a)。
其中,sqrt(delta)代表對delta作開根號運算。
根據上面的分析,設計程序框圖如下圖所示:
程序框圖使用while循環+事件結構的框架,在三個係數a、b、c值改變事件中使用公式節點計算方程的根。
在公式節點中,根據a、b、c的輸入,判斷delt的值,根據其值情況求解一元二次方程的根。兩個根皆用複數表示,在公式內部求解其實部和虛部值。注意,當delt>0時,其虛部值為0。最後,在公式節點外部使用「實部虛部至複數轉換」函數將其組合為複數,作為最終方程的根。
至此,程序就設計完成了,當在前面板修改係數a、b、c的值時,會實時顯示出當前一元二次方程的根情況。
總結
這兒演示了在LabVIEW中使用公式節點求解一元二次方程根的編程方法,通過這個例子,可看出在LabVIEW中使用公式節點進行編程的一般步驟如下:
1. 創建新的公式節點
2. 在框中輸入文本行表示的數學公式和文本語句
3. 添加輸入/輸出數據埠,並命名(與公式中變量同名)
4. 將數據埠與公式節點的輸入/輸出埠進行連接,通過輸出埠得到計算結果
本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!