2012-10-20 3 views
3

Simulink에서 요트 속도 예측 프로그램 (VPP)을 작업 중입니다.이 포럼에 새로운 사용자 인 것처럼 이미지를 업로드 할 수 없습니다.신호의 초기 값 Simulink

문제를 해결하려면 돛에 의해 생성 된 힘을 얻기 위해 겉보기 풍속 및 각도 (각각 VA 및 베타)를 알아야하므로 보트의 순발력, 가속도 및 궁극적으로 속도가 필요합니다. 그러나 VA는 보트 속도 (VS)에 따라 다릅니다. 가속도를 속도로 변환하는 적분기 블록을 통해 후자의 초기 값을 넣으려고 시도했지만 "겉보기 바람"m- 함수 내부에서 다음과 같은 오류가 계속 발생합니다. "범위 밖의 인덱스 표현. 요소 3에 액세스하려고 시도했습니다. 유효 범위는 1-1입니다. ". 모델을 재정렬하고 함수를 상수 값으로 공급하면 결과 보트 속도가 물리적으로 올바르지 않지만 작동한다는 점에 유의하십시오. m-function의 목록은 아래와 같습니다.

간략화 된 블록도 :

[VT, γ-] -> 겉보기 바람 -> aero- & 유체 역학 -> 힘/질량 -> 가속 -> 1/초 -> VS

function [VA, beta] = fcn(inputs) 
% 1 - gamma % true wind heading [deg] 
% 2 - VT % true wind speed [kts] 
% 3 - VS 

%#codegen 

% apparent wind angle [deg] 
beta=atan(sin(inputs(1)*pi/180)/(cos(inputs(1)*pi/180)+inputs(3)/inputs(2)))/pi*180;  

% apparent wind speed [kts] 
VA=sin(inputs(1)*pi/180)/sin(beta*pi/180)*inputs(2);  

end 

편집 : 실제로 하나를 업로드 할 수있는 지금 모델의 첨부 된 순서도를 찾으십시오.

enter image description here

+0

이러한 수식은 임베디드 matlab 기능 블록이 과도하게 사용되는 것처럼 보입니다. simulink 수학 연산 블록을 사용하여 베타 및 VA의 수식을 구현하는 것이 더 적합 할 것으로 보인다. – grungetta

+0

나는 이것을 이미 해냈다. 그러나 나는 아직도 내가 그것을 반복하지 않도록 잘못하고 있는지 알고 싶습니다. – Artur

+1

MATLAB 함수에서 변수'VS'는 어디에서 오는가? (방정식'beta = atan (sin (inputs (1) * pi/180)/(cos (inputs (1) * pi/180) + VS/inputs (2)))/pi * 180; – grungetta

답변