Я работаю над моделью температуры двигателя. Я застрял в точке. Существует сигнал с именем tred
, который необходимо отфильтровать с помощью фильтра нижних частот, чтобы получить окончательный выходной сигнал как tredf
. Проблема в том, что tred
начинается с 90 ° C, но после фильтрации tredf
начинается с 0. Я сравниваю свою модель simulink. с другой моделью реального времени. Кажется, все в порядке, кроме этой инициализации. Я хочу, чтобы мой отфильтрованный сигнал tredf
также начинался с 90°C. Фильтр, который я использую, представляет собой фильтр PT1 (пропорциональная передача 1-го порядка) (низкочастотный), который получен из самостоятельно созданной библиотеки.
Фильтр имеет следующие 6 входов:
- u(k), то есть вход, а именно
tred
. - T т. е. постоянная времени фильтра, а именно 500.
- y(0), то есть начальное значение, а именно
tred
. - reset - подключен к биту (сбрасывается, когда бит ложный).
- вычисление - подключено к тому же биту (вычисляет вывод, когда бит истинен).
- dT - время выборки/инкремента - я установил его на 0,1.
Это описание блока PT1 для лучшего понимания:
- Блок PT1 представляет собой ФНЧ с дискретным временем и постоянной времени T, алгоритм интегрирования работает по принципу Эйлера-вперед. Постоянная времени автоматически ограничивается в диапазоне их значений (T > = dT). Вход y(0) является цифровым фильтром нижних частот, указывающим начальное значение, поскольку это начальное значение может быть в любой момент импульсом при приеме сброса-возврата. Блок PT1 должен явно содержать ввод с поддержкой вычислений.
Первые 5 входов фильтра фиксированы, и я могу установить только dT
. Есть ли у кого-нибудь идеи, что я делаю неправильно и как выход, т.е. tredf
, также начинается с 90 ° C?