의학적 맥락에서 Modelica 모델에서 비 SI 단위를 사용하고 싶습니다. 나는 Dymola에서 Modelica를 사용하고 있습니다. 엔지니어이기 때문에 저는 SI 단위를 선호합니다. 그러나 필자의 모델 매개 변수는 의학 서적에서 유래되었으며 변환 실수를 피하고자한다. 의료기관은 또한 의사와의 의사 소통을 단순화합니다.교수법 Modelica 의학 비 SI 단위
예를 들어 압력을 "Pa"대신 "mmHg"(수은 밀리미터) 단위가 사용됩니다. 다음과 같이 압력 변수는 모델에 정의되어 시뮬레이션 모델을 번역
type Pressure_mmHg = Real (final quantity="Pressure", final unit="mmHg")
모델의 모든 단일 비 SI 변수에 대한 다음과 같은 경고를 산출 (~ 총 300 경고) :
Could not decode the unit symbol "mmHg" appearing in the unit string "mmHg"
모델을 변경하면 새로운 경고가 발생하여 거의 감지 할 수 없습니다. 그러므로 Modelica에게 "mmHg"단위를 가르쳐야합니다.
주제에 내 현재의 지식 :
- Modelica 언어 사양 3.3, 19 장 단위 식 : ". 그것은 사용자 정의 단위 기호를 지원하는 것이 가능하다" 그러나이 문서에서는 이에 대해 자세히 설명하지 않습니다.
는 - 시뮬레이션 GUI에서 사용하기 위해 (실제 속성 "displayUnit") 표시 단위를 정의 할 수 있습니다 사용자는 한 환산 계수가 Dymola 디렉토리에있는 "displayunit.mos"파일에 정의 된대로 다음과 같이
defineUnitConversion("Pa", "mmHg", 760/101325);
이 옵션은 모델의 이식성을 떨어 뜨리기 때문에 선택 사항이 아닙니다. 모델을 실행하고 관리자 권한이 필요한 모든 컴퓨터에서 수동으로 수행해야합니다 (필자는 필요 없음).
미리 도움 주셔서 감사합니다. Modelica 표준 라이브러리 3.2, Dymola 버전 2014 (64 비트) 2013년 3월 25일
: 게시 시간에버전 :
편집는 (앞으로이 건너 오는 사람에게 도움이 될 수 있음)
주제에 대한 현재 지식에 다음을 추가하는 것을 잊었습니다 : Physiolibrary 2.1.1은 GUI 용 displayUnits를 정의합니다. 코딩에서, 저자는 다음 요령을 사용
type Pressure = Modelica.SIunits.Pressure(displayUnit="mmHg", nominal=133.322387415);
Modelica 주어진 공칭하여 코드 입력의 모든 값을 단위 파스칼 (N/m2)를 갖는 것으로 형 압력 변수를 처리하지만, 분할이 방법.
교정 :이 섹션에서는
, 나는 이전에 Physiolibrary 단위 변환을위한 실제 속성 명목을 사용 밝혔다. 그렇지 않다. 저를 시정 해 주신 Marek Matejak (Physiolibrary의 저자)에게 감사드립니다. 공칭 속성의 유일한 목적은 안정성상의 이유로 수치 문제를 조정하는 것입니다.
정말 답이 없지만 [Modelica Trac 사이트] (https://trac.modelica.org/Modelica/ticket/1024)에서 관련 토론을 찾을 수 있습니다. –
@MichaelTiller : 이것은 매우 도움이되며 내 질문에 대한 답변을 제공합니다. 관련 논의에 따르면 사용자 정의 단위와 SI 기본 단위 간의 관계를 정의하는 것은 불가능한 것처럼 보입니다. 적어도 나는 존재하지 않는 해결책을 찾기 위해 인터넷 검색을 멈출 수 있다는 것을 알았다. :) 고마워요! –