2013-02-26 2 views
0

변수가 이제 j = 1로 시작하지만 증분이 잘못되었습니다. t = 0.5은 2의 값을 가져야하고 t = 1, J = 3에 대해 등등 ... 은 다음 이미지를 미리변수의 증분이 잘못됨

variable j

class abc 

import Modelica.SIunits; 

parameter SIunits.Time delta_t = 0.5; 

constant Real a[:] = {4,2,6,-1,3,5,7,4,-3,-6}; 

Real x; 
Integer j(start=1); 
Integer k = size(a,1); 

algorithm 
when {(sample(delta_t, delta_t) and j < k),j == 1} then 

    x := a[pre(j)]; 
    j := pre(j) + 1; 

end when; 
end abc; 

감사 오류 표시 .

답변

0

좋아, 문제가 발생했습니다. Dymola는 이와 같은 플롯을 생성 할 수 있습니다. 출력 설정에 따라 달라집니다. 위의 그림은 "이벤트에서 변수 저장"설정없이 생성되었습니다.이 값을 설정하면 올바른 결과가 나타납니다.

0

코드를 Dymola 2013에 넣으면 정확히 예상 한대로 얻을 수 있습니다. j==2 @time==0.5.

이 플롯의 출처는 어디입니까? Dymola는 j이 이산 변수이므로 그와 같은 플롯을 생성하지 않습니다.