1724_simulink一维查表功能实现以及代码生成

全部学习汇总: GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral years ago. (github.com)

说起来,在实现某个简单的功能的时候我通常使用代码,使用的模型还是偏少一些。喜欢写代码一方面是因为自己的惯性和习惯,另一方面确实是因为我对模型开发技术了解的不够透彻。

看看现在汽车电子行业的开发模式,模型开发的优势确实是显而易见的,这也成了行业的主流模式。不过,如果让我自己说一下那些地方模型开发能够比写代码有优势,我自己还是觉得说不太清楚。

自己的经验来说,模型开发的主要优势有三个:第一个是可以仿真,这在一定程度上提前了Bug的修复环节;第二个在于对人员的编程功底要求低;第三个是便于重用而且有很多现成的模块。

我自己进行模型开发还是偏少,真正到了开发阶段的对比,我倒觉得代码的灵活度要好得多。不过,说到化繁为简的功能,有两个功能确实是让我印象深刻。其中一个我之前在我的博客中大致写了一下,是CAN通讯的收发功能,这个需要独立的license支持。另外一个则相对通用一些,那就是查表函数。

从一个简单的一维查表说起吧!如果需要做三角函数的运算,直接通过级数等运算方式计算效率相对来说比较低。不过,在嵌入式中很多时候要求的是实时性跟准确性的一个杂合体,而当精度足够高的时候计算数值在一定程度上可以放宽一些。这样,查表就凸显的比较有用了。

下面搭建一个简单的正弦查表函数,并进行代码生成。

模型:

上面是一个查表功能的实现,想让让代码能够做到如此清晰直观,那还是有很大的挑战度的。

数据定义:输入的查表轴是[0,2*pi]之间等间距的256个点。表格则是根据前面的轴进行了正弦函数的精确计算,数据定义全都采用了浮点。跟手写代码相比,简单的不仅仅是查表的函数功能,数据表也比较容易实现,尤其是这种比较具有规律性的数据。通过MATLAB内置的linspace函数以及正弦函数就可以轻松实现数据定义。

简单的配置后,使用Embeded Coder进行代码生成。略去查表函数不去看,直接看一下数据定义便可以体验出基于模型开发的一点优势了:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值