本周文件交换精选

我们最好的用户提交

MATLAB中的物理单元

内容

MATLAB中的物理单元

格雷格的本周是物理单位的工具箱通过天空缝匠肌

用MATLAB来计算这些数字不是很好吗?

速度,单位为千米每小时V = 12.3 * u.kph%时间(秒)T = 3.7 * u.second%行驶距离D = v * t将距离转换为英尺u.foot u2num (d)另一种将距离转换为英尺的方法d / u.ft
V = 3.4167 m - s t = 3.7000 s d = 12.6417 m ans = 41.4753 ans = 41.4753

我一直想在MATLAB和Simulink中都有这个功能。金宝app当我还在上大学的时候,MATLAB是我最喜欢的编程工具,但我在工程作业中很少使用它,因为有其他工具有很好的工作表,包括单位转换和计算。

甚至作为MathWorks的一名员工,我也发现自己使用其他数学软件来帮助进行需要仔细跟踪和转换单位的计算。

为什么我选择这个条目?

对我来说,两个关键因素是:

  • 易于使用的
  • 良好的文档记录

通过简单地乘以所需的单位来包含单位是一种深思熟虑的机制。当然,还有一些函数和方法可以提取特定单元类型的值。

还有单位一致性检查,确保你不会试图把距离转换成温度。

试一试u.kelvin u2num (d)我disp (Me.message);结束
不兼容的输入维度

对细节的关注和对功能的规划使这个工具的使用更加容易。例如,Sky包含用于标准MATLAB变量的单位转换函数,而不仅仅是单位类。这意味着你不需要考虑某个变量是否属于DimVar类或不是。

=π;u2num (a)
ans = 3.1416

扩展类的功能

代码的组织和文档使添加支持转换的附加功能变得非常容易。例如,很多时候我可能想在Simulink中包含一个特定计算的结果作为变量。金宝app通过在Simulink (R2016a)中添加单元,环境之间金宝app可以保持一致性。

G = 9.81 *u.m/ us ^2%建立模型。金宝app与“g”具有相同值和单位的参数对象gParam = u2param (g)
g = 9.8100 m——s^2 gParam =带有属性的参数:值:9.8100 CoderInfo: [1×1 Simulink。金宝appCoderInfo] Description: " DataType: 'auto' Min: [] Max: [] Unit: 'm/s^2' Complexity: 'real' Dimensions: [1 1]

现在,当这个变量“gParam”在Simulin金宝appk模型中使用时,Simulink中的单位引擎将能够帮助进行诸如单位一致性检查之类的事情。

类型u2param类型getUnitString
函数p = u2param(v) assert(isa(v, 'DimVar'));s = getUnitString (v);p = 金宝appSimulink.Parameter (u2num (v));p.Unit = s;end function s = getUnitString(v) assert(isa(v, 'DimVar'));[num, dem] = display(v);S = sprintf('% S /% S ', num, dem);结束

获取单元文本

将值的单位作为字符串,可以由其他MATLAB和Simulink工具解释,这将是有帮助的。金宝app

从技术上讲,UNITSOF函数返回对象的单元字符串,但是以一种专门的格式。

unitsOf (g)
[m ^ 1] [s ^ 2)

这可以通过以下方法很容易地纠正:

[分子,分母]= display(g);(分子' / '分母)
ans = ' m / s ^ 2》

当然,作为或R2017a,你可以做如下事情:

分子+“/”+分母
ans = " m / s ^ 2”

具有单元的MathWorks工具

有一些插件确实支持物理单位。金宝app

金宝app在信号线上有一个单位的概念。

Simscape下载188bet金宝搏产品在定义物理元素的性质时都需要使用特定的单位。

符号数学工具箱也有一些能力将物理单位应用于计算,并使符号操作成为可能。

MATLAB应该有一个内置的单元系统吗?

让我们知道在这里

发布与MATLAB®R2017a

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。