[模型生成]如何生成Veristand使用的动态文件模型

软件信息:Matlab 2016b
Veristand 2017

1 本文的目的

记录使用Simulink建模生成动态连接库的需要注意的地方及遇到问题的解决方法。

2 检查步骤

2.1 环境搭建

具体请看另一章节的内容,详细介绍了软件版本及安装过程

2.2 模型建好后,按照一下的步骤进行逐项检查

2.2.1 模型解算器
Veristand中只能运行离散型模型,故需将解算器设置为固定步长(Fixed-step)
2.2.2 模型运行速率
根据模型需求设定合适的运行速率
2.2.3 代码生成中 目标程序生成文件选择
System target file选择NIVeriStand.tlc,语言选择C
2.2.4 目标代码编译标准数学运算库
首先,可先获取当前模型的参数值。(一般编译出现问题都是此参数配置有问题导致)
get_param(ModelName,Pre_get_param)
%ModelName:需要配置的模型名称,如'test'
Pre_get_param: 获取变量名,'TargetLangStandard'
其中通过查询Simulink中help文档,获知TargetLangStandard是Standard Math Library的配置,表格如下
Library NameLanguage SupportStandard
C89/C90 (ANSI)C, C++ISO®/IEC 9899:1990
C99 (ISO)C, C++ISO/IEC 9899:1999
C++03 (ISO)C++ISO/IEC 14882:2003

    同时帮助文档中提到修改此参数有两种:

To change the library:

  1. In the project build settings, on the Custom Code tab, set the Standard math library parameter.
  2. In a code configuration object, set the TargetLangStandard parameter.

    Verify that your compiler supports the library that you want to use. If you select a library that your compiler does not support, compiler errors can occur.

其中第一种方法在模型设置中未找到,第二种即本文提到的设定方式

————————————————————————————————————————————————

注:Simulink在进行适合Veristand动态链接库生成时,会调用标准运算库函数,猜测可能是由于tlc文件中不支持C99(ISO)的数学库,导致编译出错,目前的现象是,通过修改此参数的数值,可以让模型正常编译
注:目前通过Simulink生成Veristand只能使用C89/C90(ANSI),且此变量无法通过模型设定界面进行设定

2.3 生成代码并导入

总结

暂时遇到生成dll文件的问题都解决了,如后期遇到新的问题,会同步更新到文中。
                                                                        -20180917
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值