Моделируете ли вы свою систему управления в MATLAB® или Simulink®, используйте analysis points, чтобы отметить интересные места в модели. Аналитические точки позволяют вам получать доступ к внутренним сигналам, выполнять анализ разомкнутого цикла или задавать требования для контроллера, настраивающегося. В представлении блок-схемы аналитическая точка может считаться портом доступа к сигналу, вытекающему из одного блока другому. В Simulink аналитические точки присоединены к выходным портам блоков Simulink. Например, в следующей модели, ссылочный сигнал, r
, и управляющий сигнал, u
, является аналитическими точками, которые происходят из выходных параметров заданного значения и блоков 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
для интерфейсов slTuner
или slLinearizer
.
Чтобы отметить аналитическую точку явным образом в модели, щелкните правой кнопкой по сигналу и, под Linear Analysis Points, выберите аналитический тип точки.
Можно выбрать любой из следующих аналитических типов точки с обратной связью, которые эквивалентны в интерфейсе 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
. Для получения дополнительной информации о том, как программное обеспечение обрабатывает открытия цикла во время линеаризации, смотрите Как Открытия Цикла Обработок программного обеспечения.
Когда вы создаете интерфейс slLinearizer
или slTuner
для модели, любые аналитические точки, заданные в модели, автоматически добавляются к интерфейсу. Если вы задали аналитическое использование точки:
Тип с обратной связью, сигнал добавляется как аналитическая точка только.
Тип разомкнутого цикла, сигнал добавляется и как аналитическая точка и как постоянное открытие.
Чтобы отметить аналитические точки программно, используйте команду addPoint
. Например, рассмотрите модель 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
, и задав сигналы таким же образом что касается addPoint
. Для получения дополнительной информации о том, как программное обеспечение обрабатывает открытия цикла во время линеаризации, смотрите Как Открытия Цикла Обработок программного обеспечения.
addOpening(ST,'y1m');
Можно также задать аналитические точки путем создания объектов ввода-вывода линеаризации с помощью команды linio
.
io(1) = linio('scdcascade/C1',1,'input'); io(2) = linio('scdcascade/G1',1,'output'); addPoint(ST,io);
Как тогда, когда вы задаете аналитические точки непосредственно в вашей модели, если вы задаете объект I/O линеаризации с:
Тип с обратной связью, сигнал добавляется как аналитическая точка только.
Тип разомкнутого цикла, сигнал добавляется и как аналитическая точка и как постоянное открытие.
Когда вы задаете ответ I/Os в инструменте, таком как Linear Analysis Tool или 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
является вектором 2D записи в модели 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, программное обеспечение создает аналитические точки по мере необходимости.