
下面通过使用Virtual Machine Network Driver for Microsoft Device Emulator来完成:下面用图解来演示: 注意:仿真程序属性--网络配置需要Virtual PC 2007/2007 sp1的支持。之前Virtual Machine Network Driver可以单独下载,现在则通过Virtual PC 2007/2007 sp1内置,安装成功后,在网络属性中发现有“Virtual Machine Network Services”: 进入设置---连接---网卡: 选择默认单位设置,点击“NE2000兼容Ethernet驱动程序”以修改:如果网络中有DHCP服务器的话,就可以自动获取到IP地址。点击OK退出,可以测试主机与windows mobile模拟器是否连通:继续进入设置---连接----连接,选择左下角的“高级”:点击“选择网络”OK,保存一步步地设置,可以尽情享受windows mobile 65上网冲浪了:
你可以简单的学习一下神经网络,然后自己学着写一写Matlab的程序,这样会对你帮助很大,可以帮助你加深理解。神经网络其实不难,根据现有的图书的介绍,对于一个研究生应该是没有问题的。每一个好的程序都是一个科研人员的研究成果,是不会随便给的。所以你可以自己钻研一下,祝你好运
我的毕设只用把PID和模糊PID相比较
常规PID,用Matlab里的Simulink模块仿真,建立你要做的动力学模型的传函或者状态空间。PID参数调节可用临界比度法。
模糊PID就麻烦了,打开Matlab中FIS模块,一般都用二阶模糊?输入E,EC的隶属函数,一般为高斯,和输出模糊Kp,Ki,Kd,一般为三角。还要整定模糊规则,再加载到Simulink里。调节模糊因子Gu,Ge,Gec,设置模糊PID的参数。
总之,你这个问题在白度知道里很难说清楚。
仿真,实际上就是把一个非线性系统,用神经网络抽象出来。这个非线性系统,不方便用数学形式表达出来,或者说不容易确定其精确的数学形式,这个时候我们就不管它的内部了,将其当做一个黑箱,只考虑输入输出。将一定数量的输入输出样本用作网络的训练,只要通过训练后,得到的神经网络能正确反映输入输出的非线性映射关系,就说明这个神经网络在一定程度上体现了这个非线性系统的内部规律,并具有一定泛化能力,可以用其他的样本进行检验,并达到一定精度。
如果你的仿真指的是计算机上跑的程序,则一般是用MATLAB,实际上就是一段代码在那里运行、进行数学计算。
1)字段赋值,有线的trace都是同一个格式的
无线的分新版本和旧版本的略有不同。我的是旧版本的。
下面这个是无线的
1 2 3 4 5:6 7 8 9 [10/11/12/13] 14:16 [ 17 -18 19 20]
s 3000000000 _0_RTR --- 0 AODV 48 [0 0 0 0] ------- [0:255 -1:255 30 0]
s 1000000000 _0_AGT --- 2 tcp 40 [0 0 0 0] ------- [0:0 1:0 32 0]
r 1000000000 _0_RTR --- 2 tcp 40 [0 0 0 0] ------- [0:0 1:0 32 0]
s 1250000000 _0_RTR --- 0 AODV 48 [0 0 0 0] ------- [0:255 -1:25530 0]
1-20 是对这个无线Trace的标注,每条记录共有20栏,下面对各栏表示的意义进行说明:
(1)事件类型:
s:分组的发送事件;
r:分组的接收事件;
d:分组的丢弃事件;
f:分组的转发事件;
(2)事件产生的时间。
(3)处理该事件的节点ID。
(4)Trace种类:
RTR:路由器Trace;
AGT:代理Trace;
MAC:MAC层Trace;
(5:6)分隔符。
(7)分组ID。
(8)分组类型。
(9)分组大小(字节)。
[10:13]有关MAC层的详细信息
(10)发送节点在无线信道上发送该分组所期望的时间值,用16进制表示。
(11)接收节点的MAC地址。
(12)发送节点的MAC地址。
(13)MAC层封装的分组类型。 0x800:IP分组,0x806:ARP分组
(14:16)分隔符。
(17)分组发送的源IP地址。节点号端口号
(18)分组发送的目的IP地址。节点号端口号
(19)分组的TTL值。
(20)源节点到目的节点的跳数。
2)测丢包率的
BEGIN {
highest_uid=0; #保存保存已处理的最大的uid
}
{
event = $1;
time = $2;
node = $3;
node_ = substr(node,2,1);
trace_type = $4;
flag = $5;
uid = $6;
pkt_type = $7;
pkt_size = $8;
send[uid]=0;recv[uid]=0;
if(event=="s" && node_==2 && trace_type="AGT" && pkt_type=="cbr")
sendx[uid] = 1;
if(event=="r" && node_==4 && trace_type="AGT" && pkt_type=="cbr")
recv[uid] = 1;
if(highest_uid < uid)
highest_uid = uid;
}
END {
id=1;
loss=0;
for(i=0;i<highest_uid;i++)
{
xx = sendx[i];
yy = recv[i];
if(xx==1 && yy==0)
loss++;
}
printf("allpacket: %d loss packet: %d\n",highest_uid,loss);
printf("%6f\n",loss/highest_uid);
}
测吞吐量的
BEGIN {
init=0;
i=0;
}
{
#将outtr文件的相应字段赋值给变量
action=$1;
time=$2;
from=$3;
to=$4;
type=$5;
pktsize=$6;
flow_id=$8;
src=$9;
dst=$10;
seq_no=$11;
packet_id=$12;
if (action=="r" && from==2 && to==3 && flow_id==2) {
pkt_byte_sum[i+1]=pkt_byte_sum[i]+pktsize;
if (init==0) {
start_time=time;
init=1;
}
end_time[i]=time;
i=i+1;
}
}
END {
#第一笔记录的Throughput设置为零, 以表示传输开始, 为了绘图的美观
printf("%2f\t %2f\n", end_time[0],0);
for (j=1; j<i; j++) {
#单位为 kbps
th=pkt_byte_sum[j]/(end_time[j] - start_time) 8/1000;
printf("%2f\t%2f\n", end_time[j], th);
}
#最后一笔记录的Throughput设置为零, 以表示传输结束, 为了绘图的美观
printf("%2f\t%2f\n", end_time[i-1],0);
}
PS:建议去看一下柯老师那本书,讲的很详细的,或者是黄化吉的NS网络模拟和协议仿真,里面都有教awk怎么写,也把trace格式讲的很详细
simulation 与 emulation 的区别
解释一:
模拟(Simulation)即选取一个物理的或抽象的系统的某些行为特征,用另一系统来表示它们的过程。模拟技术的高级阶段称为仿真模拟(Emulation)、系统仿真,即用一数据处理系统来全部或部分地模拟某一数据处理系统,以致于模仿的系统能想被模仿的系统一样接受同样的数据、执行同样的程序、获得同样的结果。
解释二:
仿真 (Emulation) 是试图模仿一个设备的内部设计;模拟 (Simulation) 是试图模仿一个设备的功能。
解释三:
Emulation:When one system performs in exactly the same way as another, though perhaps not at the same speed A typical example would be emulation of one computer by ( a program running on) another You migh use emulation as a replacement for a system whereas you would use a simulation if you just wanted to analyse it and make predictions about it
Simulation: Attempting to predict aspects of the behaviour of some system by creating an approximate (mathematical) model of it This can be done by physical modelling, by writing a special-purpose computer program or using a more general simulation package, probably still aimed at a particular kind of simulation (eg structural engineering, fluid flow) Typical examples are aricraft flight simulators or electronic circuit simulators A great many simulation languages exist, eg {Simula}
解释四:
Simulation,是指用软件去模拟某个系统的功能,并不要求实现该系统的内部细节,只要在同样的输入下,软件的输出和所模拟系统的输出一致就可以了。比如你在 PC 机上用一个软件去 simulate 红白机的游戏 “超级玛莉”,你只要让你的软件运行出来的效果和红白机上 “超级玛莉” 游戏一样就可以,至于这个软件你是怎么实现则无关紧要。
Emulation,是指用软件去模拟出某个系统中各个部件的组成,真实地模拟出系统的运行机制。这就要求软件的作者需要非常了解所模拟系统的内部结构,能够利用各种数据结构实现出各个部件的模型。同样去 emulate 红白机的游戏 “超级玛莉”,首先就要用软件模拟出红白机中的各种硬件,如 CPU、内存、图形处理芯片、声音处理芯片以及游戏手柄等,再通过将加载游戏的 ROM 来运行该游戏。现在各种游戏模拟器,如 MAME、VirtualNes 都是采用 emulation 的手段去实现游戏的模拟,所以它们又叫做 emulator。
模拟就是指用在某个平台上用纯软件的方法去模拟另一个平台上程序的运行,模拟包含 “Simulation” 和 “Emulation”,通过上面对这两者的分析大家可以知道,“Simulation” 是一种高层次上的模拟,类似于 “黑盒”,而 “Emulation” 更注重于对底层的模拟,类似于 “白盒”。
仿真的解释就比较多了,有的说仿真是指用机器底层的微指令来解释执行另一个平台的指令,有的说仿真是软件结合硬件来模拟另一种平台程序的运行,即 “硬件仿真 + 软件模拟”。其实这两者是针对不同仿真对象和宿主平台而言的:前者具体的是讲系统仿真,是以大型机 CPU(现在也可以指 PC 机)为仿真对象的,通常在研制 CPU 的过程中,用宿主机的 CPU 去仿真其软件的运行,这样可以使硬件和软件的研发过程同步,加快整体系统的研发进度;后者一般指嵌入式仿真,做过嵌入式开发的朋友都知道,开发过程中经常要用仿真器去调试程序,我们可以在 PC 机上调试嵌入式系统中的某个程序,通过仿真器向嵌入式微控制器发送调试信号(如 JTAG),使微控制器执行某条指令,而 PC 机上会相应地显示出该条指令执行的结果,看上去似乎是 PC 在 “执行” 这条指令一样,这样来达到仿真的目的。但不管怎样,仿真总是与硬件相关的,这一点与模拟是有区别的。
现在还出现了 “虚拟机” 一词,在我看来,虚拟机更多地采用了模拟技术,而不是仿真,但是虚拟机相对于一个模拟器而言要复杂很多,像 Bochs 这样的虚拟机实质上应该是一个 emulator,而像 VirtualPC、VMWare 和 VirtualBox 这样的虚拟机,则采用了更为复杂的技术,既有 simulation,也有 emulation,甚至还有系统仿真,所以不能单纯地将它认为是一个模拟器。
解释五
simulation 是模拟出原系统的一个抽象模型,而不需要真的去做真实系统要做的事情。因此它其实不具备真实系统的功能,只是当某一功能执行时,通常不必输出功能执行的结果,只是在 simulator 中记录下由此引发的状态变化。因此它通常用于设计初期的模型验证。
emulation 则更进一步,要真正地去做所有真实系统能做的事情,只不过做的 “过程” 不同,它一般用于处理兼容性问题和在资源有限的条件下完成系统原型的实现。
如果把真实系统比作一个人的话,simulator 就是这个人的一幅肖像画,而 emulator 则是这个人的一个克隆人
举个例子,我们要实现一个 p2p 文件分发系统。
最开始的时候我们可以实现一个 simulator:它用一个函数来模拟节点间的通信,这个函数的输入是网络性能(带宽,跳数…),输出是通信时延 ———— 注意,并没有真正的数据在传输和拷贝,甚至都没有真正的节点,我们只是模拟了通信时延这个 “特征 (feature)”。
接下来,我们把这个分发系统实现了,编译成一个 exe 文件,但这时我们发现我们没有足够多的计算机来组成一个真实的、具有足够规模的网络来进一步测试(通常 p2p 网络的节点数成百上千),这时,我们可以写一个 emulator:它可以区分同一个计算机上的不同进程,因此我们可以在一台计算机上开 100 个进程,这样可以用 100 台计算机模拟出 10000 台计算机的网络 ———— 注意,此时数据真的是通过 Socket 在传输,只不过有的数据走的是 loopback 口,并没有真的进网卡。
解释六
simulation 是用软件实现,emulation 要涉及到硬件实现的部分。这个区分很简单明了,在很多情况下也是适用的(包括上面举的 p2p 分发系统的例子)。但是这种说法只是对于大多数情况的一种归纳性解释,因此在某些情况下就无法区分二者了。比如,这种解释无法区分 Operating System Emulator 和 Operating System Simulator———— 这个时候二者都不涉及硬件,这是因为真实系统 (Operating System) 本身就不涉及硬件。
再说说 “模拟” 与 “仿真”。首先,即使在正式场合下(如论文标题),{模拟,仿真} 和 {simulation,emulation} 这两个集合并不是一一映射的。你可以看到 "模拟 - simulation" 的组合,也可以看到 "仿真 - simulation" 的组合。显然,这个不一致现象是由于同时存在两种一一映射造成的。这个问题不是说理能解决的,还得随着使用次数越来越大,看大多数人的习惯。个人感觉,simulation 翻译成 “模拟”,而 emulation 翻译成 “仿真” 的情况多一些。
最后,提一下 “虚拟” 这个概念。这个概念最近火的不行,英文名叫 virtualization。我还没有仔细调查它和前两个概念的细微差别,但是可以肯定的是,virtualization 和 emulation 比较相似,和 simulation 不是一回事。其他的,以后查到再补进来吧。
解释七
维基百科上对仿真器 (emulator) 和模拟器 (simulator) 的解释如下:
仿真器(Emulator),又称仿真程序,在软件工程中指可以使计算机或者其他多媒体平台(掌上电脑,手机)能够运行其他平台上的程序,常被错误的称为模拟器。仿真器多用于电视游戏和街机,也有一些用于掌上电脑。仿真器一般需要 ROM 才能执行,ROM 的最初来源是一些原平台的 ROM 芯片,通过一些手段将原程序拷贝下来(这个过程一般称之为 “dump”)然后利用仿真器加载这些 ROM 来实现仿真过程。 (>
以上就是关于如何设置 Windows Mobile 6.5 模拟器上网全部的内容,包括:如何设置 Windows Mobile 6.5 模拟器上网、求助,神经网络用于路径规划的MATLAB仿真程序、如何给出常规PID与模糊PIDBP神经网络PID遗传算法PID程序的MATLAB仿真程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)