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文件,然后将变量与底层进行关联了,不需要再看模型生成的代码了
    在这里插入图片描述在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3组件基础示例

组件是vue中最推崇的,也是最强大的功能之一,就是为了提高重用性,减少重复性的开发。 如何使用原生HTML方法实现组件化 在使用原生HTML开发时,我们也会遇到一些常见的功能、模块,那么如何在原生HTML中使用组件化呢&am…

Android OkHttp

目录 1.build.gradle 2.基本使用 3.POST请求 4.Builder构建者 1.build.gradle implementation("com.squareup.okhttp3:okhttp:4.12.0") 2.基本使用 GET同步请求 public void getSync(View view) {new Thread(){Overridepublic void run() {Request request …

C语言初阶--12数组

文章目录 二维数组的创建和初始化二维数组的创建二维数组的初始化二维数组的使用二维数组在内存中的存储 数组越界数组作为函数参数冒泡排序函数数组名是什么? 二维数组的创建和初始化 二维数组的创建 //数组创建 int arr[3][4]; double arr[2][4]; 二维数组的初始…

HTML中meta标签的作用

1.搜索引擎优化 通过设置关键词(keywords)、描述(description)等属性,帮助搜索引擎更好地理解网页内容,从而提高网页在搜索结果中的排名 2.定义页面使用的语言 通过charset属性指定文档的字符集&#xff0…

windows通过cmd终止线程

1、使用 netstat 命令查看特定端口的占用情况。例如,要查看端口号为 8080 的情况,可以执行以下命令: netstat -ano | findstr :9009这将显示所有占用端口 9009的网络连接,并列出 PID(进程标识符)。 2、终止…

Spring Security——10,其他权限校验方法

其他权限校验方法 一、hasAnyAuthority方法二、hasRole方法三、hasAnyRole方法一键三连有没有捏~~ 前面都是使用PreAuthorize注解,然后在在其中使用的是hasAuthority方法进行校验。 SpringSecurity还为我们提供了其它方法例如:hasAnyAuthority&#xff…

Steam上线真人乙游,女性玩家还愿意买单吗?

Steam上线了一款真人乙游《糟糕!他们太爱我了怎么办?》(以下简称《糟糕!)。 乍一听这个游戏名,似乎和《完蛋!我被美女包围了!》有异曲同工之妙,事实也确实如此&#xff…

data-diff,一个超强的 Python 库!

目录 前言 安装 特性 基本功能 字典比较 列表比较 集合比较 嵌套数据结构比较 高级功能 比较忽略特定字段 自定义差异显示 数据快照比较 实际应用场景 数据监测和审计 配置管理 测试验证 总结 前言 大家好,今天为大家分享一个超强的 Python 库 - data-diff …

2024使用VMware® Workstation 17 Pro部署Ubuntu22.04

官网下载镜像 https://ubuntu.com/download/server,配置好vmware的NAT网络。 常用设置 # root用户登录设置,用 sudo 也一样。 sudo passwd root vi /etc/ssh/sshd_config systemctl restart sshdVMware的网络问题 # 遇到的问题 # 1.明明显示已经连上…

挑战30天C++基本入门(DAY8--树)[part 3](速通哦~)

#上一章我们把搜索二叉树的知识给传授完毕,如果认真的看下去并且手打了几遍,基本上内部的逻辑还是可以理解的,那我们现在就截至继续学习树的一些重要知识啦~~ 树高怎么求呀?如果用上一次学的层次遍历来求树高,有点小题…

SeLinux安全上下文文件

在SeLinux 框架中,需要为每个主体和客体设置好安全上下文。在Android中,常见的安全上下文文件有file_contexts、genfs_contexts、service_contexts、mac_permissions.xml和seapp_contexts file_contexts 根系统中所有文件的安全上下文, 如/…

Redis分布式锁的实现核心思路

4.2 、Redis分布式锁的实现核心思路 实现分布式锁时需要实现的两个基本方法: 获取锁: 互斥:确保只能有一个线程获取锁非阻塞:尝试一次,成功返回true,失败返回false 释放锁: 手动释放超时释放&…

面试篇:杂乱篇

String s " "; 1. String类的常用方法有哪些? s.length(): 返回字符串长度s.substring(): 截取字符串s.split(): 分割字符串s.equlas(): 字符串比…

ubuntu18.04-arm7v架构下构建Telegraf自定义系统服务

ubuntu18.04-arm7v架构下构建Telegraf自定义系统服务 通过交叉编译后的Telegraf可执行文件使用nohup启动后,在系统重启时,有时候会忘记再把它启动起来。这个时候我们就可以将其定义成系统服务,让系统来帮忙管理。 创建telegraf.service文件 …

Chapter 1 Basic Concepts of Communication and Communication Systems

1.1 The Concept of Communication communication【通信】:It is the process of using signals to transmit messages containing information in space. To put it simply, communication is the spatial transmission of information【信息的空间传递】Information【信息】…

linux CentOS7配置docker的yum源并安装

[TOC](这里写目录标题 配置yum源Docker的自动化安装一些其他启动相关的命令: 配置yum源 使用以下命令下载CentOS官方的yum源文件 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 清除yum缓存 yum clean all 更新yum缓存…

上升Chrome安装Vue插件vue-devtools

Chrome安装Vue插件vue-devtools的步骤如下: 打开Chrome浏览器,点击地址栏右侧的三个点图标,选择“更多工具”->“扩展程序”。在打开的扩展程序页面,点击右上角的“打开Chrome网上应用店”。在Chrome网上应用店中搜索“Vue De…

【JavaWeb】Day35.MySQL概述——数据库设计-DDL(二)

表操作 关于表结构的操作也是包含四个部分:创建表、查询表、修改表、删除表。 1.创建 语法 create table 表名( 字段1 字段1类型 [约束] [comment 字段1注释 ], 字段2 字段2类型 [约束] [comment 字段2注释 ], ...... 字段n 字段n类型 [约束] [comment …

藏不住了!这20个技术点是运维老手的秘密武器

你们好,我的网工朋友。 信息技术系统的正常运行直接关系到企业或生产的正常运行。 然而,网工经常面临以下问题:网络速度慢、设备故障和应用系统效率低。 任何信息技术系统的故障,如果不及时处理,都会产生很大的影响…

@RequestBody与@RequestParam的区别

RequestBody会将请求体中的数据,转换成对象 RequestParam会从http请求查询参数中提取数据 RequestParam和RequestBody是Spring Framework中用于处理HTTP请求的注解,它们有以下区别: 1.数据来源: RequestParam: 从HTTP请求的查询参数中提取…