2016-08-25 4 views
0

두 개의 배열 "x"와 "fy"가 있습니다. 배열 "fy"w.r.t 배열 "x"의 사다리꼴 통합을 수행해야합니다. Modelica 라이브러리에서 함수를 찾을 수 없습니다. Buildings 라이브러리에서 함수를 찾았지만 정확히 그다지 도움이되지 않습니다. 이 유형의 통합을위한 다른 기능이 있다면 제발, 제안하시기 바랍니다.Modelica의 사다리꼴 숫자 적분

답변

6

나는 Modelica가 잘하는 것에 의존하는 입력의 통합을 얻는 다른 방법을 게시 할 가치가 있다고 생각했습니다. 나는이 좋은 예제가 here이고 시간이 der() 인 것을 발견했다.

사다리꼴 규칙 통합이 MSL에서 수행되는지는 확실하지 않지만 아래는 사다리꼴 규칙을 구현하는 간단한 함수입니다. Here은 좋은 요약과 예제가 포함 된 pdf입니다.

앞으로는 많은 함수/모델을 작성해야 할 것입니다. Modelica는 SciPy 나 GNU Standard Library와 같은 수학 함수의보다 완전하고 검증되고 검증 된 집합과 같이 유용 할 수있는 모든 종류의 적분, 보간법 등을 필요로합니다.

n = 6; 
x = {2.1,2.4,2.7,3.0,3.3,3.6}; 
y = {3.2,2.7,2.9,3.5,4.1,5.2}; 

수율 :

integral = 5.22; 

function integral_TrapezoidalRule "Integral of array y(x) using the trapezoidal rule" 

    extends Modelica.Icons.Function; 

    input Integer n(min=2) "length of array"; 
    input Real[n] x "dependent array"; 
    input Real[n] y "independent array"; 

    output Real integral "Resulting integral"; 

protected 
    Real[n-1] dx; 

algorithm 
    integral := 0; 

    for i in 1:n-1 loop 
    dx[i] := x[i+1] - x[i]; 
    integral := integral + 0.5*dx[i]*(y[i+1]+y[i]); 
    end for; 

end integral_TrapezoidalRule; 

갖는 함수를 호출 상기 PDF 예에서 사용