simulink中【(1,500)-(10,20000)】如何表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了simulink中【(1,500)-(10,20000)】如何表示相关的知识,希望对你有一定的参考价值。

1、理论基础

在介绍定点数之前,需要先科普下计算机中的数据(整形、浮点型)的存储方式。

从最简单的8位整型开始,不考虑正负数的情况下,二进制数从0000 0000~1111 1111(8个位)表示0~255。如何考虑正负符号,就需要引入补码,用最高位来标记正负号。0000 0000 ~0111 1111表示0~127;1000 0000~11111111表示-1~-128。整型数据的表达很好理解,浮点型数据就稍微麻烦点。根据IEEE(电气和电子工程师协会)对32位浮点数的定义如下:



在一个32位的内存空间中,最高位用来表示正负符号,接下来的8位用来表示整数部分,最后的23位用来表示小数部分。



计算的方法就是把8位整数部分的值与23位小数部分的值共同表达浮点型数据。

定点数的原理就是根据上面的方法,定义不同内存空间中整数与小数部分的长度来实现浮点型数据的表达。假设我们可以试图利用8位的内存空间来表示浮点数:

正数形式

如果用最低1位来表示小数位,则0111 1111代表的是+63.5。 如果用最低2位来表示小数位,则0111 1111代表的是+31.75。 如果用最低3位来表示小数位,则0111 1111代表的是+15.875。 如果用最低4位来表示小数位,则0111 1111代表的是+7.9375。

负数形式

如果用最低1位来表示小数位,则1111 1111代表的是-0.5。 如果用最低2位来表示小数位,则1111 1111代表的是-0.25。 如果用最低3位来表示小数位,则1111 1111代表的是-0.125。 如果用最低4位来表示小数位,则1111 1111代表的是-0.0625。

2、Simulink中的实现

Simulink专门用于数据类型转换的模型,Data Type Converison

在输出的数据类型中可以看到除了常见的int/float/double类型外还有fixdt的定点数据类型,支持三种类型的定点数。
参考技术A 1、理论基础
在介绍定点数之前,需要先科普下计算机中的数据(整形、浮点型)的存储方式。
从最简单的8位整型开始,不考虑正负数的情况下,二进制数从0000 0000~1111 1111(8个位)表示0~255。如何考虑正负符号,就需要引入补码,用最高位来标记正负号。0000 0000 ~0111 1111表示0~127;1000 0000~11111111表示-1~-128。整型数据的表达很好理解,浮点型数据就稍微麻烦点。根据IEEE(电气和电子工程师协会)对32位浮点数的定义如下:

在一个32位的内存空间中,最高位用来表示正负符号,接下来的8位用来表示整数部分,最后的23位用来表示小数部分。

计算的方法就是把8位整数部分的值与23位小数部分的值共同表达浮点型数据。
定点数的原理就是根据上面的方法,定义不同内存空间中整数与小数部分的长度来实现浮点型数据的表达。假设我们可以试图利用8位的内存空间来表示浮点数:
正数形式
如果用最低1位来表示小数位,则0111 1111代表的是+63.5。 如果用最低2位来表示小数位,则0111 1111代表的是+31.75。 如果用最低3位来表示小数位,则0111 1111代表的是+15.875。 如果用最低4位来表示小数位,则0111 1111代表的是+7.9375。
负数形式
如果用最低1位来表示小数位,则1111 1111代表的是-0.5。 如果用最低2位来表示小数位,则1111 1111代表的是-0.25。 如果用最低3位来表示小数位,则1111 1111代表的是-0.125。 如果用最低4位来表示小数位,则1111 1111代表的是-0.0625。
2、Simulink中的实现
Simulink专门用于数据类型转换的模型,Data Type Converison
在输出的数据类型中可以看到除了常见的int/float/double类型外还有fixdt的定点数据类型,支持三种类型的定点数。
参考技术B 如果用最低4位来表示小数位,则0111 1111代表的是+7.9375。负数形式 如果用最低1位来表示小数位,则1111 1111代表的是-0.5。 参考技术C 1、理论基础
在介绍定点数之前,需要先科普下计算机中的数据(整形、浮点型)的存储方式。
从最简单的8位整型开始,不考虑正负数的情况下,二进制数从0000 0000~1111 1111(8个位)表示0~255。如何考虑正负符号,就需要引入补码,用最高位来标记正负号。0000 0000 ~0111 1111表示0~127;1000 0000~11111111表示-1~-128。整型数据的表达很好理解,浮点型数据就稍微麻烦点。根据IEEE(电气和电子工程师协会)对32位浮点数的定义如下:

在一个32位的内存空间中,最高位用来表示正负符号,接下来的8位用来表示整数部分,最后的23位用来表示小数部分。

计算的方法就是把8位整数部分的值与23位小数部分的值共同表达浮点型数据。
定点数的原理就是根据上面的方法,定义不同内存空间中整数与小数部分的长度来实现浮点型数据的表达。假设我们可以试图利用8位的内存空间来表示浮点数:
正数形式
如果用最低1位来表示小数位,则0111 1111代表的是+63.5。 如果用最低2位来表示小数位,则0111 1111代表的是+31.75。 如果用最低3位来表示小数位,则0111 1111代表的是+15.875。 如果用最低4位来表示小数位,则0111 1111代表的是+7.9375。
负数形式
如果用最低1位来表示小数位,则1111 1111代表的是-0.5。 如果用最低2位来表示小数位,则1111 1111代表的是-0.25。 如果用最低3位来表示小数位,则1111 1111代表的是-0.125。 如果用最低4位来表示小数位,则1111 1111代表的是-0.0625。
2、Simulink中的实现
Simulink专门用于数据类型转换的模型,Data Type Converison
在输出的数据类型中可以看到除了常见的int/float/double类型外还有fixdt的定点数据类型,支持三种类型的定点数。
参考技术D 1、理论基础
在介绍定点数之前,需要先科普下计算机中的数据(整形、浮点型)的存储方式。
从最简单的8位整型开始,不考虑正负数的情况下,二进制数从0000 0000~1111 1111(8个位)表示0~255。如何考虑正负符号,就需要引入补码,用最高位来标记正负号。0000 0000 ~0111 1111表示0~127;1000 0000~11111111表示-1~-128。整型数据的表达很好理解,浮点型数据就稍微麻烦点。根据IEEE(电气和电子工程师协会)对32位浮点数的定义如下:

在一个32位的内存空间中,最高位用来表示正负符号,接下来的8位用来表示整数部分,最后的23位用来表示小数部分。

计算的方法就是把8位整数部分的值与23位小数部分的值共同表达浮点型数据。
定点数的原理就是根据上面的方法,定义不同内存空间中整数与小数部分的长度来实现浮点型数据的表达。假设我们可以试图利用8位的内存空间来表示浮点数:
正数形式
如果用最低1位来表示小数位,则0111 1111代表的是+63.5。 如果用最低2位来表示小数位,则0111 1111代表的是+31.75。 如果用最低3位来表示小数位,则0111 1111代表的是+15.875。 如果用最低4位来表示小数位,则0111 1111代表的是+7.9375。
负数形式
如果用最低1位来表示小数位,则1111 1111代表的是-0.5。 如果用最低2位来表示小数位,则1111 1111代表的是-0.25。 如果用最低3位来表示小数位,则1111 1111代表的是-0.125。 如果用最低4位来表示小数位,则1111 1111代表的是-0.0625。
2、Simulink中的实现
Simulink专门用于数据类型转换的模型,Data Type Converison
在输出的数据类型中可以看到除了常见的int/float/double类型外还有fixdt的定点数据类型,支持三种类型的定点数。

在 Simulink 中单独运行子系统

【中文标题】在 Simulink 中单独运行子系统【英文标题】:Running subsystems individually in Simulink 【发布时间】:2016-04-07 09:16:05 【问题描述】:

大家好, 我目前在使用 Simulink 模型时遇到问题。有 2 个子系统 A 和 B。我想让子系统 A 先运行,然后使用生成的数据运行子系统 B。我可以使用 Simulink 模块的功能来执行此操作吗?

我曾尝试在子系统 B 之前使用触发和启用 10 秒的步进输入,但它不起作用。 我尝试过存储内存,但也没有用。 考虑了 Variant 子系统,但由于子系统 A 和 B 的输入不同,我认为它不会正常工作。

我将不胜感激从你们那里得到的帮助和支持!非常感谢!

【问题讨论】:

我想我们在这里需要更多信息,一些简单的子系统示例。因为通常您只是将它们一一放置,然后 B 使用 A 的结果。所以我假设您的问题是您需要一些数据数组,这些数组创建了一段时间,然后将其路由到子 B。这有点困难,但可以使用启用的子系统来完成。我们需要更多信息来回答。 如果子系统 A 向子系统 B 提供数据,那么 Simulink 将自动(并且根据定义)排序执行,使得 A 在 B 之前执行。这将在每个时间步发生。您是否要求 A 运行一定时间然后让 B 执行?当你说“它不起作用”时,更明确地说明什么不起作用。发生了什么,发生了什么问题。 感谢您的回复。我在下面的链接中附加了我的 Simulink 模型。希望它会更清楚。基本上我需要先运行我的 PV 配置。然后我将使用我的子系统 B 扫描 PV 的 V-P 图。再次感谢! dropbox.com/sh/asononvm9hgnlig/AABrIsRZRfH2OCMBLMDx9Af1a?dl=0 嗨菲尔,基本上我需要子系统 A 完全运行然后运行子系统 B。当我尝试使用带有步进输入的触发器操作符来控制触发器时,这个错误浮出水面。 “Simulink 没有足够的信息来确定此模块的输出大小。如果您认为以下错误不准确,请尝试指定模块输入的类型和/或模块输出的大小。” 为什么它们不是 2 个不同的模型?目前尚不清楚a)P,V和I是否应该在每个时间步输入到子系统B,b)它们应该被缓冲并在给定/触发的时间步输入到子系统B,或者c)你应该有2个模型,先得到 P、V 和 I 的结果,然后运行模型 B。 【参考方案1】:

您可能需要了解如何在 Simulink 中为某些模块分配优先级,也称为更改模型中的排序顺序。您可以以编程方式或交互方式执行此操作。查看文档中的page 以获取更多详细信息。

【讨论】:

排序顺序仅在子系统 A 和子系统 B 执行的顺序无关紧要时才有效(因此 Simulink 允许用户指定他们希望执行的顺序)。如果子系统 A 馈入子系统 B,则模块具有固有顺序,因此 Simulink 将忽略您指定的排序顺序。

以上是关于simulink中【(1,500)-(10,20000)】如何表示的主要内容,如果未能解决你的问题,请参考以下文章

Simulink仿真----降压(Buck)变换器

Simulink仿真----降压(Buck)变换器

华为S7706升级到S7700-V200R008C00SPC500版本快速配置记录

mockMVC 方法 GET java.lang.AssertionError:预期状态:200 实际:500

Simulink HDL Coder FPGA初级开发实践 按键消抖

Simulink HDL Coder FPGA初级开发实践 按键消抖