Amesim之生成随机数
工程仿真模拟的过程中经常会遇到随机数,而且在AMESim软件中实现随机数也是相当简单的,提供了两种随机数生成模式,所生成的随机数可以是均匀分布也可以是高斯分布,下面讲一下随机数的实现过程及参数设置。
元件
Amesim之生成随机数
第一种模式
该模式有四个参数,分别是seed(种子)、lower value(最小值)、higher value(最大值)、sample time(时间)。
该模式下是每隔一个时间段(sample time)生成一个[lower value、higher value]之间的随机数。
1.参数设置
下面这个例子是每隔0.1秒生成一个0~1之间的随机数,参数设置如下:
Amesim之生成随机数
2.仿真模拟
Amesim之生成随机数
这里,当lower value(最小值)与higher value(最大值)相等的时候,生成的随机数将是一个常数=lower value=higher value,如下:
Amesim之生成随机数
Amesim之生成随机数
第二种模式
该模式有四个参数,分别是seed(种子)、mean(平均值)、variance(方差)、sample time(随机时间)。
该模式下,在正态分布情况下,这些数字将在具有指定方差的平均值附近,每隔一个时间段(sample time)生成一个在平均值为参数mean,方差为参数variance的随机值,所以该随机值不是真正的随机值,而是拟合内部算法的随机值。
1.参数设置
Amesim之生成随机数
2.模拟结果
Amesim之生成随机数
最后,解释一下种子参数seed,是一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
既然能够在同一次仿真过程中在不同时间区间出现不同的随机数,那如何做到在每一次仿真过程中出现一个具体的随机数?
将sample time设置的数值比总仿真时间还长,可以确保每一次仿真会是一个具体值,但每一次出现的值并不是随机的。这里主要涉及到随机数种子。关于随机数的种子,因为随机数并不是真正的随机,它是通过某个算法的得到。也就是说你给数列管理器同一个序号将得到同样一个“随机”数列。所以当种子数相同的时候,每次产生的随机数是完全一致的,无法实现每次仿真都产生一个具体的随机数。 大家都知道信号库的功能是十分强大的,我也是一直推荐大家在学习我们课程的时候优先学习第一期课程,因为信号库就是在第一期讲解的。解决这个方法通过信号库两个元件的组合就可以实现,大家也琢磨下,可以在底部留言按钮留言,我将在下一篇文章中揭晓。
欢迎关注微信公众号:Amesim学习与应用