matlab/simulink TLC语法基础练习实例
一、基本语法测试方法
1.新建一个脚本,保存扩展名为tlc,本例中是tst.tlc,设置当前工作路径为保存的tlc文件路径,在tlc文件里面输入下面的代码,然后保存:
%warning test
2.在MATLAB的命令窗口输入:
tlc tst.tlc
可以在命令行看到运行结果:
Warning: test
说明 :warning语句的语法就是在命令行输出: Warning: 文本。
详细的基本语法见:
tlc语法https://download.csdn.net/download/mirandali/90900363?spm=1011.2124.3001.6210 或 MATLAB的帮助,此处不再重复讲。
-r 指定 model.rtw 文件名称
-v 指定详细级别
-l 指定本地 include 文件的路径
-m 指定最大错误数
-0 指定输出文件路径
-d[a|c|n|o] 调用调试模式
-a 指定参数
-p 打印进度
-lint 性能检查和运行时统计
-xO 仅解析
二、字符串拼接的理解,数据类型、取数语法的理解
1)困惑于tlc文本的字符串拼接,尝试将一个字符串与一个数字拼接。
%assign worker = "str_"
%warning worker = %<worker> %%打印worker
%assign result = 1
%warning result = %<result> %%打印result
%assign conj = worker + result
%warning conj = %<conj> %%打印conj
得到的结果是:
Warning: worker = str_
Warning: result = 1
Error: File: tst.tlc Line: 6 Column: 25
The + operator only works on numeric arguments
Main program:
==> [00] tst.tlc:<NONE>(6)
错误出在这里:提示加号只适合2个数值,应该是work的字符型,rst是数值,不支持直接拼接
改一下,使用内嵌函数STRING,运行就OK了。内嵌函数见“tlc语法”或MATLAB帮助文档
https://download.csdn.net/download/mirandali/90900363?spm=1011.2124.3001.6210
%assign worker = "str_"
%warning worker = %<worker> %%打印worker
%assign result = 1
%warning result = %<result> %%打印result
%assign conj = worker + STRING(result)
%warning conj = %<conj> %%打印conj
三、循环、嵌套取数(类似指针)的理解
由于项目需要,需要在sfunction中将多个参数循环写入rtw文件中,再从tlc中将参数名取出来,并获得参数的值。参数名有一定的规律,前缀字符串+循环数值。
%assign outNum = 2 %% 循环次数
%assign sigInfo_0 = 101 %%信号实际值
%assign sigInfo_1 = 202 %%信号实际值
%foreach loopIdentifier = outNum%assign sigInfoStr = "sigInfo_"+ STRING(loopIdentifier) %warning sigInfoStr = %<sigInfoStr> %%看看变量名是否拼接成功%assign varStr = %<sigInfoStr> %%从变量名中再取数%warning varStr = %<varStr> %%看看是否取到sigInfo_x的值
%endforeach
结果如下:
Warning: sigInfoStr = sigInfo_0
Warning: varStr = 101
Warning: sigInfoStr = sigInfo_1
Warning: varStr = 202
可以看到是可以通过这个方法取到变量的值,这为我们sfunction的tlc文件设计做好了准备。