搜索
查看: 2712|回复: 1

Amesim之生成随机数

[复制链接]
发表于 2019-5-6 13:14:53 | 显示全部楼层 |阅读模式

Amesim之生成随机数

Amesim之生成随机数


工程仿真模拟的过程中经常会遇到随机数,而且在AMESim软件中实现随机数也是相当简单的,提供了两种随机数生成模式,所生成的随机数可以是均匀分布也可以是高斯分布,下面讲一下随机数的实现过程及参数设置。


元件

Amesim之生成随机数

Amesim之生成随机数


第一种模式

该模式有四个参数,分别是seed(种子)、lower value(最小值)、higher value(最大值)、sample time(时间)。
该模式下是每隔一个时间段(sample time)生成一个[lower value、higher value]之间的随机数。
1.参数设置
下面这个例子是每隔0.1秒生成一个0~1之间的随机数,参数设置如下:

Amesim之生成随机数

Amesim之生成随机数

2.仿真模拟

Amesim之生成随机数

Amesim之生成随机数

这里,当lower value(最小值)与higher value(最大值)相等的时候,生成的随机数将是一个常数=lower value=higher value,如下:

Amesim之生成随机数

Amesim之生成随机数

Amesim之生成随机数

Amesim之生成随机数

第二种模式


该模式有四个参数,分别是seed(种子)、mean(平均值)、variance(方差)、sample time(随机时间)。
该模式下,在正态分布情况下,这些数字将在具有指定方差的平均值附近,每隔一个时间段(sample time)生成一个在平均值为参数mean,方差为参数variance的随机值,所以该随机值不是真正的随机值,而是拟合内部算法的随机值。
1.参数设置

Amesim之生成随机数

Amesim之生成随机数

2.模拟结果

Amesim之生成随机数

Amesim之生成随机数

最后,解释一下种子参数seed,是一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数。
既然能够在同一次仿真过程中在不同时间区间出现不同的随机数,那如何做到在每一次仿真过程中出现一个具体的随机数?
      将sample time设置的数值比总仿真时间还长,可以确保每一次仿真会是一个具体值,但每一次出现的值并不是随机的。这里主要涉及到随机数种子。关于随机数的种子,因为随机数并不是真正的随机,它是通过某个算法的得到。也就是说你给数列管理器同一个序号将得到同样一个“随机”数列。所以当种子数相同的时候,每次产生的随机数是完全一致的,无法实现每次仿真都产生一个具体的随机数。      大家都知道信号库的功能是十分强大的,我也是一直推荐大家在学习我们课程的时候优先学习第一期课程,因为信号库就是在第一期讲解的。解决这个方法通过信号库两个元件的组合就可以实现,大家也琢磨下,可以在底部留言按钮留言,我将在下一篇文章中揭晓。

欢迎关注微信公众号:Amesim学习与应用


微信号:Simcenter_Amesim



发表于 2023-5-3 02:08:51 | 显示全部楼层
大佬,请问,amesim有没有能不用改变种子,就能使每次仿真的随机数不一样的方法?或者能自动改变种子的方法?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则