如何在Simulink中使用syms?换个思路解决报错:Function ‘syms‘ not supported for code generation.

问题描述

在Simulink中的User defined function使用syms函数,报错simulink无法使用外部函数。

具体来说:

我想在Predefined function定义如下符号函数作为输入信号,在后续模块传入函数参数赋值,以实现一次定义多次使用,并避免求导时手动修改函数形式:

syms t B A T Phi; 

f = A*sin(2*pi/T*t + Phi)+B;

ps:赋值,符号变量到数值变量的计算过程可使用:

tmp = subs(f,{A,B,T,Phi,t},{A_,B_,T_,Phi_,t_});

value = double(tmp);

结果Sinmulink报错:独立代码生成不支持函数'syms,代码生成器不支持等..Function 'syms' not supported for code generation.

解决方案

思路:不在Simulink中显式使用syms定义变量,将该步骤放到Matlab脚本函数中运行。

举例:同上文例程,将该函数(Predefined function)写在Simulink外部,即Matlab工作目录;然后,在Simulink内部使用coder对象传入参数调用该函数。函数在外部的文件为symsSine.m。

function y = fcn(~)
%将值传入外部函数,返回值供内部使用
coder.extrinsic('symsSine');
A_ = 6;
B_ = 5;
T_ = 10*pi;
Phi_ = 2*pi;
t_ = pi;
y=zeros(1);

[f,u] =  symsSine(A_,B_,T_,Phi_,t_)

y = u;

结果:

实现了期望功能,且syms定义的符号变量 f 并未在Simulink中报错。

进一步,可以实现在Simulink中继续使用返回的符号变量/函数..

如进行diff求导:

f1 = diff(f)

输出:

以上

参考

如何在Simulink Matlab函数中使用符号变量和函数 Syms..

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

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

相关文章

Pix2Pix 使用指南:从原理到项目应用

Pix2Pix Pix2Pix 介绍:使用条件 GAN 进行图像到图像的转换Pix2Pix 原理Pix2Pix 模型结构生成器:Unet结构判别器:PatchGAN目标函数目标函数总结 Pix2Pix 项目使用 Pix2Pix 介绍:使用条件 GAN 进行图像到图像的转换 Pix2Pix 论文&a…

预制菜产业发展背景下,如何利用视频监控保障行业监管工作

一、方案背景 随着社会的快速发展和人们生活水平的提高,预制菜产业作为现代餐饮行业的重要组成部分,越来越受到消费者的欢迎。然而,由于相关监管工作的不健全或不到位,一些问题也相继浮现出来,如:食品安全…

比较2个点的3种结构在不规则平面上的占比

2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 2 2 3 3 3 x 3 3 2 2 2 1 2 2 2 2 2 1 2 2 在平面上有一个点x,再增加一个点,11的操作把平面分成了3部分2a1,2a2,2a3,3部分的比值是 2a1 2a2 2a3 5 25 …

2023年微软开源八个人工智能项目

自2001年软件巨头微软前首席执行官史蒂夫鲍尔默对开源(尤其是Linux)发表尖刻言论以来,微软正在开源方面取得了长足的进步。继ChatGPT于去年年底发布了后,微软的整个2023年,大多数技术都是面向开发人员和研究人员公开发…

NX二次开发UF_CSYS_set_origin 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_set_origin Defined in: uf_csys.h int UF_CSYS_set_origin(tag_t csys_tag, double origin [ 3 ] ) overview 概述 Set origin of coordinate system. Note that this fu…

TFA-Net

TFA SCA means ‘Self-Context Aggregation’ 作者未提供代码

leetcode:环形链表的入环点

题目描述 题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 题目分析 我们假设起点到环的入口点的距离是L,入口点到相遇点的距离是X,环的长度是C 那么画图我们可以得知: 从开始到相遇时slow走的距离是LX从…

Matplotlib图形注释_Python数据分析与可视化

Matplotlib图形注释 添加注释文字、坐标变换 有的时候单单使用图形无法完整清晰的表达我们的信息,我们还需要进行文字进行注释,所以matplotlib提供了文字、箭头等注释可以突出图形中重点信息。 添加注释 为了使我们的可视化图形让人更加容易理解&#…

视频监控中的智能算法与计算机视觉技术

智能视频监控是一种基于人工智能技术的监控系统,它能够通过对图像和视频数据进行分析,自动识别目标物体、判断其行为以及进行异常检测等功能,从而实现对场景的智能化监管。以下是常见的一些用于智能视频监控的算法: 1、人脸识别技…

资深测试整理,压力测试-如何做压力测试?一篇打通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、什么是压力测试…

服务台需要跟踪的3个重要指标MTBF+MTTF+MTTR

衡量标准是IT服务管理的核心,可提供有关运营的见解,并帮助确定需要持续改进的领域。通常的服务台指标有助于展示内部运营效率。例如,衡量在规定时间内解决问题的工单数量的 SLA 是展示服务台效率的关键因素。另一方面,故障指标可帮…

《微信小程序开发从入门到实战》学习二十七

3.4 开发参与投票页面 3.4.2 借用伪造数据开发功能 为了便于开发,新建一个编译模式: 之前没看文章,每次都习惯性填完投票创建的信息提交再跳转看效果。好累。 添加变异模式开发真方便。 另外,点击提交后没跳转到投票页面&#…

CCCCCCC指针CCCCC

本文介绍[ shared_ptr / unique_ptr / weak_ptr ]的使用,以及shared_ptr 引用计数和weak_ptr 弱引用计数。 1. 智能指针概述 C程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理。程序员自己管理堆内存可以提高了程序的效率…

查企业联系电话的方法

对于销售来说,获取准确、全面的企业联系方式,无疑是开发客户的基础与保障,因为任凭能力再高,说服能力多强,没有与客户接触的机会,这些都是无稽之谈。但是大家都知道,道理都懂,但是要…

C++算法 —— 贪心(3)

文章目录 1、买卖股票的最佳时机2、买卖股票的最佳时机Ⅱ3、K次取反后最大化的数组和4、按身高排序5、优势洗牌6、最长回文串7、增减字符串匹配 1、买卖股票的最佳时机 121. 买卖股票的最佳时机 这里最容易想到的就是暴力枚举,两层for循环,i 0&#xf…

分布式链路追踪实战篇-日志库集成opentelemetry的思路

由上文分布式链路追踪入门篇-基础原理与快速应用可以知道分布式链路追踪的作用,但是距离应用到项目中,我们还需要对项目中一些关键组件进行opentelemetry的集成,例如日志库,ORM、http框架、rpc框架等。 一、日志库如何集成opentel…

设计模式-创建型模式-工厂方法模式

一、什么是工厂方法模式 工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。工厂方法模式是目标是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。…

美创联合浙江省农业农村厅斩获“IDC中国20大杰出安全项目”!

11月23日,由IDC主办,以“安全风险管控:新形势下的数据安全保护”为主题的2023全球CSO网络安全峰会(中国站)隆重召开。 会上,IDC “中国20大杰出安全项目(CSO20)” 重磅揭晓&#xff…

Linux中df命令使用

在Linux中,df命令用于显示磁盘空间的使用情况。它的基本语法如下: df [选项] [文件或目录]这个命令可以用来查看当前系统上各个磁盘分区的使用情况。如果没有指定文件或目录,则所有当前被挂载的文件系统的可用空间将被显示。 df命令的一些常…

手把手用GPT开发小程序全流程!就是这么easy~

大家好,我是五竹。 前段时间用GPT开发了一款小程序:GPT真牛批!三天开发一个小程序,三天积累了2000的用户,上周末抽空又接入了流量主,感兴趣的同学可以围观一下。 今天就来带大家走一遍用GPT开发一款小程序的全过程&a…