向量算子优化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. 关于js中的回调函数callback,通俗易懂

    前言 其实我一直很困惑关于js 中的callback,困惑的原因是,学习中这块看的资料少,但是平时又经常见,偶尔复制一下前人代码,功能实现了也就不再去追其原由,这么着,这个callback的概念就越来 ...

  2. 从苏宁电器到卡巴斯基第29篇:难忘的三年硕士时光 VII

    我们可能无家可归 那天晚上和导师道别后,我们几个还聚在一起开了一个小会.当时大家觉得最坏的情况就是学院不肯让步,不能满足我们导师提出的条件.那么这样的话,我们几个只能够重新找导师了.而我们数媒专业里面 ...

  3. Android内核的编译和调试

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/70500488 一.Android内核源码的选择 Android手机设备内核源码的调 ...

  4. ART模式下基于Xposed Hook开发脱壳工具

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/78092365 Dalvik模式下的Android加固技术已经很成熟了,Dalvik ...

  5. 【转】Python调用C语言动态链接库

    转自:https://www.cnblogs.com/fariver/p/6573112.html 动态链接库在Windows中为.dll文件,在linux中为.so文件.以linux平台为例说明py ...

  6. Django(15)外键和表关系

    外键删除操作 如果一个模型使用了外键.那么在对方那个模型被删掉后,该进行什么样的操作.可以通过on_delete来指定.可以指定的类型如下: CASCADE:级联操作.如果外键对应的那条数据被删除了, ...

  7. Scrum Meeting 3

    Basic Info where:三号教学楼 when:2020/4/27 target: 简要汇报一下已完成任务,下一步计划与遇到的问题 Progress Team Member Position ...

  8. 从零搭建springboot服务03-redis消息订阅

    愿历尽千帆,归来仍是少年 1.所需依赖 <!-- Redis依赖 --> <dependency> <groupId>org.springframework.boo ...

  9. JAVA基础——标识符和数据类型

    注释 单行注释 // 多行注释 /* */ 文档注释 /***/ 标识符和关键字 所有的标识符都应该以字母(A-Z或者a-z),美元符号($),或者下划线(_)开始 首字符之后可以时字母(A-Z或者a ...

  10. micro 从cli的tag中获取配置

    官方文档: https://micro.mu/docs/go-config.html https://github.com/micro/go-micro/tree/master/config/sour ...