设为首页 | 加入收藏
 
技术支持
技术支持
 
技术支持 首页 >> 技术支持 >>  技术支持
SpaceR实时仿真平台快速使用说明
发布时间:2015-06-02 10:52:35 | 浏览次数:

1. 安装SpaceR

1. 安装Matlab 2011b(32bit)。

2. 安装SpaceR软件。

1.1. 配置操作系统环境

1. 防火墙配置:关闭Windows防火墙。

2. 更改网络适配器配置:控制面板>>网络共享中心>>网络适配器设置>>本地连接>>属性>>Internet 协议版本4>>使用下面的IP地址,将本地连接IP地址设为192.168.0.xxx;子网掩码设为255.255.255.0,如图1所示。

图1  本地IP设置对话框

3. 开启Telnet客户端:进入控制面板>>程序和功能>>启动或关闭Windows功能>>Telnet客户端。勾选Telnet客户端,点击确定,如图2所示。

 

图2  选择Telnet客户端

2. 启动SpaceR

先插入SpaceR配套的加密锁,然后选中桌面上的SpaceR快捷方式,点击鼠标右键选择以“管理员身份运行”,如图3所示。

图3  SpaceR以管理员身份运行

        启动SpaceR,显示如图4界面。

图4  启动界面

启动SpaceR时,因为需要先初始化Matlab环境,并对Matlab进行一些优化配置,所以时间稍长。一般启动时间需要30秒左右,依据不同的机器配置稍有差别。

如果在启动时,没有插入正确的加密锁,则会弹出如5图所示的提示界面。请确认插入了正确的加密锁后再重新启动SpaceR

图5  当前加密锁非法提示

3. 连接实时仿真机

在开始建立工程之前,需要将上位机电脑与实时仿真机(目标机)建立网络连接。网络连接方式有两种:通过网线直连建立网络连接;通过网络交换机或路由器间接建立网络连接。

启动目标机。

图6  电脑主机与目标机网络连接图

4. 建立模型工程


4.1. 新建工程

点击File/New Project菜单,弹出新建工程对话框,如图7所示。

图7  新建工程菜单

Project Name文本框中输入“Demo1”,点Browse按钮选择工程要存放的目录,如图8所示。

图8  新建工程导向对话框

工程文件保存的目录也可是在Location文本框中直接输入,请确保目录存在。如果目录不存在,在点击OK按钮后,Location文本框的文字会变为红色,并提示目录路径不正确,如图9所示。

图9  新建工程路径非法图

点击OK按钮,即创建一个名为Demo1的工程,如图10所示。

图10  新建工程成功

4.1.1. 工程文件夹结构

新建的SpaceR工程中默认包含了一个example.mdl示例模型文件。双击该模型文件,即可打开模型主工作界面,如图11所示。

图11  软件主界面

SpaceR工程文件夹下面有几个目录是固定的,具有重要的作用。它们分别是:

        models文件夹
        为了便于用户管理工程文件,所有的模型文件(即*.mdl文件)必须放在models目录或其子目录下,只有放在models文件夹下面的模型文件才被认为是SpaceR模型文件。
        如果当前工程中有很多个模型文件,建议不要将模型直接创建在models文件夹下,而是在下面建立子文件夹以便分包管理,这样整个工程的层次结构也比较清晰。
        build文件夹
        build文件夹是models下面模型的工作目录,对models文件下的模型文件进行编译等操作时,生成的临时文件放在build目录下。

注意

请不要将模型文件人工手动放置到这个目录下,以防SpaceR做自动清理操作时把有价值的文件给删除掉。


4.2. 编辑模型

在模型主工作界面中点击Edit Model链接,会启动Matlab来打开相应的模型。编辑模型主要包括设置仿真时间、步长、选择信号源以及对信号源进行参数设置等步骤。以系统自动生成的模型为例,如图12所示。


图12  示例模型

系统模型主要分为三个子系统,主子系统(sm_*)、从子系统(ss_1*)、显示子系统(sc_*),三个子系统之间传输的数据必须为double类型。其中主子系统(sm_*)内部包含主要的控制单元及信号源,是整个系统子系统的主要运算单元。从子系统(ss_1*)相对于主子系统(sm_*)来说次要运算单元,用户可以根据运算量需求添加多个ss从子系统。显示子系统(sc_*)用于显示模型计算结果。其中主子系统(sm_*)和从子系统(ss_1*)运行在下位机上,从模显示模块(sc_*)运行在上位机上。

4.2.1. 设置模型解算类型

       在模型编辑界面,选择Simulation>>Configuration Parameters…打开Configuration对话框,选择Solver菜单项,设置模型解算类型为定步长Fixed-step,如图13所示。


图13  设置模型解算类型

4.2.2. 设置模型步长

设置模型步长两种方式。

第一种:选择Simulation>>Configuration Parameters…打开Configuration对话框,选择Solver菜单项,在Fixed-step size编辑区域填写仿真步长,在本模型中设为50e-6,步长单位为秒。(注意:仿真步长最小值为10e-6),如图14所示。 

图14  设置仿真步长

第二种:选择Simulation>>Configuration Parameters…打开Configuration对话框,选择Solver菜单项,在Fixed-step size编辑区域填写仿真步长,设为“Ts”

在模型编辑界面,选择File>>Model Properties打开Model Properties对话框,选择Callbacks>>InitFcn在右侧编辑区域输入仿真步长“Ts=50e-6”。点击右下角的Apply>>点击OK则成功将步长固定值50e-6赋给变量“Ts”,如图16所示。

图15  选择Model Properties菜单


图16  设置定步长值

4.2.3. 设置模型仿真停止时间

在模型编辑界面,选择Simulation>>Configuration Parameters…打开Configuration对话框,选择Solver菜单项,设置模型仿真停止时间为“inf”,用户可以根据实际仿真需要设置开始时间值、停止时间值,如图17所示。

图17  设置模型仿真停止时间

4.3. 设置模型实时仿真参数

在上面新建的工程中,双击models文件夹下面的example.mdl模型文件,会在右边的窗口显示模型的主工作界面。

在模型主工作界面中点击Configuration链接,会弹出模型参数设置对话框。

模型参数设置对话框分为上下两个部分。上半部分是Model Settings,用于为模型子系统分配目标机和目标机配置。下半部分是Simulation Settings,用于设置仿真模型的运行参数,如图18所示。

图18  模型参数设置

Model Settings中点击某个子系统的节点复选框,选择Add Node选项可以进入节点配置对话框,如图19所示。

图19  添加节点复选框

       Add Node对话框中分别输入节点名称(Node Name)、目标机IP 地址(IP Address)、目标机登录用户名(Login Name,默认为root)、目标机登录密码(Password,默认为root)。点击Save进行保存。可在左边列表中看到添加后的节点。与此同时,可以通过下方Add功能和Delete功能继续添加节点或删除已经添加的节点,如图20所示。

图20  添加节点成功

节点添加成功后,点击对话框右边的Test Connection按钮以测试是否与设置的下位机节点通信是否畅通。如果连接服务器成功,则会显示连接成功的消息。如果连接服务器失败,则会显示连接失败的红色消息提示。依据服务器的网络连接情况和权限配置,有可能是Telnet服务异常,也有可能是FTP服务异常。

图21  网络测试连接失败

连接服务器成功后,在Model Settings中可以为子系统分配已经配置好的节点。点击Save按钮即可保存配置的值,如图22所示。

图22  为子系统分配节点

Simulation Settings中的高速运行模式(Run in High-Performance model)是用于减少仿真步长抖动,用户可依据模型实际运行情况来自行决定是否要采用高速运行模式,如图22所示。

4.4. 构建可执行程序

将模型生成可执行程序分为几个步骤,分别是:

 (1) 模型分割

 (2) 将模型转为C代码

 (3) 上传代码到QNX

 (4) 在QNX上编译C代码为可执行程序

上述这些操作步骤即可以通过点击一次Build Model链接自动顺序执行(如果所有操作都在主界面上勾选上),也可以通过只勾选部分操作步骤,让用户自行决定本次点击Build Model链接时要执行哪些步骤。

为了方便示例说明,在下面的构建操作时,每次只勾选了一个操作步骤, 在实际使用时,用户可以依据情况自行决定要勾选哪些操作步骤。

4.4.1. 模型分割

example.mdl模型主工作界面中,勾选上Separate model复选框,将其他的几个复选框取消选中状态,然后点击Build Model链接,会开始对example.mdl模型进行分割,如图23所示。

图23  Build模型界面

如果分割成功,则会在SpaceR下方的Output窗口中显示“Separate model succeed.”,并且会在Separate model复选框旁边和Build Model链接旁边显示一个绿色的对勾图标表示分割成功,如图24所示。

图24  模型分割界面

如果模型分割失败,则会弹出一个诸如下图所示的错误消息对话框,如图25所示。

图25  分割错误示例对话框

同时,SpaceR下面的Output窗口中也会显示详细的分割失败信息,Build Model链接按钮旁边也会显示一个黄色的警告图标来表示模型分割失败,如图26所示。

图26  Build失败界面

注意

不是任意的主模型都可以被分割成功,只有满足了模型分割规则的主模型才能被正确分割。对主模型进行正确分割的要求如下:

1. 有且仅有一个sm子模型。

2. 最多只能有一个sc子模型,也可以没有sc子模型。

3. 可以有多个ss子模型,但无论有多少个ss子模型,其命名规则是必须从ss_1为名称前缀开始连续不断地计数(例如:ss_1abcss_2abc……ss_9abc等)。

4. 如果是限制下位机CPU核数的SpaceR License,则表示所有smscss子模型的总数量不能超过限制的CPU核数数量。


4.4.2. 将模型转为C代码

example.mdl模型主工作界面中,勾选上Convert model into C/C++ code复选框,将其他的几个复选框取消选中状态,然后点击Build Model链接,会开始将example.mdl模型分割后的子模型转为C代码,如下图所示。

如果转换成功,则会在SpaceR下方的Output窗口中显示“Convert model into C/C++ code succeed.”,并且会在Convert model into C/C++ code复选框旁边和Build Model链接旁边显示一个绿色的对勾图标表示将模型转换为代码成功,如图27所示。

图27  模型转代码

如果模型分割失败,则会弹出一个错误消息对话框。同时,SpaceR下面的Output窗口中也会显示详细的转换失败的信息,Build Model链接按钮旁边也会显示一个黄色的警告图标来表示模型转换失败。

4.4.3. 上传代码到QNX

example.mdl模型主工作界面中,勾选上Upload converted code into QNX复选框,将其他的几个复选框取消选中状态,然后点击Build Model链接,会开始将example.mdl子模型转换的C代码上传到QNX中,同时SpaceR下面的Output窗口中也会显示详细的上传细节信息,如图28所示。

图28  上传代码

如果上传成功,则在Output窗口中会显示类似“Upload model example.mdl converted C/C++ code into QNX succeed.”的信息,并且会在Upload converted code into QNX复选框旁边和Build Model链接旁边显示一个绿色的对勾图标表示上传代码到QNX中成功。

4.4.4. 自定义上传文件到QNX

如果需要上传用户文件到目标机模型所在目录,可以点击Upload Manually按钮,选择将要上传到目标机的文件。

       首先点击Add Files…将上传文件添加到Dependent Files列表中,然后为这些文件分配子系统,选择Subsystem下面的子系统。然后点击Add to upload list按钮,将这些文件添加到上传列表中,点击Save保存配置。如图29所示。

图29  选择上传文件

       完成上传文件配置后,在执行Upload converted code into QNX操作的时候,系统会将刚才添加到上传列表的所有文件自动上传到目标机子模型所在目录。

4.4.5. 在QNX上编译代码和链接

example.mdl模型主工作界面中,勾选上Compile and link generated code复选框,将其他的几个复选框取消选中状态,然后点击Build Model链接,会开始将example.mdl在下位机QNX上编译已经上传的C代码,同时SpaceR下面的Output窗口中也会显示详细的编译细节信息。

如果编译成功,则会在SpaceR下方的Output窗口中显示“Compile model example converted C/C++ code on QNX succeed.”,并且会在Compile C/C++ code on QNX复选框旁边和Build Model链接旁边显示一个绿色的对勾图标表示在QNX上编译C代码成功,如图30所示。

图30  编译代码和链接

至此,已将上位机上的example.mdl子模型模型在下位机QNX中生成了可执行程序,生成的可执行文件分别为example_sm_systemexample_ss1system

4.4.6. 开始模型仿真

example.mdl模型主工作界面中,点下方的Run按钮,会启动分割后的sc子模型仿真控制窗口,如图31所示。

图31  模型运行图

双击仿真控制窗口中的Scope模块,即可弹出波形显示窗口实时显示下位机中运行的模型输出的信号,如图32所示。

图32  通过Scope查看实时仿真结果

如果运行仿真模型成功,则会在Output窗口中显示类似“Model example is running on QNX.”信息。

4.4.7. 在线调参

先按照前述操作,打开example.mdl模型主工作界面,执行运行仿真模型。然后点击SpaceR下方的Adjust Parameters标签页,找到example模型下的example_sm_system/sm_system/Sine Wave/Amplitude参数。双击该参数,会在右边的窗口显示Amplitude参数的默认数值,如图33所示。

图33  在线调参界面

在右边的参数设置界面中,鼠标单击参数单元格,参数所在的单元格会显示一个值输入框,填入希望修改的数值,再次单击该单元格即可临时修改该值,点击Apply按钮即可对修改的值在下位机中生效,如图34所示。

图34  修改参数值

4.4.8. 停止模型仿真

example.mdl模型主工作界面中,点下方的Stop按钮,会停止在下位机中运行的仿真模型,如图35所示。

图35  停止运行模型

如果停止运行仿真模型成功,则会在Output窗口中显示类似“Stop running model example on QNX succeed.”信息。同时在打开的sc模型仿真窗口中,仿真状态由正在运行状态改为已停止运行状态,如图36所示。

图36  停止运行后的SC模型

5. 查看产品授权信息

用户可以通过License信息窗口查看产品授权详情。在查看License信息前,请确认是否插入了正确的加密锁。

选择SpaceR主菜单中的Help>About SpaceR菜单,会弹出About对话框。点击对话框的左下方的License Info按钮,会弹出License信息窗口,如图37所示。

图37  授权信息

其中,License Type是当前SpaceR的授权类型;CPU Cores是当前SpaceR支持的下位机CPU最多核数;Expired Time是指当前License的过期时间,如果为N/A则表示当前License永不过期;Features是指当前SpaceR支持哪些关键的产品特性;Service Number是指当前SpaceR的售后服务码,主要是在售后服务时提供给SpaceR销售商以便提供个性化售后服务。

注意

请确保在SpaceR运行时加密锁没有拔出,如果SpaceR检测到加密锁被拔出,则会弹出非法的License错误信息对话框,并提示请重新插入加密锁,如图38所示。

图38  加密锁无法识别
        在该对话框中,点击Yes按钮可以让SpaceR重新检测加密锁是否插入,点击No按钮则会立即退出SpaceR,这有可能会导致正在运行中的程序强行退出。另外,如果连续5次点击Yes按钮仍然检测不到合法的加密锁,也会导致立即退出SpaceR系统。
        所以为了保证您的合法权益,请务必在SpaceR时,确保插入了正确、合法的加密锁,而且请不要在程序运行期间拔出加密锁,以免由于人为故意操作错误而造成损失。





 
打印本页 || 关闭窗口
 

公司简介 | 产品介绍 | 解决方案 | 用户案例 | 技术支持 | 合作伙伴 | 在线留言

Copyright © 2009 - 2017 BJCCE. All Rights Reserved 京ICP备17038294号-1
北京北创芯通科技有限公司