在Linux/Ubuntu系统中安装SIMPACK2021x

1. 为什么需要在Linux系统上安装SIMPACK

简而言之,若需要实现基于Simpack的硬件在环(HiL)和软件在环(SiL)系统,其实时仿真Realtime模块仅完整支持Linux系统。

Realtime模块的常见应用包括驾驶模拟器、舒适度模拟器,或与发动机测试平台进行接口。下图为Simpack官方文档的实例,笔者也搭建了一套以Simpack Realtime为核心的类似系统。

Realtime求解器本身经过优化,可以在多个核心上并行运行,而动画和记录器分别在单独的核心上运行。动画和记录器都通过用户数据报协议(User Datagram Protocol,UDP)与Realtime模块求解器通信。求解器与Realtime目标通信,而Realtime目标可以与外部硬件进行接口。Simpack Realtime可与多个不同的目标一起使用,以连接外部硬件/软件执行HiL/SiL模拟,例如dSPACE、Concurrent SIMulation Workbench和Simulink。

在Linux系统中,Realtime支持各个Target,包括:

  • Target 'dspace'
  • Targets 'concurrent' and 'concurrent-rfactor'
  • Target 'udp-general'
  • Target 'sensowheel'
  • Target 'logitech-g27'
  • Target 'sensowheel-g27'
  • Target 'rfactor-pro'
  • Target 'android-udp'
  • Target 'sfunction'
  • Target 'simat'

Windows系统仅支持以下Target:Logitech G27方向盘、Matlab/Simulink SIMAT。其中, Matlab/Simulink SIMAT就是比较常用的Simpack-Simulink联合仿真。

2. Ubuntu系统中安装SIMPACK2021x的操作步骤

解压安装包,生成文件夹的名称为DS Simulia SimPack 2021x Win Linux X64。

1)安装 SIMPACK。

在 .../DS Simulia SimPack 2021x Win Linux X64/install文件夹下,首先修改spck-2021x-build107-linux64-installer.bin的文件权限,允许文件作为程序执行。

之后,在终端中运行

sudo ./spck-2021x-build107-linux64-installer.bin 

 将跳出熟悉的Simpack安装界面。

 选择确认安装——“是”。

 选择安装路径。

 勾选Simpack 2021x与OLicense Server。

正在安装中。

2)安装Olicense Server

SIMPACK安装完毕后,会跳出许可证允许文件作为程序执行程序的安装界面。

正常选择安装。

 安装结束后,取消勾选Launch OLicense-Server,Finish。

同时,也取消勾选 Launch Simpack now。

3)Crack许可证文件

将Crack文件夹Crack下的 olicenseserver.lin 替换掉OLicense-Server安装路径下的文件。

若权限不足,则使用chmod +777指令修改对应文件夹权限。

  • /opt文件夹处使用
    sudo chmod +777 Optimum/
  • /opt/Optimum文件夹处使用
    sudo chmod +777 OLicenseServer/

获得文件夹修改权限后,可以删除原有olicenseserver.lin文件,再复制新的Crack文件夹的olicenseserver.lin文件到相应位置。

Tips: 如果端口 80 被 IIS 或其他 Web 服务器占用,请将 "olicenseserver.ini" 从 SolidSQUAD\ChangePort 文件夹覆盖到安装 olicenseserver.lin 的目录。

在OLicenseServer安装目录中,本例为/opt/Optimum/OLicenseServer,修改olicenseserver.lin的文件权限,允许文件作为程序执行。并在终端中运行:

sudo ./olicenseserver.lin 

大部分情况下,将会遇到如下错误:

olicenseserver.lin: loadlocale.c:130: _nl_intern_locale_data: Assertion `cnt < (sizeof (_nl_value_type_LC_TIME) / sizeof (_nl_value_type_LC_TIME[0]))' failed.

这个错误与 Linux 系统上的区域设置(locales)有关。这意味着在加载 olicenseserver.lin 时,程序试图访问一个不存在的本地化数据。为解决此问题,请在终端中输入:

gedit ~/.bashrc

在打开的.bashrc文件的最后一行,补充如下段落:

export LC_ALL=C
export LC_CTYPE=C.UTF-8

如下图第133、134行。 

再次启动终端,在 /opt/Optimum/OLicenseServer中输入

sudo ./olicenseserver.lin 

 将会出现localhost:80端口已被打开。

4)导入许可证文件 

打开网络浏览器,导航到 "http://localhost:80" 以打开 OLicenseServer 控制界面。 如果使用 "ChangePort" 配置,请导航到 "http://localhost:81"。 在导入许可证操作中,从 SolidSQUAD 目录选择 SIMPACKAG_SSQ.olixml,点击导入并等待多个 "accepted" 消息。

 关闭 Web 界面。

5)在Simpack前处理GUI界面中输入License地址

若Simpack没有在桌面上生成快捷方式,则可以在/opt/Simpack-2021x/run/bin/linux64/simpack-gui中找到GUI前处理界面。

可以通过搜索gui后,右键选择运行,或者使用以下命令:

cd /opt/Simpack-2021x/run/bin/linux64 
./simpack-gui

Simpack后处理程序,位于/opt/Simpack-2021x/run/bin/linux64/simpack-post。

可以通过搜索post后,右键选择运行,或者使用以下命令:

cd /opt/Simpack-2021x/run/bin/linux64 
./simpack-post

根据以上程序打开方式,打开 Simpack前处理界面,在 DSLS 错误提示上选择忽略, 转到 "Extras - Licensing",选择 "OLicense" 作为许可证类型,选择 "localhost:80" 作为许可证服务器。 如果使用 "ChangePort" 配置,请将 "localhost:81" 用作许可证服务器。

此时,顺利进入Simpack GUI界面,可以继续建模计算,完成安装。

 注意:每次重启开机时,Olicenseserver可能不会自动启动,需要手动进入OLicenseServer安装目录,即/opt/Optimum/OLicenseServer中输入

sudo ./olicenseserver.lin 

再启动Simpack前处理GUI界面程序。

3. 桌面上的“一键启动” Simpack

如果想实现Ubuntu桌面上的“一键启动” Simpack,并自动在后台启动并保持 OLicenseServer 进程,而不必一直开着一个显示信息的终端窗口。主要分为两个步骤:

  1. 准备启动脚本
  2. 创建桌面快捷方式(.desktop 文件)

首先,在例如/home/.../Documents等目录,创建静默启动OLicense与SIMPACK的脚本文件,并命名为start_simpack.sh,如下。请根据SIMPACK与OLicense文件的实际所在目录进行修改。

#!/usr/bin/env bash

# 1. 启动 OLicenseServer(如果已经在运行,则跳过)
# 检查进程是否已存在
pgrep OLicenseServer > /dev/null 2>&1
if [ $? -ne 0 ]; then
    echo "OLicenseServer is not running, start it now..."
    # 进入 OLicenseServer 目录
    cd /opt/Optimum/OLicenseServer
    # 以后台方式启动,并将输出重定向到日志文件
    nohup ./OLicenseServer &> ~/OLicenseServer.log &
    # 给点时间让 OLicenseServer 完成初始化
    sleep 3
else
    echo "OLicenseServer is already running."
fi

# 2. 启动 Simpack GUI
cd /opt/Simpack-2021x/run/bin/linux64
./simpack-gui

上述命令行文件保存后,需要使用chmod +x /home/.../Documents/start_simpack.sh命令,以使具有可执行权限。

主要字段说明

  • nohup:可避免因关闭终端导致进程退出

  • pgrep:通过进程名判断 OLicenseServer 是否已经在运行。

  • 将输出重定向到 ~/OLicenseServer.log,如果想保留更详细的日志、或指定其他路径,可自行修改

  • 如果你希望看到启动信息,可以去查看 ~/OLicenseServer.log

之后,在桌面上新建文件start_simpack.desktop,并写入以下命令行:

[Desktop Entry]
Version=1.0
Type=Application
Name=Start SIMPACK in 15s
Comment=One-click to start SIMPACK
Exec=/home/yaoyao/Documents/start_simpack.sh
Icon=/opt/Simpack-2021x/resources/images/icon_simpack.svg
Terminal=false 
Categories=Utility;Application;

主要字段说明

  • Exec=指定刚才编辑好的脚本绝对路径;

  • Terminal=false表示无需在终端中打开;

  • Name=Start SIMPACK显示名称 (我添加了15s是为例提醒启动所需时长稍长);

  • Icon=可指定自定义图标路径。

保存该命令行文件后,同样需要使用chmod +x ~/Desktop/start_simpack.desktop,并在桌面上右击使其“可执行”/“可运行”/“允许启动”

这样即实现了,Ubuntu环境中一键启动SIMPACK仿真GUI(前处理)界面。

避免 Ubuntu 中的字体与编码库缺失报错

为了避免以下报错,引起SIMPACK后处理字体显示不全:

QIconvCodec::convertFromUnicode: using ASCII for conversion, iconv_open failed

QIconvCodec::convertToUnicode: using ASCII for conversion, iconv_open failed

WARNING: Could not find fonts "Utopia" or "Arial" - some texts will be invisible
  • 安装缺少的字体

错误提示显示缺少字体 "Utopia" 或 "Arial",通过安装字体包解决:

sudo apt-get install ttf-mscorefonts-installer
sudo apt-get install fonts-ubuntu fonts-dejavu fonts-freefont-ttf
  • 检查并安装缺少的编码库

QIconvCodec::convertFromUnicode: using ASCII for conversion, iconv_open failed 的错误,通常与系统中缺少字符编码库有关。尝试安装以下编码相关的库:

sudo apt-get install libicu-dev
sudo apt-get install libiconv-hook1
  • 确保系统的语言和区域设置正确

有时字符编码问题也与系统的区域设置有关。

sudo dpkg-reconfigure locales

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值