Openfast: Компиляция OpenFAST с Simulink в VS error # 11023 и LNK2019

Созданный на 4 мар. 2021  ·  31Комментарии  ·  Источник: OpenFAST/openfast

Привет ,
Я пытаюсь создать OpenFAST с simulink, выбрав режим Release_Matlab с x64. Я думаю, что ошибки, которые у меня возникают, связаны с связыванием simulink, как вы можете видеть из ошибок. Я не уверен в предупреждениях, являются ли они проблемой для компиляции или нет.

1
2
3

Я изменил местоположение MATLAB libmex.lib в свойствах simulink, как написано https://github.com/OpenFAST/openfast/issues/638#issuecomment -762409007 в другом сообщении. К сожалению, это не решает проблему. Ниже вы можете увидеть, что я установил в VS и Intel Fortran.

4
5
6

OpenFAST Lib Compiling Question

Все 31 Комментарий

Visual studio не находит библиотеку Matlab, содержащую MEXPRINTF . Возможно, вам потребуется сообщить визуальной студии, где это находится.

Visual studio не находит библиотеку Matlab, содержащую MEXPRINTF . Возможно, вам потребуется сообщить визуальной студии, где это находится.

Если вы говорите о пути MATLAB внутри свойств, я изменил его на свой путь MATLAB, как я уже упоминал. Если нет, то как мне это изменить?
7

Глядя на ваш первый выходной снимок экрана, он не нашел MEXPRINTF во время компиляции openfast_x64.exe . Я не уверен, что VS должен создавать его во время сборки Release_Matlab. @bjonkman , мы обычно строим openfsat_x64.exe с этим? Я бы подумал, что все определения препроцессора сделают этот исполняемый файл бесполезным.

Похоже, он нашел подходящую библиотеку для сборки OpenFAST-Simulink_x64.lib . Так что я ожидаю, что с simulink нужно работать.

@ klitz06 , какой филиал вы строите?

Я использовал «git clone https://github.com/openfast/openfast.git » для клонирования репозитория. Я не знаю, какой именно. Как это проверить?

Редактировать:
git branch --show-current в git для Windows сообщает мне, что это "main".

git branch покажет доступные ветки. Он покажет main и dev в качестве двух вариантов, а созданный вами будет выделен (или будет отмечен звездочкой рядом с ним). Я думаю, что main - это значение по умолчанию.

Да, это main one.

Что произойдет, если вы попробуете сценарий create_FAST_SFunc.m (после установки всех необходимых путей, как указано в сценарии)? Этот OpenFAST-Simulink_x64.lib должен быть нужен только для связи с Simulink, а не openfast_x64.exe .

Остальные предупреждения можно безопасно игнорировать (мы в основном следуем стандарту Fortran 2008, но только устанавливаем VS для обеспечения соблюдения стандарта Fortran 2003, поэтому он помечает вещи, которые на самом деле не являются проблемой).

Думаю, он создан успешно. Я попробую примеры и вернусь.

image

Хорошо, я попытался запустить Ren_Test01_SIG.m, и вот результат:
image

Я изменил VSContrl = 4 и посмотрел, помогает ли это добавить LSSGagVxa в выходные данные ElastoDyn. Это не помогло.

возможно, вам придется добавить расположение SFunc к пути Matlab. addpath(genpath(('../../../install')) из каталога примеров.

Мне жаль, что я не понял, что вы от меня хотите. Я просто запускаю его через командное окно?

да. Я думал в командном окне. но ошибка может указывать на проблему с самим тестом.

Вы инициализировали подмодуль r-test после клонирования с github? git submodule update --init --recursive как указано здесь: https://openfast.readthedocs.io/en/dev/source/testing/index.html

Да, я действительно запустил git clone --recursive https://github.com/openfast/openfast.git в начале процесса. Может быть, это проблема? Следует ли мне использовать команду, которую вы даете?

существует ли <openfast git rootdir>/reg_tests/r-test/glue-codes/openfast/AWT_YFix_WSt/ ?

Да, существует. Я вижу входные файлы в папке.

Тогда я не уверен. У меня нет идей. Может быть, кто-то еще может прокомментировать то, с чем они столкнулись с этим.

Спасибо за помощь. Может быть, из моей установки MATLAB? Потому что я не устанавливал все, что идет с MATLAB.

Изменить: Конечно, Simulink установлен.

поэтому после некоторого тестирования я могу воспроизвести ошибку, которую вы видите, используя MATLAB 2020b с simulink на виртуальной машине Windows 10. Это использовало ветку main OpenFAST.

Screen Shot 2021-03-04 at 6 04 32 PM

Я забыл упомянуть, что для этой проблемы было исправление # 641. Описание ошибки было дано в №632. Это исправление было добавлено в ветку dev , но еще не вошло в основную ветку. Приношу свои извинения за то, что не вспомнил об этом раньше.

Так не могли бы вы попробовать git checkout dev затем git submodule update , затем пересобрать и попробовать снова?

Теперь OpenFAST работает через MATLAB, но теперь у меня такая ошибка:

image

Изменить: я не перекомпилировал через VS после перехода на ветку dev. Сейчас попробую.

После загрузки dev ветки с нуля компиляция завершилась без ошибок. Такие же предупреждения присутствуют и пример MATLAB Test01 работает. Другой не работал из-за отсутствия DISCON.dll.

Я использую NREL 5MW в качестве своей базы (башня и гондола такие же), и он хорошо работает с conda в WSL. Когда я хочу попробовать запустить свой собственный WT через MATLAB с Run_OpenLoop.m я сначала сталкиваюсь с некоторыми проблемами:
image
Затем я изменил TwrShadow с True на 1 , я пропустил эту ошибку, хотя это, вероятно, вызовет проблемы на следующих шагах. После этого я получаю следующую ошибку:
image

И я застрял здесь. Это связано с моими входными файлами? Потому что я смог запустить AWT_YFix_WSt через Run_OpenLoop.m . Причина, по которой я хочу использовать MATLAB, заключается в том, что я спроектирую контроллер высоты тона, иначе я бы использовал OpenFAST с conda в WSL.

да. Произошло изменение входного файла между v2.5.0 и веткой dev (мы добавили еще одну модель тени башни). Conda + WSL использует v2.5.0, но ваша скомпилированная версия находится в ветке dev . Вы можете сделать git checkout main; git submodule update и перекомпилировать свою локальную копию, чтобы получить версию v2.5.0, но, как я помню из беседы выше, вы не получите исправление ошибки обработки ошибок, которое есть в dev branch. Поэтому в вашем случае вы, вероятно, захотите придерживаться ветки dev и обновить необходимые входные файлы.

Это изменение входного файла отмечено во второй таблице Modified in OpenFAST dev, найденной здесь https://openfast.readthedocs.io/en/dev/source/user/api_change.html

У меня еще два вопроса. Есть ли какие-либо тестовые примеры, в которых угол тангажа контролируется через simulink? А описание случаев?

Уважаемый @ klitz06 ,

В репозитории OpenFAST нет подобных примеров Simulink, но вы можете найти интересующую вас версию Simulink контроллера ROSCO: https://github.com/NREL/ROSCO_toolbox.

С наилучшими пожеланиями,

Спасибо.

Всем привет,

У меня ошибка, когда AeroDyn пытается прочитать TwrShadow, хотя переключатель тени башни установлен на 0.

TwrShadow

Кто-нибудь знаком с такой ошибкой?
С наилучшими пожеланиями.

Уважаемый @LaurenceWETI ,

Как и в случае с любой проблемой обработки входного файла, я рекомендую включить опцию Echo для отладки. Видите ли вы какие-либо проблемы во входном файле при сравнении его с соответствующим файлом Echo?

Решает ли проблему установка TwrShadow = FALSE?

С наилучшими пожеланиями,

@LaurenceWETI

Версия 2.5.0, которую вы используете, использует логический флаг для ввода TwrShadow . Как предложил @jjonkman , это должно быть либо True либо False

Версия dev использует переключатель со значениями 0,1,2 с добавлением второй модели тени башни.

Уважаемые @jjonkman и @ andrew-platt!

Спасибо за ваш быстрый ответ.
Установка TwrShadow на True или Flase решила проблему в AeroDyn, но теперь у ServoDyn есть проблема с чтением CompNTMD . Мне не удалось найти этот параметр во входном файле ErvoDyn.

ServoDyn

У вас есть идеи, как решить эту ошибку?
Есть ли инструкции, как переключиться на версию dev , чтобы снова использовать переключатель тени башни?

С наилучшими пожеланиями,

Да, они изменили эту часть в файлах servodyn в ветке dev. Взгляните на главную ветку ссылки NREL 5mw в разделе файла TUNED MASS DAMPER.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги