OpenMDAO — Дымос. Интерполируйте результаты фазы на равнорасположенную сетку

#openmdao

Вопрос:

У меня есть результаты фазы в выходной сетке моей транскрипции. Чтобы выполнить некоторые дальнейшие анализы, мне нужно, чтобы мои результаты были представлены в равнорасположенной сетке. Как я могу использовать полученные комбинированные многочлены для получения значений выходных данных моих временных рядов в координатах новой равнораспространенной сетки?

Ответ №1:

Это было бы достигнуто с помощью второго вывода временных рядов: https://openmdao.github.io/dymos/features/phases/timeseries.html#interpolated-timeseries-outputs

Для этого вам понадобится, чтобы вторичные временные ряды использовали транскрипцию Гаусса-Лобатто 3-го порядка.

  • 3-й сегмент Гаусса-Лобатто состоит из 3 узлов
  • значение каждого состояния вводится в двух конечных точках
  • значение каждого элемента управления вводится в двух конечных и средней точках
  • если не указано иное, сегменты в фазе расположены на равном расстоянии друг от друга
  • если мы используем «сжатую» транскрипцию, значения состояния в общей точке последовательных сегментов предоставляются только один раз

Итак, основываясь на приведенном здесь тестовом примере, вы могли бы сделать что-то вроде следующего:

 tx_2 = dm.GaussLobatto(num_segments=10, order=3, compressed=True)
phase.add_timeseries('timeseries2', transcription=tx_2, subset='state_input')
 

Dymos выполнит интерполяцию из первичной транскрипции фазы на дискретизацию, указанную для timeseries2 .