하나의 Modelica 변수가 다른 변수의 삼각형 파형 인 모델을 만들려고합니다. (X = 시간, 모델 컴파일 있도록 임의)모델에서 삼각 파 함수 생성
model test1
final constant Real pi=2*Modelica.Math.asin(1.0);
parameter Real b = 1;
parameter Real a = 1;
Real x,p,u;
equation
if sign(sin(x*pi/b))>=0 then
p=a*(x-b*floor(x/b));
else
p=a*(b-(x-b*floor(x/b)));
end if;
x=time;
u = floor(x/b);
end test1
아래에 볼 수있는 결과는, 이상해 : 우선 바닥() 아래와 같은 기능을 시도
확대 : 어떻게 든 0.005 초 다음 단계 바닥 능의 이전
n은 예기치 않게 동작하고 다음 값으로 끝나는 선형 함수가됩니다.
다음 I는 올림() 함수를 시도했다. 저도 같은 문제가 다른 값에 천장을 만들다() 함수를 어떻게 실현까지 모든 것이 잘 보였다 (예를 들어 X = 13)당신이 수 있다면 감사하겠습니다이 "결함"이 발생하는 이유
- 도움이 나를 이해 디자인이나 버그로 고의적 인 경우?
- 어떻게 해결할 수 있습니까?
- 삼각파 함수를 만드는 다른 방법이 있습니까?
P. 나는 시뮬레이션의 결함에 대한 설명이없는 두 개의 톱니 몸 "
다른 문제가 있습니다. 질문에서 볼 수 있듯이 x가 임의의 시간 함수 인 p = func (x)라는 함수를 갖고 싶습니다. 당신의 코드는 일정한 신호에 의존합니다. 그것을 수정할 수 있습니까? – Foad