적용 전류에 따른 프로펠러 각속도의 Matlab 플롯을 생성하고 싶습니다. 핵심은 두 개의 상호 의존적 인 데이터 세트를 결합해야한다는 것입니다. 특성 c_d(omega)
쉽게 c_d(omega) = p*omega + p_0
으로 선형화 할 수 - Matlab의 비선형 방정식의 교차 특성
c_d
아래의 그래프에서 볼 수 있듯이 각속도
omega
(I, 그냥 데이터를 어떤 공식이 없다)에 따라 달라집니다.
둘째로, omega
은 적용된 전류 (i
)뿐만 아니라 끌기 계수 (c_d(omega)
)에 따라 달라집니다.
사례를 해결하는 스크립트로 c_d
은 아래에서 상수입니다. 어떻게 든 Matlab 명령을 사용하여이 두 가지를 결합 할 수 있어야합니다. 어떤 도움을 주셔서 감사합니다.
%%Lookup table for drag coefficient c_d c_d_lookup = [248.9188579 0.036688351; %[\omega c_d] 280.2300647 0.037199094; 308.6091183 0.037199094; 338.6636881 0.03779496; 365.8908244 0.038305703; 393.9557188 0.039156941; 421.9158934 0.039667683; 452.2846224 0.040348674; 480.663676 0.041199911; 511.032405 0.042051149; 538.9925796 0.042561892; 567.2669135 0.043242882; 598.4734005 0.043668501; 624.1297405 0.044264368; 651.9851954 0.044604863; 683.6105614 0.045200729]; subplot(2,1,1) plot(c_d_lookup(:,1), c_d_lookup(:,2)) title('This is how c_d depends on \omega') ylabel('c_d') xlabel('\omega [rad/s]') %%Calculate propeller angular speed in terms of applied current. omega %%depends on c_d, which in turn depends on omega. The formula is: % omega(i) = sqrt(a*i/(b * c_d(omega))) % Where: % i - applied current % omega - propeller angular velocity % a,b - coefficients i = [1:15]; a = 0.0718; b = 3.8589e-005; %If c_d was constant, I'd do: omega_i = sqrt(a .* i/(b * 0.042)); subplot(2,1,2) plot(i, omega_i) ylabel({'Propeller ang. vel.', '\omega [rad/s]'}) xlabel('Applied current i[A]') title('Propeller angular velocity in terms of applied current')
는 편집 :
는 bdecaf의 해결 방법을 수행하려고합니다.
function c_d = c_d_find(omega, c_d_lookup)
c_d = interp1(c_d_lookup(:,1), c_d_lookup(:,2), omega, 'linear', 'extrap');
end
내가 matlab에 함수가 처리에 대해 아무것도 알고 있지만 생각 ... matlab에 명령 창에서 내가 입력 한 이해하지 않는 것 :
f = @(omega) omega - sqrt(a .* i/(b * c_d_find(omega, c_d_lookup)))
를 그래서 나는 그렇게 같은 함수
c_d_find
를 생성
나는 올바른 함수 핸들을 만들었 으면 좋겠다. 다음에 무엇을해야합니까? 작동하지 않습니다 아래 실행 :
>> omega_consistent = fzero(f,0)
??? Operands to the || and && operators must be convertible to logical scalar
values.
Error in ==> fzero at 333
elseif ~isfinite(fx) || ~isreal(fx)
그래서 당신은 omega' 또는'i''에 대해이 문제를 해결하려면
omega_consistent =fzero(f,omega_0)
와 일치 오메가를 계산? 아래 그래프는 '오메가'에 대해 'C_d0'을 보여줍니다. 위 그래프는 무엇을 보여줍니까? 궁극적으로 두 가지 가치관은 무엇입니까? –네 말이 맞다. 그 질문은 불분명하다. 미안하다. 나는 그것을 바꿨다. 잘하면 지금 대답하기가 쉬워 질 것이다. – mmm
나는 아직도 너를 따라하지 않고있다. 당신은 적용된 전류 관점에서 프로펠러 각속도의 음모를 가지고 있습니다. 무엇을 놓치고 있습니까? –