#matlab #simulink
#matlab #simulink
Вопрос:
Предыстория:
Река имеет непостоянное поперечное сечение. В стандартных условиях уровень воды составляет h_Std (см. рисунок ниже).
Когда начинается дождь, уровень воды повышается до тех пор, пока не станет равным h_Rain (см. Рисунок ниже)
После прекращения дождя уровень воды снижается до стандартного уровня.
Как видно из диаграмм, соотношение между уровнем воды и объемом непостоянно. Однако функция может быть описана математически и известна для моего конкретного поперечного сечения реки.
Описание проблемы:
Я хочу смоделировать уровень воды в реке с течением времени в случае дождя. Дождь представлен сигналом, который может быть либо 0 (дождя нет), либо 1 (идет дождь) (см. красную кривую на рисунке ниже):
Темно-синие части нижней диаграммы нелинейны и представляют собой участок между h_Std и h_Rain из приведенных выше диаграмм. Время для полного заполнения реки известно (t_Fill).
В общем, я хочу активировать определяемую пользователем функцию (в моем случае соотношение между количеством воды / дождя и уровнем воды в реке), запускаемую внешним сигналом (в моем случае представленным сигналом «rain»).
Как я могу получить такую функцию (либо с помощью фрагмента кода Matlab, либо с блоками Simulink)?
Комментарии:
1. Что происходит между желтым и красным сигналами? Это часть желтого сигнала? Если нет, то как вы узнаете, когда заканчивается желтый сигнал? Для этого тоже есть триггер? Аналогично для красного сингнала. Откуда вы знаете, что время закончилось?
2. Я обновил свой вопрос, чтобы сделать его более конкретным (см. Вопрос выше)
Ответ №1:
Это можно было бы сделать несколькими способами, одним из которых является использование включенных подсистем для обработки фаз дождя и отсутствия дождя. Вам нужно будет изменить содержимое 2 подсистем ниже, чтобы отразить ваш точный профиль роста в 2 регионах.
Комментарии:
1. Похоже, что t_Fill / t_Emtpy реализован с помощью блоков усиления в вашем примере. Однако, похоже, что наклон сигнала высоты зависит от
Max step size
вашего решателя. Как можно решить эту проблему? Я попытался использовать функцию ramp внутри подсистемы (безуспешно). Я загрузил вашу модель в свой dropbox , чтобы вам было легко получить к ней доступ и отредактировать ее.