У меня есть модель с некоторыми входами, которые подаются в S-функцию CMEX через блок памяти, и S-функция обеспечивает выходы на основе этих входов, и эти входы возвращаются в S-функцию. Классический алгебраический цикл. Я использовал блок памяти, чтобы предотвратить это, потому что наш решатель обычно с переменным временем
Согласно Математическая документация блок памяти, а также блок задержки устройства фиксированы с небольшим шагом по времени по отношению к своим выходам. Я понимаю, что входные может быть дискретным или непрерывным, но выход будет только непрерывным в основной шаг по времени и фиксируется в минорном.
Теперь по разным причинам для нас важно, чтобы все в модели обновлялось в второстепенном а также основные временные шаги. Я придумал способ использования вектора PWork для сохранения предыдущего значения точек состояния и передачи их в используемую нами S-функцию CMEX. Это предотвращает возникновение алгебраических циклов, а также обеспечивает непрерывность в незначительном временном шаге, но не так элегантно, как хотелось бы.
У кого-нибудь есть альтернативные предложения?
PS: Кроме того, я считаю, что лучше использовать блок памяти независимо от того, является ли мой решатель фиксированным шагом или переменным шагом, потому что внутри он просто станет блоком задержки устройства для решателей с фиксированным шагом. Это предположение верно?
Задача ещё не решена.