最近在做一个模拟仿真系统,数据源是一个实时数据库,场景中包含一些监测点。监测点给信号的方式是有物体到了监测点给上料信号,物体离开了监测点给下料信号;注意,如果有多个物体到达或离开监测点,那给信号的时间是所有物体都到达或都离开。这点约定是后续仿真模拟的前提和基础。

目前基本已经完成了前期的准备及实现工作,等待上线采集实际数据。在没有实际数据可供采集的情况下,采用如下结构来实现:

在实现过程中,主要有如下难点:

  1. 构造运动驱动XML数据时,要想实现长时间的运动驱动,但又不希望一直去构造数据,那就只有构造闭环数据,使驱动数据能够循环运作,从而达到无限长时间的数据信号供应;而如何构建闭环数据,这个其实简单,但是需要有耐心,仔细寻找驱动信号的规律;
  2. 实际上,最先是没有上图中的左边两部分的,而是直接构建实时数据库信号,即一条一条造;花了半天时间,构造了一两个物体很小一段的运动信号,实在沮丧,此方式不可取!后来想办法,实在无赖时冒出的用一个模拟场景来写数据的偷懒方法被采用,形成了上面的结构;
  3. 采集程序写如DB时,需要注意存料和上下料,且必须有时间这样的字段来标识;模拟场景初始化时是根据存料的,而存料是由前面所有的上下料信号积累形成的;T0时刻的存料初始化场景后,只能取T0时刻以后的上下料信号来驱动运动;
  4. 对于多个物体上下料的情形,目前给信号的方式存在天然的缺陷,因为上下料结束才给信号,那模拟必然至少延迟上下料时间T1;而这段时间如果长一些,完全可能形成如下的信号形式:物体A在单元UNIT1中还未下料,但是已经有A在UNIT2上料的信号了;此信号合理且符合实际,但是在处理上就复杂麻烦了。因为普通情况下,我们理解这种信号为“跳帧”,即中间有信号遗失,需要额外处理;但是偏偏它又不是“跳帧”。。。折磨了良久,最后的解决方式是在UNIT2上料的之前模拟一条UNIT1的下料信号,等到真的下料信号来的时候——不处理!
  5. 还需要考虑的一个难点是,客户端可能有很多,时时刻刻都会连服务器进行运动的模拟,不同客户端间应尽可能的同步,就像网游,不同人的视角虽然不同,但至少怪物的位置需要一致,但目前我们还没能做到这一点,不知道有什么好方案,求给力推荐!

U3D模拟仿真实现的更多相关文章

  1. LVGL 模拟仿真(Windows+CodeBlocks)

    一.准备材料 Code Blocks官网:https://www.codeblocks.org/ Code Blocks 汉化包:链接: https://pan.baidu.com/s/12zB5bD ...

  2. 基于Modelsim的视频捕获模拟仿真

    一.前言 针对牟新刚编著的<基于FPGA的数字图像处理原理及应用>中第五章系统仿真中关于视频捕获模拟的例子进行补充和仿真验证,简言之,吊书袋子. 2020-02-27 21:09:05 二 ...

  3. 好久不发帖,转一下公司技术美术独立完成的U3D模拟暗黑泰瑞尔翅膀物理运动效果

    想入公司倍培养成为优秀的技术型美术,欢迎call我! Max制作翅膀模型部分 新建一个片面,模型给一些段数,赋予一张左右二方连续贴图. 加个FFD 4*4*4,并稍微拉出一点弧度. 将头尾的Alpha ...

  4. NS网络仿真,小白起步版,双节点之间的模拟仿真(基于TCP和FTP流)

    set ns [new Simulator] set tracefd [open one.tr w] #开启跟踪文件,记录分组传送的过程 $ns trace-all $tracefd set namt ...

  5. c# C++接口封装 汽车模拟仿真

    struct PinCamParIn//用户输入的针孔相机参数结构体{    char CameraName[512];    float Offset[3];    float Angle[3];  ...

  6. 常见信号的模拟仿真(matlab)(spike signal)

    1. 一维信号 构造离散时间向量: Fs = 1000; % sampling frequency,采样频率 T = 1/Fs; % sampling period,采样周期 L = 1000; % ...

  7. NS网络仿真,小白起步版,模拟仿真之间注意的事项

    FTP是基于TCP的,所以FTP应用不可以绑定UDP发送代理 FTP和CBR属于应用流,他们用来绑定TCP和UDP发送代理 TCP用于发送代理时,接收代理为TCPSink,可以绑定FTP应用.CBR流 ...

  8. Bug2算法的实现(RobotBASIC环境中仿真)

    移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求--避障.之前简单介绍过Bug避障算法,但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象,只能说似懂非懂.我不是天才,不 ...

  9. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

    qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...

随机推荐

  1. 【MediaElement】WPF视频播放器【2】

    一.前言       上回说到需要做放视频的使用向导,这两天公司里的老司机一直帮我答疑解惑,让这个任务变得挺顺的,真心感谢他们! 这次与[1]中的不同之处在于: (1)播放和暂停按钮集成在<Me ...

  2. 【BZOJ2780】【SPOJ】Sevenk Love Oimaster(后缀自动机)

    [BZOJ2780][SPOJ]Sevenk Love Oimaster(后缀自动机) 题面 BZOJ 洛谷 题解 裸的广义后缀自动机??? 建立广义后缀自动机建立出来之后算一下每个节点被几个串给包括 ...

  3. 洛谷 P3338 [ZJOI2014]力 解题报告

    P3338 [ZJOI2014]力 题目描述 给出n个数qi,给出Fj的定义如下: \(F_j = \sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j ...

  4. [Oracle整理]ORA-12705(字符集问题)

    [Oracle整理]ORA-12705(字符集问题)   2017年5月11日 18:11 [Oracle整理]ORA-12705(字符集问题) 说明:本内容是工作用到的知识点整理,来自工作中和网络. ...

  5. 音视频处理之FFmpeg程序的介绍与使用20180302

    一.FFMPEG程序介绍与使用 主要介绍一下ffmpeg工程包含的三个exe的使用方法. 1. FFMPEG程序介绍 1.1.下载 ffmpeg的官方网站是:http://ffmpeg.org/ 下载 ...

  6. python之numpy矩阵库的使用(续)

    本文是对我原先写的python常用序列list.tuples及矩阵库numpy的使用中的numpy矩阵库的使用的补充.结合我个人现在对线性代数的复习进度来不断更博. Section 1:行列式的计算 ...

  7. docker-api

    __author__ = 'zxp' import docker import sys class DockerManager_Slave(object): def __init__(self): s ...

  8. 用 NetBeans 快速开发 Java JAX-RS RESTful 服务

    有很多IDE可以开发Java RESTful服务,Eclipse.NetBeans等,个人偏好使用NetBeans,本文介绍使用NetBeans开发的入门步骤. <理解RESTful架构> ...

  9. mysql cpu 占用高

    vi /etc/my.cnf [mysqld]tmp_table_size=200M mysql> show global status like ‘created_tmp%‘; +—————— ...

  10. XFire搭建WebService和客户端访问程序

    开发环境:myeclipse8.6+jdk1.6.0_29+tomcat6.0.37 JAX-WS搭建webservice:http://www.cnblogs.com/gavinYang/p/352 ...