Я вижу три способа:
- Объявить параметр как действительный без единицы измерения:
parameter Real c =100;
Вы теряете проверку модуля, но не похоже, что вы ее используете. - Используйте константы для преобразования значения в другую единицу:
import SI = Modelica.SIunits;
parameter SI.TranslationalSpringConstant c= 100;
parameter SI.TranslationalDampingConstant d= 0.01*(c/unitSpring)*unitDamping;
constant SI.TranslationalSpringConstant unitSpring=1;
constant SI.TranslationalDampingConstant unitDamping=1;
Инструменты должны иметь возможность упростить код для удаления этих констант. Тем не менее, вы обходите проверку модулей, что делает ваш код более подверженным ошибкам.
В некоторых случаях допустимо удалять модули таким способом, но не в подобных случаях.
В основном то же, что и 2, но вы ставите единицы на 0.01
; и дать ему фактический физический смысл:
import SI = Modelica.SIunits;
parameter SI.TranslationalSpringConstant c= 100;
parameter SI.Time SpringTime=0.01;
parameter SI.TranslationalDampingConstant d= SpringTime*c;