Моделируете ли вы свою систему управления в MATLAB® или Simulink®, используйте analysis points, чтобы отметить точки интереса в модели. Точки анализа позволяют вам получить доступ к внутренним сигналам, выполнить разомкнутый анализ или задать требования к настройке контроллера. В представлении блок-схемы точка анализа может быть рассмотрена как порт доступа к сигналу, протекающему от одного блока к другому. В Simulink точки анализа присоединены к выходам блоков Simulink. Для примера в следующей модели опорного сигнала, r
, и сигнал управления, u
, являются точками анализа, которые берут начало из выходов блоков setpoint и C соответственно.
Каждая точка анализа может служить одной или нескольким из следующих целей:
Вход - Программа вводит аддитивный входной сигнал в точку анализа, например, чтобы смоделировать нарушение порядка на входе объекта.
Выход - Программное обеспечение измеряет значение сигналов в точке, для примера, чтобы изучить влияние нарушения порядка на выход объекта.
Открытие цикла - программное обеспечение вставляет пропуск в поток сигналов в точке, для примера, чтобы изучить разомкнутый контур реакцию на входе объекта.
Эти цели можно применять одновременно. Для примера вычислить разомкнутый контур ответ от u
на y
, можно лечить u
как открытие цикла, так и вход. Когда вы используете точку анализа для нескольких целей, программное обеспечение применяет цели в этой последовательности: выходное измерение, затем открытие цикла, затем вход.
Используя точки анализа, можно извлечь отклики без разомкнутого контура и с обратной связью из системной модели управления. Например, предположим T
представляет систему с обратной связью в модели выше, и u
и y
отмечены как точки анализа. T
может быть либо обобщенной моделью пространства состояний, либо slLinearizer
или slTuner
интерфейс с моделью Simulink. Вы можете построить график обратной связи на нарушение порядка шага на входе объекта с помощью следующих команд:
Tuy = getIOTransfer(T,'u','y'); stepplot(Tuy)
Точки анализа также полезны, чтобы задать требования проекта при настройке систем управления с systune
команда. Например, можно создать требование, которое ослабляет нарушения порядка на входе объекта в 10 (20 дБ) или более раз.
Req = TuningGoal.Rejection('u',10);
Рассмотрим модель LTI следующего блока.
G = tf(10,[1 3 10]); C = pid(0.2,1.5); T = feedback(G*C,1);
С помощью этой модели можно получить ответ с обратной связью от r
на y
. Однако вы не можете анализировать разомкнутый контур реакцию на входе объекта управления или моделировать отказ от шага, нарушения порядка на входе объекта. Чтобы включить такой анализ, отметьте сигнал u
как точка анализа путем вставки AnalysisPoint
блок между объектом и контроллером.
AP = AnalysisPoint('u'); T = feedback(G*AP*C,1); T.OutputName = 'y';
Вход объекта, u
, теперь доступен для анализа.
В создании модели T
, вы вручную создали блок точки анализа AP
и явно включил его в цикл обратной связи. Когда вы комбинируете модели, используя connect
можно инструктировать программное обеспечение автоматически вставлять точки анализа в заданные местоположения. Для получения дополнительной информации см. connect
.
В Simulink можно пометить точки анализа либо явным образом в блоке, либо программно используя addPoint
(Simulink Control Design) команда для slLinearizer
или slTuner
интерфейсов.
Чтобы задать точки анализа непосредственно в модели Simulink, сначала откройте вкладку Linearization. Для этого в Apps галерее нажмите Linearization Manager.
Чтобы задать точку анализа:
В модели щелкните сигнал, который вы хотите задать как точку анализа.
На вкладке Linearization в коллекции Insert Analysis Points выберите тип точки анализа, которую необходимо задать.
Когда вы задаете точки анализа, программа добавляет аннотации к модели с указанием типа точки линейного анализа.
Повторите шаги 1 и 2 для всех сигналов, которые вы хотите задать как точки анализа.
Можно выбрать любой из следующих типов точек анализа с обратной связью, которые являются эквивалентными в slLinearizer
или slTuner
интерфейс; то есть они обрабатываются так же функциями анализа, такими как getIOTransfer
, и цели настройки, такие как TuningGoal.StepTracking
.
Input Perturbation
Output Measurement
Sensitivity
Complementary Sensitivity
Если вы хотите также ввести открытие постоянного цикла в сигнале, выберите один из следующих типов точек анализа без разомкнутого контура:
Open-Loop Input
Open-Loop Output
Loop Transfer
Loop Break
Когда вы задаете сигнал как точку без разомкнутого контура, анализ выполняет такие функции, как getIOTransfer
всегда приводите в действие пропуск цикла при этом сигнале во время линеаризации. Все типы точек анализа без разомкнутого контура являются эквивалентными в slLinearizer
или slTuner
интерфейс. Для получения дополнительной информации о том, как программа обрабатывает открытия цикла во время линеаризации, смотрите, Как Программа Обрабатывает Открытия Цикла (Simulink Control Design).
Когда вы создаете slLinearizer
или slTuner
интерфейс для модели, любые точки анализа, определенные в модели, автоматически добавляются к интерфейсу. Если вы определили точку анализа используя:
Тип с обратной связью, сигнал добавляется только как точка анализа.
Разомкнутого типа разомкнутый контур складывается как точка анализа, так и как постоянное открытие.
Чтобы программно пометить точки анализа, используйте addPoint
(Simulink Control Design) команда. Для примера рассмотрим scdcascade
модель.
open_system('scdcascade')
Чтобы пометить точки анализа, сначала создайте slTuner
интерфейс.
ST = slTuner('scdcascade');
Чтобы добавить сигнал в качестве точки анализа, используйте addPoint
команда, задающая исходный блок и номер порта для сигнала.
addPoint(ST,'scdcascade/C1',1);
Если исходный блок имеет один выходной порт, можно опустить номер порта.
addPoint(ST,'scdcascade/G2');
Для удобства можно также отметить точки анализа с помощью:
Имя сигнала.
addPoint(ST,'y2');
Комбинированный путь к исходному блоку и номер порта.
addPoint(ST,'scdcascade/C1/1')
Конец полного пути исходного блока, когда однозначно.
addPoint(ST,'G1/1')
Можно также добавить постоянные отверстия в slLinearizer
или slTuner
интерфейс с использованием addOpening
(Simulink Control Design) и определение сигналов так же, как и для addPoint
. Для получения дополнительной информации о том, как программа обрабатывает открытия цикла во время линеаризации, смотрите, Как Программа Обрабатывает Открытия Цикла (Simulink Control Design).
addOpening(ST,'y1m');
Можно также задать точки анализа путем создания объектов ввода-вывода линеаризации с помощью linio
(Simulink Control Design) команда.
io(1) = linio('scdcascade/C1',1,'input'); io(2) = linio('scdcascade/G1',1,'output'); addPoint(ST,io);
Как и когда вы задаете точки анализа непосредственно в модели, если вы задаете объект ввода-вывода линеаризации с:
Тип с обратной связью, сигнал добавляется только как точка анализа.
Разомкнутого типа разомкнутый контур складывается как точка анализа, так и как постоянное открытие.
Когда вы задаете операции ввода-вывода в инструменте, таком как Model Linearizer или Control System Tuner, программное обеспечение создает точки анализа по мере необходимости.
После того, как вы пометили точки анализа, можно проанализировать ответ в любой из этих точек с помощью следующих функций анализа:
getIOTransfer
- Передаточная функция для заданных входов и выходов
getLoopTransfer
- Передаточная функция без разомкнутого контура от аддитивного входа в заданной точке до измерения в той же точке
getSensitivity
- Функция чувствительности в заданной точке
getCompSensitivity
- Дополнительная функция чувствительности в заданной точке
Можно также создать цели настройки, которые ограничивают отклик системы в этих точках. Инструменты для выполнения этих операций работают подобным образом для моделей, созданных в командной строке, и моделей, созданных в Simulink.
Чтобы просмотреть доступные точки анализа, используйте getPoints
функция. Можно просмотреть анализ для созданных моделей:
В командной строке:
В Simulink:
Для моделей с обратной связью, созданных в командной строке, можно также использовать имена входа и выхода модели, когда:
Вычисление отклика с обратной связью.
ioSys = getIOTransfer(T,'u','y'); stepplot(ioSys)
Вычисление отклика без разомкнутого контура.
loopSys = getLoopTransfer(T,'u',-1);
bodeplot(loopSys)
Создание целей настройки для systune
.
R = TuningGoal.Margins('u',10,60);
Используйте тот же метод для обращения к точкам анализа для моделей, созданных в Simulink. В моделях Simulink для удобства можно использовать любое однозначное сокращение имен точек анализа, возвращаемую getPoints
.
ioSys = getIOTransfer(ST,'u1','y1'); sensG2 = getSensitivity(ST,'G2'); R = TuningGoal.Margins('u1',10,60);
Наконец, если некоторые точки анализа являются векторными сигналами или многоканальными местоположениями, можно использовать индексы для выбора конкретных записей или каналов. Например, предположим u
является вектором с двумя входами в модели MIMO с обратной связью.
G = ss([-1 0.2;0 -2],[1 0;0.3 1],eye(2),0); C = pid(0.2,0.5); AP = AnalysisPoint('u',2); T = feedback(G*AP*C,eye(2)); T.OutputName = 'y';
Можно вычислить разомкнутую характеристику второго канала и измерить влияние нарушения порядка на первый канал.
L = getLoopTransfer(T,'u(2)',-1); stepplot(getIOTransfer(T,'u(1)','y'))
Когда вы создаете цели настройки в Control System Tuner, программа создает точки анализа по мере необходимости.
AnalysisPoint
| getIOTransfer
| getPoints