В этом примере показано, как использовать slLinearizer
взаимодействуйте через интерфейс, чтобы обработать в пакетном режиме, линеаризуют модель Simulink®. Вы линеаризуете модель в нескольких рабочих точках и получаете несколько разомкнутый контур и передаточные функции с обратной связью из модели.
Можно выполнить тот же анализ с помощью linearize
команда. Однако, когда это необходимо, чтобы получить несколько разомкнутый контур и передаточные функции с обратной связью, особенно для моделей, которые являются дорогими, чтобы неоднократно компилировать, slLinearizer
может быть более эффективным.
Откройте модель.
mdl = 'watertank';
open_system(mdl)
Используйте slLinearizer
команда, чтобы создать интерфейс.
sllin = slLinearizer(mdl)
slLinearizer linearization interface for "watertank": No analysis points. Use the addPoint command to add new points. No permanent openings. Use the addOpening command to add new permanent openings. Properties with dot notation get/set access: Parameters : [] OperatingPoints : [] (model initial condition will be used.) BlockSubstitutions : [] Options : [1x1 linearize.LinearizeOptions]
Отображение командного окна показывает информацию о slLinearizer
интерфейс. В этом интерфейсе, OperatingPoints
отображение свойства показывает, что никакая рабочая точка не задана.
Можно линеаризовать модель с помощью обрезанных рабочих точек, начального условия модели, или времена снимка состояния симуляции. В данном примере используйте точки обрезки, что вы получаете для различных высот ссылки уровня воды.
opspec = operspec(mdl); opspec.States(2).Known = 1; opts = findopOptions('DisplayReport','off'); h = [10 15 20]; for ct = 1:numel(h) opspec.States(2).x = h(ct); Href = h(ct); ops(ct) = findop(mdl,opspec,opts); end sllin.OperatingPoints = ops;
Здесь, h
задает различные уровни воды. ops
1 x 3 массива объектов рабочей точки. Каждая запись ops
рабочая точка модели в соответствующем уровне воды. Сконфигурируйте OperatingPoints
свойство sllin
с ops
. Теперь, когда вы получаете передаточные функции из sllin
использование getIOTransfer
, getLoopTransfer
, getSensitivity
, и getCompSensitivity
функции, программное обеспечение возвращает линеаризацию для каждой заданной рабочей точки.
Каждая точка для обрезки только допустима для соответствующей ссылочной высоты, представленной Href
параметр блока Desired Water Level. Так, сконфигурируйте sllin
варьироваться этот параметр соответственно.
param.Name = 'Href';
param.Value = h;
sllin.Parameters = param;
В watertank
модель, блок Water-Tank System представляет объект. Чтобы получить передаточную функцию объекта, добавьте сигналы ввода и вывода блока Water-Tank System как аналитические точки sllin
.
addPoint(sllin,{'watertank/PID Controller','watertank/Water-Tank System'}) sllin
slLinearizer linearization interface for "watertank": 2 Analysis points: -------------------------- Point 1: - Block: watertank/PID Controller - Port: 1 Point 2: - Block: watertank/Water-Tank System - Port: 1 No permanent openings. Use the addOpening command to add new permanent openings. Properties with dot notation get/set access: Parameters : [1x1 struct], 1 parameters with sampling grid of size 1x3 "Href", varying between 10 and 20. OperatingPoints : [1x3 opcond.OperatingPoint] BlockSubstitutions : [] Options : [1x1 linearize.LinearizeOptions]
Первая аналитическая точка, которая происходит в выходном порту блока PID Controller, является входом с блоком Water-Tank System. Второй аналитической точкой является выход блока Water-Tank System.
Получите передаточную функцию объекта из входа блока Water-Tank System с блоком выход. Чтобы устранить эффекты обратной связи, задайте блок выход как временное открытие цикла.
G = getIOTransfer(sllin,'PID','Tank','Tank');
В вызове getIOTransfer
, 'PID'
, фрагмент имени блока 'watertank/PID Controller'
, задает первую аналитическую точку как вход передаточной функции. Точно так же 'Tank'
, фрагмент имени блока 'watertank/Water-Tank System'
, относится к второй аналитической точке. Эта аналитическая точка задана как передаточная функция выход (третий входной параметр) и временное открытие цикла (четвертый входной параметр).
Выход, G
, 1 x 3 массива моделей в пространстве состояний непрерывного времени.
Постройте переходной процесс для G
.
stepplot(G);
Переходной процесс моделей объекта управления значительно варьируется в различных рабочих точках.
Передаточная функция с обратной связью равна передаточной функции от ссылочного входа, происходящего в блоке Desired Water Level, к объекту выход.
Добавьте ссылочный входной сигнал как аналитическую точку sllin
.
addPoint(sllin,'watertank/Desired Water Level');
Получите передаточную функцию с обратной связью.
T = getIOTransfer(sllin,'Desired','Tank');
Выход, T
, 1 x 3 массива моделей в пространстве состояний непрерывного времени.
Постройте переходной процесс для T
.
stepplot(T);
Несмотря на то, что переходной процесс передаточной функции объекта значительно варьируется в трех обрезанных рабочих точках, контроллер приносит ответы с обратной связью намного ближе вместе во всех трех рабочих точках.
S = getSensitivity(sllin,'Tank');
Программное обеспечение вводит сигнал воздействия и измеряет выход на объекте выход. S
1 x 3 массива моделей в пространстве состояний непрерывного времени.
Постройте переходной процесс для S
.
stepplot(S);
График показывает, что обе модели могут отклонить воздействие шага на объекте выход в течение 40 секунд.
slLinearizer
| addPoint
| addOpening
| getIOTransfer
| getLoopTransfer
| getSensitivity
| getCompSensitivity
| linearize