向量算子优化Vector Operation Optimization

查看MATLAB命令View MATLAB Command

示例显示Simulink编码器 ,将生成向量的块输出,设置为标量,优化生成的代码,例如Mux、Sum、Gain和Bus。这种优化通过用局部变量替换临时局部数组来减少堆栈内存。

示例模型Example Model

模型采用矢量优化rtwdemo_VectorOptimization,增益块G1和G2的输出为矢量信号tmp1和tmp2。向量的宽度为10。

model = 'rtwdemo_VectorOptimization';

open_system(model);

set_param(model, 'SimulationCommand', 'update')

Generate Code

为生成和检查过程,创建临时文件夹(在系统临时文件夹中)。

currentDir = pwd;

[~,cgDir] = rtwdemodir();

Build the model.

rtwbuild(model)

### Starting build procedure for: rtwdemo_VectorOptimization

### Successful completion of build procedure for: rtwdemo_VectorOptimization

Build Summary

Top model targets built:

Model                       Action                       Rebuild Reason

===========================================================================================================

rtwdemo_VectorOptimization  Code generated and compiled  Code generation information file does not exist.

1 of 1 models built (0 models already up to date)

Build duration: 0h 0m 25.92s

The optimized code is in rtwdemo_VectorOptimization.c. The signals tmp1 and tmp2 are the local variables rtb_tmp1 and rtb_tmp2.

cfile = fullfile(cgDir,'rtwdemo_VectorOptimization_grt_rtw',...

'rtwdemo_VectorOptimization.c');

rtwdemodbtype(cfile,'/* Model step', '/* Model initialize', 1, 0);

/* Model step function */

void rtwdemo_VectorOptimization_step(void)

{

real_T rtb_Sum3;

real_T rtb_tmp1;

real_T rtb_tmp2;

int32_T i;

for (i = 0; i < 10; i++) {

/* Gain: '<Root>/G2' incorporates:

*  UnitDelay: '<Root>/X2'

*/

rtb_tmp2 = 0.3 * rtwdemo_VectorOptimization_DW.X2_DSTATE[i];

/* Gain: '<Root>/G1' incorporates:

*  UnitDelay: '<Root>/X1'

*/

rtb_tmp1 = 0.2 * rtwdemo_VectorOptimization_DW.X1_DSTATE[i];

/* Sum: '<Root>/Sum3' incorporates:

*  Gain: '<Root>/G3'

*  Inport: '<Root>/In2'

*  Sum: '<Root>/Sum1'

*  Sum: '<Root>/Sum2'

*  UnitDelay: '<Root>/X3'

*/

rtb_Sum3 = ((rtwdemo_VectorOptimization_U.In2[i] - 0.4 *

rtwdemo_VectorOptimization_DW.X3_DSTATE[i]) - rtb_tmp2) -

rtb_tmp1;

/* Outport: '<Root>/Out2' */

rtwdemo_VectorOptimization_Y.Out2[i] = rtb_Sum3;

/* Update for UnitDelay: '<Root>/X3' */

rtwdemo_VectorOptimization_DW.X3_DSTATE[i] = rtb_tmp2;

/* Update for UnitDelay: '<Root>/X2' */

rtwdemo_VectorOptimization_DW.X2_DSTATE[i] = rtb_tmp1;

/* Update for UnitDelay: '<Root>/X1' */

rtwdemo_VectorOptimization_DW.X1_DSTATE[i] = rtb_Sum3;

}

}

关闭模型和代码生成报告

bdclose(model)

rtwdemoclean;

cd(currentDir)

向量算子优化Vector Operation Optimization的更多相关文章

  1. 数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization)

    数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization) 2015年12月27日 18:51:19 下一步 阅读数 43 ...

  2. 算法中的优化问题(optimization problem)

    和多数算法不同的是,有些问题的答案不只一个,而是需要在多个答案中,按照一定标准选出"最佳"答案,这类问题就统称为"优化问题"(optimization prob ...

  3. 数值优化(Numerical Optimization)学习系列-目录

    数值优化(Numerical Optimization)学习系列-目录 置顶 2015年12月27日 19:07:11 下一步 阅读数 12291更多 分类专栏: 数值优化   版权声明:本文为博主原 ...

  4. 吴恩达机器学习笔记41-支持向量机的优化目标(Optimization Objective of Support Vector Machines)

  5. 数值优化(Numerical Optimization)学习系列-文件夹

    概述 数值优化对于最优化问题提供了一种迭代算法思路,通过迭代逐渐接近最优解,分别对无约束最优化问题和带约束最优化问题进行求解. 该系列教程能够參考的资料有 1. <Numerical Optim ...

  6. [转] 数值优化(Numerical Optimization)学习系列-目录

    from:https://blog.csdn.net/fangqingan_java/article/details/48951191 概述数值优化对于最优化问题提供了一种迭代算法思路,通过迭代逐渐接 ...

  7. 凸优化简介 Convex Optimization Overview

    最近的看的一些内容好多涉及到凸优化,没时间系统看了,简单的了解一下,凸优化的两个基本元素分别是凸函数与凸包 凸集 凸集定义如下: 也就是说在凸集内任取两点,其连线上的所有点仍在凸集之内. 凸函数 凸函 ...

  8. Dijkstra算法堆优化(vector建图)

    #include<iostream> #include<algorithm> #include<string.h> #include<stdio.h> ...

  9. 凸优化 Convex Optimization PDF 扫描文字识别版

    凸优化理论 Convex Optimization 清华大学出版社 王书宁许窒黄晓霖译 Stephen Boyd Lieven Vandenbergt原著 2013 年l 月第1 版 下载链接 链接: ...

随机推荐

  1. 【Java】 Java中的浅拷贝和深拷贝

    先抛出结论: 浅拷贝是引用拷贝,A对象拷贝B以后,A对象和B对象指向同一块内存地址,改变A对象的属性值会触发B对象属性的改变,有安全风险 深拷贝是对象拷贝,A对象拷贝B以后,A对象和B对象指向不同的额 ...

  2. 路由器逆向分析------MIPS交叉编译环境的搭建(Buildroot)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68950682 为了能在我们熟悉的windows或者ubuntu下开发mips架构的 ...

  3. WDK 标准数据类型

    刚刚看到vs2012可以完美支持wdk开发,心中窃喜,正要下载,竟然看到xp不在其支持范围内, 这让刚刚从win7换过来的我真是DT,算了,还是和学习资料保持一致,反正学习的重点不是方便 正题: 为了 ...

  4. Mybatis-Plus02 CRUD

    先将快速开始01看完,再看这个文档 配置日志 我们所有的sql现在都是不可见的,我们希望知道它是怎么执行的,所以我们就必须看日志,开发的时候打开,上线的时候关闭 在application.proper ...

  5. Pytorch系列:(五)CNN

    卷积 Conv2d 2D卷积函数和参数如下 nn.Conv2d( in_channels, out_channels, kernel_size, stride=1, padding=0, dilati ...

  6. 团队任务拆解$\alpha$

    项目 内容 班级:2020春季计算机学院软件工程(罗杰 任健) 博客园班级博客 作业要求 团队任务拆解 我们在这个课程中的目标 提升团队管理及合作能力,开发一项满意的工程项目 这个作业对我们实现目标的 ...

  7. Mac 将 App 程序打包成为 dmg

    用最简单的打包方式,将自己开发的App打包成为DMG,实现共享分发,快速安装 1. 新建DMG 打开磁盘工具,新建DMG File->New Image->Blank Image 创建DM ...

  8. 神奇的不可见空格<200b>导致代码异常

    故事是这样发生的,在做一个JSON对象转化的时候,出现了转化异常:刚开始还是以为是格式错误,后来一步步排除,才发现是不可见空格<200b>导致的解析异常 出现 使用Typora编写文字时, ...

  9. Win7通过cmd进入d盘的方法

    Win7通过cmd进入d盘的方法 时间:2016-05-13 15:06:03 作者:yunchun 来源:系统之家  手机查看 评论 我们在使用Win7系统过程中,对于经常使用DOS程序的朋友们来说 ...

  10. sed -n "29496,29516p" service.log:从29496行开始检索,到29516行结束

    在工作中常用的Linux命令  javalinux 发布于 2019-07-24   约 11 分钟 前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://gith ...