Описание проблемы:MATLAB/Simulink: Моделирование управления двигателем клапана
Я хочу, чтобы имитировать управление двигателем клапана (MCV) с Matlab/Simulink. Контрольный-Сингаль (красный) управляет MCV, который может принимать любое значение в пределах от 0% (полностью закрыты) и 100% (полностью открыт):
я указал три различные импульсы вход- сигнал с 1, 2 и 3. Как только входной сигнал изменяется от 0 до 1 (нарастающий фронт), MCV начинает открываться. По истечении времени t_Op MCV полностью открывается. Как только входной сигнал изменяется от 1 до 0 (задний фронт), клапан начинает закрываться. Этот процесс завершается после t_Cl. Обратите внимание, что t_Op и t_Cl необязательно должны быть одинаковыми.
Как вы можете видеть на диаграмме, клапан полностью закрывается после импульса №. 1 (задний фронт). Однако ширина между импульсом №. 2 и № импульса. 3 недостаточно, чтобы полностью закрыть клапан. На переднем фронте импульса нет. 3, клапан открывается снова, пока он не будет полностью открыт.
Вопрос:
Я хочу, чтобы имитировать процесс, описанный выше, с Matlab (предпочитаемый) или Simulink. Я не уверен на 100%, как начать работу с этой проблемой. Я думал об извлечении нарастающих/ребер из исходной системы и использовать эти «триггеры», чтобы инициировать некоторую зависящую от времени «наклонную» -ступенчатую функцию. Может быть, у вас есть для меня какие-то намеки?
Хотя в другом контексте, решение Simulink этой проблемы достигается в значительной степени одинаковым образом, чтобы http://stackoverflow.com/questions/40190454/matlab-simulink-simulate-filling-and-emptying -of-а-река. «Дождь» в этом вопросе - это ваше «открытие», а «не дождь» - это ваше «закрытие». Вам просто нужно реализовать соответствующий наклон/рампу в двух подсистемах для удовлетворения ваших требований времени t_op и t_Cl. –
Я также попытался решить эту проблему с помощью двух разрешенных подсистем. Однако я не знаю, как подать результат (то есть фактическое положение клапана, например, 50%) из одной подсистемы в другую (и наоборот) в случае не полностью открытого/закрытого MCV. Внутри каждой подсистемы я могу легко определить рампу с минимальными/максимальными значениями, которые соответствуют 0%/100% позиции клапана. Но эти значения остаются неизменными в течение времени моделирования и не могут быть изменены. –
Пример в ссылке показывает, как вернуть существующее значение обратно в подсистемы. Это будет работать независимо от положения клапана при изменении направления клапана. –