Моделируете ли вы свою систему управления в 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
. Для получения дополнительной информации о том, как программное обеспечение обрабатывает открытия цикла во время линеаризации, смотрите Как Открытия Цикла Обработок программного обеспечения (Simulink Control Design).
Когда вы создаете интерфейс 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
. Для получения дополнительной информации о том, как программное обеспечение обрабатывает открытия цикла во время линеаризации, смотрите Как Открытия Цикла Обработок программного обеспечения (Simulink Control Design).
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, программное обеспечение создает аналитические точки по мере необходимости.
AnalysisPoint
| getIOTransfer
| getPoints