Прежде всего, поскольку я не прошу отлаживать конкретный код (код работает), и поскольку код довольно запутан, я не собираюсь его предоставлять.Скорее, я задаю этот вопрос, надеясь, что кто-то имеет хорошее представление о том, как реализовать решение для следующей проблемы в python.
Для серии симуляций я использую программу "Dymola".Мой скрипт на python создает случайный набор из 100 входов, запускает Dymola и передает их Dymola, который, в свою очередь, выполняет моделирование на основе каждого входа.Это происходит в цикле от 0 до 100, что приводит к 10 000 результатов моделирования.
После каждого цикла (-> после генерации 100 выходных данных Dymola) я сохраняю набор данных в массиве numpy, называя его «out1.npy» (и «in1.npy»).Если все пойдет соответствующим образом, out1 будет перезаписываться после каждого цикла, и в конце я получу файл out1.npy, содержащий 10 000 результатов.
Однако Dymola часто вылетает (ошибка Windows: «Dymola остановлен»работая ") после обработки некоторых входных данных, и сейчас я понятия не имею, почему это происходит.
То, что я делаю до сих пор, - это нажимаю" Закрыть программу "в диалоге ошибок Windows, проверяяк какому циклу симуляция была запущена в консоли (например, время: 50) и перезапустить цикл из диапазона (50,100) и вручную увеличить имя выходного файла до «out2.npy», чтобы «out1.npy» неперезаписано (в противном случае я потеряю данные первых 50).В конце я создаю полный набор данных, складывая все файлы out1, out2, out3, ... с помощью функции np.stack.
Что бы я хотел, чтобы мой скрипт на python закрылзапрограммируйте программу после ее сбоя (чтобы диалоговое окно ошибки Windows исчезло), чтобы считать время последнего цикла, обработанного с консоли, адаптируя диапазон по этому значению (например, 50), и повторно запустите скрипт python.Это возможно?