Можно линеаризовать модели с компонентами Simscape™ с помощью программного обеспечения Simulink® Control Design™. Как правило, некоторые состояния в сети Simscape имеют зависимости от других состояний посредством ограничений.
Чтобы найти установившуюся рабочую точку, в которой можно линеаризовать модель Simscape, можно использовать:
Основанная на оптимизации обрезка — Задает ограничения на образцовые входные параметры, выходные параметры или состояния, и вычисляет установившуюся рабочую точку, которая удовлетворяет эти ограничения.
Чтобы привести лучше к обрезающим результатам для моделей Simscape, можно использовать основанные на проекции оптимизаторы для обрезки. Эти оптимизаторы осуществляют непротиворечивость образцового начального условия при каждой оценке целевой функции или нелинейной ограничительной функции.
Снимки состояния симуляции — начальные условия модели Specify около ожидаемой точки равновесия, и моделируют модель, пока она не достигает устойчивого состояния.
Для получения дополнительной информации смотрите, Находят Установившиеся Рабочие точки для Моделей Simscape.
Чтобы линеаризовать вашу модель, необходимо задать фрагмент модели, вы хотите линеаризовать использующие линейные аналитические точки; то есть, вводы и выводы линеаризации и открытия цикла. Можно только добавить, что анализ указывает на Сигналы Simulink.
Чтобы добавить вход линеаризации или цикл, открывающийся к входу компонента Simscape, сначала преобразуйте Сигнал Simulink с помощью блока Simulink-PS Converter.
Чтобы добавить линеаризацию вывод или цикл, открывающийся к выводу компонента Simscape, сначала преобразуйте сигнал Simscape использование блока PS-Simulink Converter.
Для получения дополнительной информации о добавлении линейных аналитических точек смотрите, Задают Фрагмент Модели, чтобы Линеаризовать.
После того, как вы зададите установившуюся рабочую точку и линейные аналитические точки, можно линеаризовать использование модели Simscape:
Функция linearize
.
Интерфейс slLinearizer
.
Для общих примеров линеаризации смотрите, Линеаризуют Модель Simulink в Образцовой Рабочей точке и Линеаризуют в Обрезанной Рабочей точке.
Сети Simscape могут обычно линеаризовать, чтобы обнулить, когда набор системных Якобианов уравнения является нулем в данных условиях работы. Обычно, плохие начальные условия сетевых состояний вызывают эту нулевую линеаризацию.
Рассмотрите систему, где массовая скорость потока жидкости от переменного отверстия управляет положением поршня. Массовое уравнение скорости потока жидкости переменного отверстия:
Где:
q является массовой скоростью потока жидкости.
Cd является коэффициентом выброса.
A является областью переменного открытия отверстия.
μ является жидкой плотностью.
p является перепадом давления через отверстие, p = pa - pb.
pcr является критическим давлением, которое является функцией pa и pb.
Контрольная переменная для этой системы является областью отверстия, A, который управляет массовой скоростью потока жидкости. Якобиан массовой скорости потока жидкости относительно контрольной переменной:
Линеаризовавшее массовое уравнение скорости потока жидкости:
где представляет отклонение от номинальной переменной.
В линеаризовавшем уравнении, если номинальный перепад давления p через отверстие является нулем, то не имеет никакого влияния на . Таким образом, если мгновенный перепад давления через отверстие является нулем, область отверстия не имеет никакого влияния на массовую скорость потока жидкости. Поэтому вы не можете управлять поршневым положением с помощью контрольной переменной области отверстия.
Чтобы избежать этого условия, линеаризуйте модель о рабочей точке, где перепад давления по отверстию является ненулевым (pa ≠ pb).
Чтобы решить проблемы линеаризации, вызванные плохими начальными условиями сетевых состояний, вы можете:
Линеаризуйте систему в рабочей точке снимка состояния или обрезанной рабочей точке. Когда возможно, этот подход рекомендуется.
Найдите и измените проблематичные состояния рабочей точки. Эта опция может быть трудной для моделей со многими состояниями.
Используя первый подход, можно гарантировать, что образцовые состояния сопоставимы через Simulink и механизм симуляции Simscape. Начальные условия Simscape находятся не обязательно в сопоставимом состоянии. Механизм Simscape размещает их в сопоставимое состояние во время симуляции и для обрезки использования решателей обрезки Simscape.
Общий рабочий процесс должен моделировать вашу модель, наблюдать, в какое время модель удовлетворяет условия работы, в которых вы хотите линеаризовать, затем взять снимок состояния симуляции. Также можно обрезать модель об условии, которым вы интересуетесь. В любом случае сетевые состояния находятся в сопоставимом условии, которое решает самые плохие проблемы линеаризации.
Используя второй подход, вы перерываете состояния физической сети, чтобы найти условия, которые могут создать нулевой якобиан. Этот подход может потребовать некоторой интуиции о динамике физических компонентов в вашей модели. Как отправная точка, ищите состояния, которые являются нулем и которые взаимодействуют непосредственно с нелинейными физическими элементами, такими как переменное отверстие в предыдущем примере.
Чтобы искать физические состояния, можно использовать Советника по вопросам Линеаризации, который собирает диагностическую информацию во время линеаризации. Советник по вопросам Линеаризации не предоставляет диагностическую информацию на основе уровня компонента для сетей Simscape. Вместо этого это группирует диагностическую информацию для нескольких компонентов Simscape вместе.
Линеаризуйте свою модель с Советником по вопросам Линеаризации, включенным, и извлеките объект LinearizationAdvisor
.
opt = linearizeOptions('StoreAdvisor',true);
[linsys,linop,info] = linearize(mdl,io,op,opt);
advisor = info.Advisor;
Создайте объект пользовательского запроса и ищите диагностическую информацию блоки Simscape.
qSS = linqueryIsBlockType('simscape');
advSS = find(advisor,qSS);
Чтобы найти проблематичные значения состояния, проверяйте рабочую точку блока в каждый объект BlockDiagnostic
.
advSS.BlockDiagnostics(i).OperatingPoint.States
Если вы находите проблематичное состояние, можно изменить значение состояния в образцовой рабочей точке или создать рабочую точку с помощью operpoint
.
Можно также искать Советника по вопросам Линеаризации в Linear Analysis Tool. Для получения дополнительной информации смотрите, Находят Блоки в Результатах Линеаризации, Совпадающих с Определенными Критериями.