simulink曲线如何将不知道公式的曲线往左移动

这是配置文件为什么做不出正弦曲线?sinewave直接连的scope为什么不是正弦曲线... 这是配置文件,为什么做不出正弦曲线?

    按照你给的频率2*pi*1000也就是1000Hz的信号,要想体现出正弦波的形状烸个周期至少应该取5-10个点,那么步长(Max step size)最大只能取 0.2(当然要想得到平滑的波形,步长还应该取的更小一些)

    你对这个回答的评价是?

}

该楼层疑似违规已被系统折叠 

本囚在用matlab2014b中的scope进入属性操作界面对曲线进行颜色设置却无反应不知道有什么办法解决?


}

    simulink曲线自带了种类繁多、功能强大嘚模块库在基于模型设计的开发流程下,simulink曲线不仅通过仿真可以进行早期设计的验证还可以生成C/C++、PLC等代码直接应用于PC、MCU、DSP等平台。在嵌入式软件开发中发挥着重要的作用本文以simulink曲线模型生成嵌入式C代码为例分析代码生成的原理及应用。

一、根据需求建立系统框图

 低通濾波:又叫一阶惯性滤波或一阶低通滤波,是使用软件编程实现普通硬件RC低通滤波器的功能适用于单个信号有高频干扰信号的情形

    式中:是滤波系数;是本次采样值;是上次滤波输出值;是本次滤波输出值。

根据以上计算公式可以建立如下图所示模型:

Configuration Parameter中集中管悝着模型的代码生成方法、格式等约束条件为了生成嵌入式代码,至少需要配置三部分:模型的解算器solver模型的系统目标文件(如ert. tlc或其怹自定义的嵌入式系统目标文件),硬件实现规定(Hardware Implenmatation)

 解算器类型必须选择固定点解算器。固定点solver中提供了多种算法此模型由于没有連续状态,可以选择discrete方法步长默认auto在简单的通用嵌入式代码生成过程中此参数没有实际作用可以采用默认或设置0.01s。而在针对目标芯爿定制的代码生成过程中硬件驱动具箱往往会将步长step size作为其外设或内核中定时器的中断周期,使得生成的算法代码在硬件芯片中以同樣的时间间隔执行并且由于解算器步长为整个模型提供了一个基础采样频率,故被称为基采样率(base-rate)

当模型中使用参数变量,如Gain模块的增益值在生成代码时,如果希望使用该参数的值直接展开到代码中就需要设置参数内联选项,如下图所示框中选项:

         Inline parameters选项决定是否将参數内联到代码中去勾选此选项后,代码生成时模型的参数将以常数方式直接生成到代码逻辑中不再以一个参数变量的形式生成。当模型中的参数需要作为实时可调的参数生成到代码中时不勾选Inline parameter,参数将作为变量生成;如果不需要实时调整参数可以选择节省存储空间嘚方式,勾选Inline parameter将参数以数值常数的形式生成到代码中。

Hardware Implenmatation选项是规定目标硬件规格的选项在这个选项卡中可以配置芯片的厂商和类型,設置芯片的字长、字节顺序等学习使用通用嵌入式芯片为目标的代码生成流程及原理,选择32位嵌入式处理器作为芯片类型如下图所示框中部分:

tlc文件是Embedded Coder提供的能够生成专门用于嵌入式系统C代码的系统目标文件。在Code Generation页面中单击下图所示右上角Browse按钮可以弹出对话框以选择系统目标文件:

在选择框中选择ert. tlc之后Code Generation标签页下面的子标签也会发生变化提供更多的功能选项标签,如下图所示方框内为新增子标签:

(1)Report子标签能够打开设置关于生成代码报告的页面,可以选择是否创建HTML格式的代码生成报告并通过勾选框选择是否在模型编译结束后洎动打开。其对话框页面如下图7所示:

(2)Comments子标签中包含对生成代码中注释内容的配置其对话框如下图所示:

选项以生成注释,注释中帶有可以从代码跳转到对应模型的超链接方便追溯模块与代码的对应关系。

    (3)Symbol子标签页面用于设置ert.tlc—族系统目标文件控制下的代码生荿不变定义规则如下图所示:

这些符号包括数据变量和数据类型定义、常量宏、子系统方法、模块的输出变量、局部临时变量及命名的朂长字符数等。

内部使用的标示符如下图所示:

这些标示符的具体意义如下表所列:

 通过上表各种标示符的不同组合,即可规定生成代碼中各部分(变量、常量、函数名、结构 体及对象)的名称的生成规则

         simulink曲线提供的这些标示符生成的变量名虽然可读性不强,但是不会引起代码编译错误推荐使用默认设置,不要为了提高生成代码可读性轻易进行修改以免造成不必要的错误。以后会学习更好更安全的提高代码可读性的优化方法

    (4)Custom Code子标签页面主要用于添加用户自定义的或者编译模型时必需的源文件、头文件、文件夹或者库文件等,其页面如下图所示:

定义一个表根据表格将simulink曲线模块与所对应目标语言的数学函数及操作函数库挂接,以便从模型生成代码Embedded Coder提供默认嘚CPL

Support参数组由7个选择框构成如下:

 每个选择框代表一种嵌人式编码器对代码生成的支持功能,其中一些功能是需要simulink曲线供的头文件来支持才能编译为目标文件的这些头文件一部分存储在路径为MATLABroot\ simulink曲线\include的文件夹中,一部分是在模型生成代码过程中自动生成的(rt开头的头文)具体参考下表:

(6)Code Style子标签页面提供了一些关于生成代码风格的选择框选项,如if else分支的完整性确保if else与switch case语句的选用,生成括号的频度昰否保留函数声明中extern关键字等,如下所示:

   (7)Template子标签页面内嵌入式编码器提供了一组默认的代码生成模版如下图所示:

     ert_code_template.cgt 中使用TLC变量方式规定了文件生成的顺序及添加模型信息注释的位置。模型生成的源文件、头文件及全局数据存储和外部方法声明文件的生成可以使用统┅模板

(Defines)、数据结构类型的定义(Types)和枚举类型的定义(Enum)、各种变量的定义(Definitions),以及函数体的声明(Declarations)和闲数体定义(Functions)我们在相邻的段中插人自定義内容,但是不要打乱既存段的对顺序

   (8)Code Placetnem子标签提供的选项将影响生成代码的文件组织方式和数据存储方式及头文件包含的分隔符選择等,其页面如下图所示:

常用的选项是File packaging format表示生成文件的组织方式,对应的生成文件个数不同内容紧凑程度也不同。具体如下表所列:

省去的只是文件个数其内容被合并到了其他文件中,内容的转移如下表所列:

 我们可以使用默认设置如果希望减少生成代码列表Φ文件的个数,可以考虑使用Compact 的组织方式

前两列按照数据类型的对应关系给出了每种数据类型在simulink曲线和嵌入式编码器生成代码中的类型名第3列则供用户设置,填人自定义的类型名之后生成代码时将使用自定义的类型名替换Code Generation Name。

如定义U16数据别名对象来替换uint16_T这个内部类型第3列的edit框不必全部填入自定义类型名,可以根据应用场合选择部分或全部来使用并且可以使用同一个数据类型名替代多个内建数据类型,洳使用U8同时替换uint8_T和Boolean_T类型

 Memory section子标签中设置函数、常数、输人/输出、数据和参数的存储段。如无须生成pragma等存储段指定命令则此子标签页面下使鼡默认设置即可

 当这些配置好以后,我们就可以启动模型编译:

与模型名相同的.c若模型配置无误则文件中包含model_step()函数,这里的代码表示模型所搭建的逻辑:

 
未经优化的代码可读性较差但是从四则运算关系中及结构体的成员名上可以看出每一个变量所代表的意义。
除此之外生成的代码还提供了 Code to Model追踪功能,单击下图方框中的超链接可以直接跳转到模型中对应的模块,该模块或子系统将会以蓝色显示如丅所示:

我们单击<Root/In2>来演示这个超链接,这个追踪功能提示用户模型与代码的对应关系即直接跳转到模型中对应的模块,该模块或子系统將会以蓝色显示如下所示:
}

我要回帖

更多关于 simulink曲线 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信