Parameters Modelica-如何在方程式中使用单位
如何在Modelica的方程式中直接使用单位?那有可能吗? 一个简单的例子,一个参数,它应该依赖于不同单位的另一个参数(作为默认值)。在下面的示例中,它会发出单元警告(自然)。我怎么说我只想要变量的标称值,而不是值+单位Parameters Modelica-如何在方程式中使用单位,parameters,equation,modelica,Parameters,Equation,Modelica,如何在Modelica的方程式中直接使用单位?那有可能吗? 一个简单的例子,一个参数,它应该依赖于不同单位的另一个参数(作为默认值)。在下面的示例中,它会发出单元警告(自然)。我怎么说我只想要变量的标称值,而不是值+单位 model customspringdamper import SI = Modelica.SIunits; parameter SI.TranslationalSpringConstant c =100; parameter SI.TranslationalDam
model customspringdamper
import SI = Modelica.SIunits;
parameter SI.TranslationalSpringConstant c =100;
parameter SI.TranslationalDampingConstant d= 0.01*c;
... < rest of stuff > ...
end customspringdamper;
型号定制减震器
导入SI=Modelica.SIunits;
参数SI.translationalSpring常数c=100;
参数SI.平动阻尼常数d=0.01*c;
... < 其他内容>。。。
端阻尼;
当然,我可以用一个单位和值1定义另一个参数,但这感觉比必要的更费力 我可以看到三种方式:
参数实数c=100代码>您丢失了单元检查,但似乎没有使用它
import SI=Modelica.SIunits;
参数SI.translationalSpring常数c=100;
参数SI.平移阻尼常数d=0.01*(c/单位弹簧)*单位阻尼;
常数SI.translationalSpring常数unitSpring=1;
常数SI.平移阻尼常数单位阻尼=1代码>
工具应该能够简化代码以删除这些常量。然而,您绕过了单元检查,这使得您的代码更容易出错
在某些情况下,以这种方式拆除单元是合法的,但在这种情况下则不然
与2基本相同,但将单位设置为0.01
;并赋予它实际的物理意义:
import SI=Modelica.SIunits;
参数SI.translationalSpring常数c=100;
参数SI.Time-SpringTime=0.01;
参数SI.TranslationalDampingConstant d=弹簧时间*c代码>
参数可以有值0.01和单位,那么你至少不再需要0.01了。我想使用单位检查-但是像这样的情况会引发很多警告,因此我一直在寻找解决方案。谢谢你的选择——我必须承认,我希望能直接使用这些装置。例如“d=0.01*c*SI.Time”。对于参数,我想没问题,但是对于图形原理图视图(例如Realexpressions或增益块),可用的选项似乎不方便,感觉更像是一种解决方法,而不是一种合适的解决方案。例如,如果我有一个传感器信号,我想将该信号转换为不同的装置。