当前位置: 首页 > article >正文

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文件设计做好了准备。

http://www.lryc.cn/news/2398864.html

相关文章:

  • MAU算法流程理解
  • 蓝桥杯国赛训练 day1
  • ESP32之Linux编译环境搭建流程
  • Linux 软件安装方式全解(适用于 CentOS/RHEL 系统)
  • QT- QML Layout+anchors 布局+锚点实现窗口部件权重比例分配
  • UE5打包项目设置Project Settings(打包widows exe安装包)
  • Python中os模块详解
  • 便捷高效能源服务触手可及,能耗监测系统赋能智能建筑与智慧城市
  • Kotlin List 操作全面指南
  • C++--范围for循环详解
  • ISO18436-2 CATII级振动分析师能力矩阵
  • deepseek问答:torch.full() 函数详解
  • dvwa4——File Inclusion
  • MYSQL 高级 SQL 技巧
  • Spring Boot养老院管理系统源码分享
  • go|context源码解析
  • 如何在PowerBI中使用Analyze in Excel
  • 【学习记录】Element UI导入报错 * element-ui/lib/theme-chalk/index.css in ./src/main.js
  • 大模型分布式训练笔记(基于accelerate+deepspeed分布式训练解决方案)
  • 鸿蒙UI开发——组件的自适应拉伸
  • 鸿蒙仓颉语言开发教程:自定义弹窗
  • meilisearch docker 简单安装
  • Python 数据分析与可视化实战:从数据清洗到图表呈现
  • 机器学习数据降维方法
  • uefi和legacy有什么区别_从几方面分析uefi和legacy的区别
  • Spring @Autowired自动装配的实现机制
  • Neo4j 数据可视化与洞察获取:原理、技术与实践指南
  • 一种基于性能建模的HADOOP配置调优策略
  • 【Stable Diffusion 1.5 】在 Unet 中每个 Cross Attention 块中的张量变化过程
  • MySQL - Windows 中 MySQL 禁用开机自启,并在需要时手动启动