|
目前,很多模拟量的输入与输出存在着非线性的关系,而在计算这两者之间的关系时,总不能找到一个符合或者相近的公式来进行计算。对此常见的解决方法是把非线性的模拟量输入分割成多段,并将每段进行线性化处理,然后进行相应的模拟量输出。
下面是用海为PLC编程软件将频率与温度的非线性关系转成多段线性变送的例子。其多段频率对应的温度值如下表所示:
|
频率(Hz)
|
温度(℃)
|
|
639.4
|
210.0
|
|
626.9
|
200.0
|
|
614.2
|
190.0
|
|
601.6
|
180.0
|
|
588.8
|
170.0
|
|
576.0
|
160.0
|
|
563.1
|
150.0
|
|
550.2
|
140.0
|
|
537.2
|
130.0
|
|
524.1
|
120.0
|
|
511.0
|
110.0
|
|
497.7
|
100.0
|
|
484.6
|
90.0
|
|
471.3
|
80.0
|
|
457.9
|
70.0
|
|
444.5
|
60.0
|
|
431.0
|
50.0
|
|
417.4
|
40.0
|
|
403.8
|
30.0
|
|
390.1
|
20.0
|
|
376.3
|
10.0
|
|
362.5
|
0.0
|
建立两个名称分别为“频率表”和“温度表”的初始寄存器表,地址V1100~V1121与上表的频率值相对应,地址V1200~V1221与上表的温度值相对应,如下图所示:

主程序如下图所示:

子程序如下图所示:


总结:通过这个例子,我们知道非线性曲线通过多段线性变送可以使输出逼近非线性曲线。逼近非线性曲线的程度取决于段数的多少,段数越多,就越逼近,反之,则偏离越远。而段数的多少应如何取决呢?因为当段数较少时,误差会相对较大;段数较多时,误差小,但是程序量大,会影响运行的速度。所以段数的多少需要根据工程的实际情况进行分割。使工程在允许的误差范围内程序尽可能的小。
|