matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)

注意我是用的是matlab2019b
1,输入标定量,使用constant,用cal函数包裹
2,输出显示量,在划线上标注,然后用display函数包裹,
第一步和第二步完成以后,生产标定量a2l
3,输入输出使用signal,
注意输出如果继承simulink的话可能会是double,则需要修改为single
matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第1张图片
4,如果是动态条件的变量,需要标定的话,就用input,作为输入的标定量
标定量和显示量在m文件中执行完毕后,会显示在workspace中。其他的变量在simulink中,其中包括local变量。
5,a2l文件在生成代码的时候产生
a,使用的时候需要先配置一下
A2L文件的自动生成(Simulink/CANape)

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第2张图片

b,使用:generate code
apps->embedded coder生成
matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第3张图片
可以打开a2l看下,只是地址为空,其他都正常的。
matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第4张图片
c.最后发现生成的a2l地址是空的,怎么办,使用下面指令,即可自动给a2l里的变量地址进行赋值

rtw.asap2SetAddress( ‘Task_100us.a2l’ , ‘Project.elf’ )
其中elf在编译的时候会生成,一般我们看到生成的是hex,但是elf也会同步生成

  1. Matlab没有直接把map/elf文件生成a2l文件的工具。

  2. Matlab可以将model生成不含实际地址的a2l文件(在configuration Parameters中设置interface为asap2,然后generate code。System Target
    File选grt.tlc、ert.tlc、asap2.tlc都可以),并提供了几个可以更新地址的function:asap2post,
    asap2post_targets,
    asap2SetAddress。前两个是从map文件获取地址信息,最后一个是从elf文件中获取地址信息,任一个都可以更新地址。
    但由于不同的compiler会生成不同格式的map/elf文件,所以很有可能你需要修改相应的m/pl文件了。(我用codewarrior,我后来就修改asap2post.m文件。)
    再一个就是,Matlab生成的a2l文件还不能直接用(毕竟Matlab不知道我们用的是什么样的通讯接口)。所以,我们还需要手动修改asap2userlib.tlc。在这个tlc文件里,需要补充A2ML、IF_DATA字段的内容,另外如果喜欢也可以完善一下HEADER、MOD_PAR和MOD_COMMON等字段的内容。
    还有,这样得到的a2l文件只包含模型中的参数和观测量,不包含手写代码中的参数和观测量

参考地址:https://blog.csdn.net/weixin_42665184/article/details/122424336

6,实际案例参考:
matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第5张图片

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)_第6张图片
注意使用ati软件的时候,需要使用一个模板文件,然后用模板文件生成策略文件。
注意模板文件时需要波特率以及内存地址段等信息,注意细节:模板文件是地址段信息,它是一个整体的管理。a2l文件里也有地址信息,这个地址信息是每个变量的的内存地址。

其他参考视频:
External Mode Simulation with XCP Communication
https://www.youtube.com/watch?v=rTgLpmFluGg

你可能感兴趣的:(smt3-simulink,开发语言,1024程序员节,python,numpy,linux)