本周文件交换选择

我们最好的用户反馈

MATLAB中的物理单位

内容

MATLAB中的物理单位

格雷格的这周的选择是物理单元工具箱通过天空缝匠肌

用MATLAB计算这些数字,如果有单位不是很好吗?

%速度,单位为千米每小时V = 12.3 * u.kph%时间(秒)T = 3.7 * u.秒%旅行距离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不管是不是阶级。

A =;u2num (a)
Ans = 3.1416

扩展类的功能

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

G = 9.81 *u.m/ us ^2创建Simulin金宝appk。与“g”值和单位相同的参数对象gParam = u2param(g)
g = 9.8100 m——s^2 gParam =带有属性的参数:值:9.8100 CoderInfo: [1×1 Simulink. g = 9.8100 m——s^2 金宝appgParam =带有属性的参数:CoderInfo]描述:"数据类型:'auto'最小值:[]最大:[]单位:'m/s^2'复杂度:'real'尺寸:[1 1]

现在,Simulink中的单元引擎将能够帮助在S金宝appimulink模型中使用变量“gParam”时进行单元一致性检查。

类型u2param类型getUnitString
函数p = u2param(v) assert(isa(v, 'DimVar'));s = getUnitString(v);p = 金宝appSimulink.Parameter(u2num(v));单位= s;结束函数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帐户或创建一个新帐户。