Matlab应用层生成简述

基础软件层

  • 目前接触到的几款控制器,其厂商并没有提供simulink的基础软件库
  • 一般为底层文件被封装为lib,留有供调用API接口
  • 虽然能根据API接口开发基础软件库,但耗费时间过长得不偿失

应用层

  • 所以可以将应用层封装为一个子系统,其输入输出作为和底层连接的变量
  • 并将变量统一生成到一个或两个文件中,方便查找和修改

举例

  • 新建一个m文件,添加两个变量类型Signal和Parameter,将其生成到Asw_Input文件里
Test = mpt.Signal;
Test.CoderInfo.StorageClass = 'Custom';
Test.CoderInfo.Alias = '';
Test.CoderInfo.Alignment = -1;
Test.CoderInfo.CustomStorageClass = 'Global';
Test.CoderInfo.CustomAttributes.MemorySection = 'Default';
Test.CoderInfo.CustomAttributes.HeaderFile = 'Asw_Input.h';
Test.CoderInfo.CustomAttributes.DefinitionFile = 'Asw_Input.c';
Test.CoderInfo.CustomAttributes.Owner = '';
Test.CoderInfo.CustomAttributes.PersistenceLevel = 1;
Test.Description = '';
Test.DataType = 'int16';
Test.Min = [];
Test.Max = [];
Test.DocUnits = '';
Test.Dimensions = -1;
Test.DimensionsMode = 'auto';
Test.Complexity = 'auto';
Test.SampleTime = -1;
Test.InitialValue = '';

Test1 = mpt.Parameter;
Test1.Value = 900;
Test1.CoderInfo.StorageClass = 'Custom';
Test1.CoderInfo.Alias = '';
Test1.CoderInfo.Alignment = -1;
Test1.CoderInfo.CustomStorageClass = 'Global';
Test1.CoderInfo.CustomAttributes.MemorySection = 'Default';
Test1.CoderInfo.CustomAttributes.HeaderFile = 'Asw_Input.h';
Test1.CoderInfo.CustomAttributes.DefinitionFile = 'Asw_Input.c';
Test1.CoderInfo.CustomAttributes.Owner = '';
Test1.CoderInfo.CustomAttributes.PersistenceLevel = 1;
Test1.Description = '';
Test1.DataType = 'uint16';
Test1.Min = [];
Test1.Max = [];
Test1.DocUnits = 'MV';
  • 运行后,工作区会出现这两个变量
    在这里插入图片描述
  • 使用常量模块和信号线的Signal name must resolve to Simulink signal object,将变量和工作区变量进行连接,然后生成代码即可
    在这里插入图片描述
  • 生成代码后,可以看到和想象中的一样,此时就可以新建一个C文件,然后将变量与底层进行关联了,不需要再看模型生成的代码了
    在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/523679.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二. CUDA编程入门-双线性插值计算

目录 前言0. 简述1. 执行一下我们的第十个CUDA程序2. Bilinear interpolation3. 代码分析总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战课程》,链接。记录下个人学习笔记,仅供自己参考 Note:关于 CUDA 加速双线程插值的内容博主…

王权与自由国际服加速器推荐 一键下载王权与自由加速器分享

《王权与自由》,还记得第一天进游戏各个服务器爆满锁服的盛况,好不容易挤进去,地图上人山人海,NPC埋没在玩家的人海里,差点找不到。迎来了12月20日的大型更新后,再进入游戏,服务器每一个都空闲无…

【C语言】函数递归编程题

目录 题目一: 题目二: 题目三: 题目四: 总结 题目一: 题目:接受一个整型值(无符号),按照顺序打印它的每一位。(递归完成) 列如: …

0104练习与思考题-算法基础-算法导论第三版

2.3-1 归并示意图 问题:使用图2-4作为模型,说明归并排序再数组 A ( 3 , 41 , 52 , 26 , 38 , 57 , 9 , 49 ) A(3,41,52,26,38,57,9,49) A(3,41,52,26,38,57,9,49)上的操作。图示: tips::有不少在线算法可视化工具(软…

C#基础:类,对象,类成员简介(第四节课)

本节内容: 类与对象的关系 什么时候叫“对象”,什么时候叫实例引用变量与实例的关系 类的三大成员 属性方法事件 类的静态成员与实例成员 关于“绑定” 1.什么是类:(再详细一点) 类是对现实世界事物进行抽象所…

网络基础三——初识IP协议

网络基础三 ​ 数据通过应用层、传输层将数据传输到了网络层; ​ 传输层协议,如:TCP协议提供可靠性策略或者高效性策略,UDP提供实时性策略,保证向下层交付的数据是符合要求的的;而网络层,如&a…

59 使用 uqrcodejs 生成二维码

前言 这是一个最近的一个来自于朋友的需求, 然后做了一个 基于 uqrcodejs 来生成 二维码的一个 demo package.json 中增加以依赖 "uqrcodejs": "^4.0.7", 测试用例 <template><div class"hello"><canvas id"qrcode&qu…

2023天梯赛

2023天梯赛 L1-089 最好的文档 分数 5 作者 陈越 单位 浙江大学 有一位软件工程师说过一句很有道理的话&#xff1a;“Good code is its own best documentation.”&#xff08;好代码本身就是最好的文档&#xff09;。本题就请你直接在屏幕上输出这句话。 输入格式&…

豆瓣9.7,这部Java神作第3版重磅上市!

Java 程序员们开年就有重磅好消息&#xff0c;《Effective Java 中文版&#xff08;原书第 3 版&#xff09;》要上市啦&#xff01; 该书的第1版出版于 2001 年&#xff0c;当时就在业界流传开来&#xff0c;受到广泛赞誉。时至今日&#xff0c;已热销近20年&#xff0c;本书…

使用GDAL进行简单的坐标系转换

使用GDAL进行简单的坐标系转换 使用python GDAL进行简单的坐标系转换&#xff0c;暂时不考虑不同基准坐标系转换的精度问题。 安装环境 使用UbuntuAnaconda python 环境 conda install gdal 定义坐标系 from osgeo import gdal from osgeo import osrsrs_wgs84 osr.Spati…

【边缘智能】00_边缘计算发展背景

本系列是个人学习《边缘就算基础知识入门》的笔记&#xff0c;仅为个人学习记录&#xff0c;欢迎交流&#xff0c;感谢批评指正 移动物联设备产生海量数据&#xff0c;数据密集型移动智能应用&#xff0c;计算密集、动态性高&#xff0c;实时性强 传统云计算架构 基于广域互联…

文件上传【1】

1.文件上传更改上传类型 上传文件时存在上传类型固定&#xff08;jpg、png、gif&#xff09;如果是前端确定&#xff08;弹窗&#xff0c;后端未出现请求确定是前端&#xff09;只需要在设置中禁用js代码或抓包更改文件后缀名就可以上传其他类型的文件&#xff08;亦可用于复制…

我关注的测试仪表厂商之Sifos,PoE测试

#最近看看行业各个厂商的网站&#xff0c;看看他们都在做什么# 先从Sifos开始&#xff0c;一直觉得这是家很特别的公司&#xff0c;在PoE测试这块是个无敌的存在。之前在上一家台资测试仪表公司的时候&#xff0c;也有推出过类似的基于产线验证的解决方案&#xff0c;最后因为…

【Java网络编程】计算机网络基础概念

就目前而言&#xff0c;多数网络编程的系列的文章都在围绕着计算机网络体系进行阐述&#xff0c;但其中太多理论概念&#xff0c;对于大部分开发者而言&#xff0c;用途甚微。因此&#xff0c;在本系列中则会以实际开发者的工作为核心&#xff0c;从Java程序员的角度出发&#…

如何使用Java和RabbitMQ实现延迟队列?

前言 今天我们使用Java和RabbitMQ实现消息队列的延迟功能。 前期准备&#xff0c;需要安装好docker、docker-compose的运行环境。 需要安装RabbitMQ的可以看下面这篇文章。 如何使用PHP和RabbitMQ实现消息队列&#xff1f;-CSDN博客 今天讲的是依赖RabbitMQ的延迟插件实现…

(React生命周期)前端八股文修炼Day8

一 React的生命周期有哪些 React组件的生命周期可以分为三个主要阶段&#xff1a;挂载&#xff08;Mounting&#xff09;、更新&#xff08;Updating&#xff09;和卸载&#xff08;Unmounting&#xff09;。React类组件的生命周期方法允许你在组件的不同阶段执行代码。 挂载…

多线程4

死锁 想获取到第二把锁&#xff0c;就需要执行完第一层大括号&#xff0c;想要执行完第一层大括号&#xff0c;就要先获取到第二层的锁。 synchronized (counter2){ synchronized (counter2){} } 例子:t2先启动&#xff0c;t2进行加锁后一定成功&#xff0c;但是如果t2进行二…

[AI in sec]-039 DNS隐蔽信道的检测-特征构建

DNS隐蔽信道是什么 DCC是指利用DNS数据包中的可定义字段秘密传递信息的通道。其中,“DNS 协议”是目前网络上使用的标准域名解析协议;“可定义字段”是DNS 数据包中的 QNAME 字段、RDATA 字段及RawUDP字段。利用DNS数据包可以构建2种信道:存储信道及时间信道。DCC可以被用于…

【GameFi】 Brilliantcrypto点火活动

活动&#xff1a;https://app.galxe.com/quest/brilliantcrypto/GCt8wthq2J Brilliantcrypto点火活动正在Galxe上进行 &#x1f389; 活动时间&#xff1a;2024/04/06 12:00 ~ 2024/05/04 12:00 奖励总价值1200美元的MATIC 完成任务並在Brilliantcrypto Galxe Space上赚取积分。…

[dvwa] Command Injection

命令注入 0x01 low 没有过滤&#xff0c;直接利用 127.0.0.1 && ip a 函数 php_uname(mode) 动态地检查服务器的操作系统 ‘s’&#xff1a;操作系统名称 ‘n’&#xff1a;网络主机名 ‘r’&#xff1a;操作系统发行版本号 ‘v’&#xff1a;操作系统版本 ‘m’&…