快好知 kuaihz订阅观点

 

LabVIEW编程:使用公式节点,简化程序代码,...

公式节点介绍

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.  将数据端口与公式节点的输入/输出端口进行连接,通过输出端口得到计算结果

本文由编码那些事原创,请关注+转发+收藏+点赞,带你一起长知识!

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:节点  节点词条  简化  简化词条  公式  公式词条  LabVIEW  LabVIEW词条  编程  编程词条  
综合

 【插件系列】CRX文件介绍

讲解对象:【插件系列】CRX文件介绍作者:融水公子 rsgz插件教程对象:CRX又称:扩展程序使用系统:Mac、Linux、Windows系统保存方式:以压缩格...(展开)