学过高数的朋友们一定知道,在数学里微积分思想是多么的重要,我们平常做的工程计算里面含有大量的微积分计算,恰巧最近有学员问起这个虽然简单,但是十分有用的积分问题,我就简单讲一下。
问题来源:
最近在Amesim交流群中有位学员咨询Amesim如何对图形进行积分,好几位同学推荐使用联合仿真,利用matlab进行积分处理,实际上大可不必哈,Amesim就可以轻松搞定任意图形的积分问题。
简单积分:
为了方便我们快速的测试和验证,我们首先建立一个简单的模型,并用最简单的曲线进行验证。曲线是前4s由5增长到10,中间3s保持10,后面3s从10减到5这样的一个过程。
图1 输入曲线
我们用波段函数定义上述图形并增加积分元件,模型如下:
图2 简单积分模型
其中中间这个integrator元件,就是Amesim信号库中的积分元件,采用默认参数运算,即可得到如图3所示的结果,最终积分结果为82.5,与手动计算的A=30+30+22.5=82.5保持了一致,表明对曲线的积分计算完全没有问题。
图3 简单积分模型结果
区间积分:
既然如此,能否进行区间积分?当然是可以的,我们对图1所示的曲线前7s积分,积分结果应当是A1+A2=60,我们接下来建立模型进行验证:
图4 区间积分模型
在这个模型里面,我们可以看到在积分元件上部多了一个信号,这个信号实际上是积分元件的增益。所以我们只需要将增益信号的前7s设置为1,后面设置为0,就可以实现对前7s的区间积分了。前7s的积分结果如图5所示。
图5 区间积分结果
区间积分的处理:
由图5可知,前7s的积分结果为60,和计算结果一致。7s以后,由于增益信号为0,所以整个计算结果全部变为0了。虽然计算结果正确了,但是这样十分不方便,想一想,要是我们需要对一个曲线的多段积分,最终输出结果还需要我们手动计算进行累加,岂不是太不方便了?
这个时候呢,也很简单,让积分结果取最大值就好了,修改模型如下:
图6 区间积分结果后处理模型
只需要在积分元件后面,接一个最大值的处理元件,则就可以不断的对多个区间进行累加,不会在最终输出的曲线显示0了,对此我们依然对图1中曲线的前7s进行积分:
图7 区间积分结果后处理结果
从图7可以看出,在前7s积分过程中,积分结果一直增长,后3s不积分的时候积分结果不再变化了,固定在60不再变化了。
函数积分:
除了对简单的图形积分,我们还可以对函数进行积分。为了方便演示,我们做一个简单的函数进行计算,以f(x)=2*x^2+x进行x=0-5区间积分,建立Amesim模型如下:
图8 函数积分模型
其中,在f(x)函数元件里面,输入我们的方程表达式即可。
图9 函数表达式输入方法
计算结果如图10,可以看到前5s的积分结果是95.3多一点,大家也可以自己手动计算对比一下。
图10 函数表达式区间积分演示
通用复杂图形积分:
在上面的内容介绍中,我们使用的都是规则的曲线和函数,那么怎样对一个复杂的曲线进行积分呢?
既然积分功能有了,我们就只需要把复杂的图形绘制出来就好了,Amesim信号库的1D data元件制作,data数据允许增加无限控制点绘制自由曲线,因此模型建立如下:
图11 任意曲线积分
图12 任意曲线积分结果
通过图12可以看出,我们对不规则的曲线也可以积分,右侧积分结果柱状图中可以看出积分增速。
思考:
上文主要给大家演示了一下Amesim对曲线积分的功能,那肯定有同学要问了:
能不能对曲面积分呢?答案是:当然可以的!
本文正文第一张图中的积分能不能做?答案也是可以的!
Amesim的功能是十分强大,仅仅信号库130+个元件的组合使用,都可以完成非常多的计算了,何况还有那么多专业库呢,所以我经常感慨Amesim太强大了,感觉学不完的样子。