Как исправить MethodError: нет соответствия метода? - PullRequest
1 голос
/ 13 апреля 2020

Код

Сообщение об ошибке

Я не уверен, как исправить эту проблему. Я попытался сравнить количество методов, и я считаю, что это должно работать, но я не уверен, где моя проблема. Я использую Юлию 1.0.5

1 Ответ

1 голос
/ 14 апреля 2020

Сообщение об ошибке говорит вам, что вы вызываете функцию, которая принимает 8 аргументов, но вы даете ей только 7 аргументов. Это может быть переведено как:

"Я не могу найти метод для этой функции, который принимает 7 аргументов. Как совет, этот другой метод принимает 8 аргументов."

Чтобы это исправить, проверьте еще раз какие аргументы вам нужно передать функции PitchHeave.

Если вы смотрите на пакет ViscousFlow.jl, я думаю, что в примере, который вы пытаетесь использовать, может быть ошибка.

Согласно исходному коду, найденному в здесь , вам также необходимо добавить фазу имения. Вы можете попробовать что-то вроде этого.

a = 0.25 # location of pitch axis, a = 0.5 is leading edge
ϕ = -π/2  # phase lag of pitch to heave
A = 0.25  # amplitude/chord
fstar = 1/π # fc/U
α₀ = 0 # mean angle of attack
Δα = 0.0 #10π/180 # amplitude of pitching
U₀ = 0.0 # translational motion (set to zero in place of free stream)
ϕh = -π/2  # phase lag of the heave # **This is the new part**


K = π*fstar # reduced frequency, K = πfc/U

oscil = RigidBodyMotions.PitchHeave(U₀,a,K,ϕ,α₀,Δα,A,ϕh);

Обратите внимание, что я добавил второй этап, который я добавил при вызове функции.

Кроме того, если у вас есть учетная запись на github, я предлагаю вам отправьте вопрос на свой github, сообщив о неисправном примере.

PS, пожалуйста, удалите изображения и напишите тест в своем ответе.

...