exponenta event banner

AnalysisPoint

Точки, представляющие интерес для линейного анализа

Синтаксис

AP = AnalysisPoint(name)
AP = AnalysisPoint(name,N)

Описание

AnalysisPoint является блоком управления для маркировки местоположения в модели системы управления в качестве точки, представляющей интерес для линейного анализа и настройки контроллера. Можно комбинировать AnalysisPoint блок с числовыми моделями LTI, настраиваемыми моделями LTI и другими блоками проектирования элементов управления для построения настраиваемых моделей систем управления. AnalysisPoint доступны для анализа с помощью таких команд, как getIOTransfer или getLoopTransfer. Такие места также доступны для задания целей проектирования для настройки системы управления.

Например, рассмотрим следующую систему управления.

Предположим, что вас интересуют эффекты возмущения, введенного на u в этой системе управления. Вставка AnalysisPoint блок в местоположении u связывает подразумеваемый вход, подразумеваемый выход и опцию размыкания цикла в этом местоположении, как показано на следующей диаграмме.

Предположим, что T является моделью системы управления, включая AnalysisPoint блок, AP_u. В этом случае команда getIOTransfer(T,'AP_u','y') возвращает модель функции передачи с замкнутым контуром от u до y. Аналогично, команда getLoopTransfer(T,'AP_u',-1) возвращает модель отклика с отрицательной обратной связью с разомкнутым контуром, CG, измеренную в местоположении u.

AnalysisPoint блоки также полезны при настройке системы управления с помощью таких команд настройки, как systune. Вы можете использовать AnalysisPoint блок, обозначающий место открытия цикла для таких требований к настройке с разомкнутым контуром, как TuningGoal.LoopShape или TuningGoal.Margins. Также можно использовать AnalysisPoint блок для маркировки указанных входных или выходных данных в соответствии с требованиями настройки, такими как TuningGoal.Gain. Например, Req = TuningGoal.Margins('AP_u',5,40) ограничивает поля усиления и фазы в местоположении u.

Можно создавать AnalysisPoint блоки, явно использующие AnalysisPoint и соедините их с другими компонентами блок-схемы с помощью команд взаимодействия модели. Например, следующий код создает модель системы, показанную выше. (Дополнительную информацию см. в разделе «Конструкция и примеры» ниже.)

G = tf(1,[1 2]);
C = tunablePID('C','pi');
AP_u = AnalysisPoint('u');
T = feedback(G*AP_u*C,1);      % closed loop r->y

Можно также создавать точки анализа неявно, используя connect команда. Следующий синтаксис создает динамическую системную модель с точками анализа путем соединения нескольких моделей sys1,sys2,...,sysN:

sys = connect(sys1,sys2,...,sysN,inputs,outputs,APs);

APs В перечислены местоположения сигналов для вставки точек анализа. Программа автоматически создает и вставляет AnalysisPoint блок с каналами, соответствующими этим местоположениям. Посмотрите connect для получения дополнительной информации.

Строительство

AP = AnalysisPoint(name) создает одноканальную точку анализа. Вставка AP в любом месте обобщенной модели вашей системы управления, чтобы отметить интересующую точку для линейного анализа или настройки контроллера. name указывает имя блока.

AP = AnalysisPoint(name,N) создает многоканальную точку анализа с помощью N каналы. Используйте этот блок, чтобы пометить сигнал с векторными значениями как интересующую точку или объединить несколько интересующих точек.

Входные аргументы

name

Имя точки анализа, указанное как символьный вектор, например 'AP'. Этот входной аргумент задает значение Name имущества AnalysisPoint блок. (См. раздел Свойства.) При построении модели системы управления с использованием блока Name свойство - это то, что появляется в Blocks список полученных результатов genss модель.

N

Число каналов для многоканальной точки анализа, указанное как скалярное целое число.

Свойства

Location

Названия каналов в AnalysisPoint блоки, заданные как символьный вектор или массив ячеек символьных векторов.

По умолчанию каналам точек анализа присваиваются имена name аргумент. Например, если имеется одноканальная точка анализа, AP, который имеет имя 'AP', то AP.Location = 'AP' по умолчанию. Если имеется многоканальная точка анализа, то AP.Location = {'AP(1)','AP(2)',...} по умолчанию. Набор AP.Location для другого значения, если требуется настроить имена каналов.

Open

Состояние размыкания цикла, указанное как логическое значение или вектор логических значений. Это свойство отслеживает, открыт или замкнут контур в точке анализа.

Например, рассмотрим цикл обратной связи на следующей иллюстрации.

Этот цикл обратной связи можно моделировать следующим образом.

G = tf(1,[1 2]);
C = tunablePID('C','pi');
X = AnalysisPoint('X');
T = feedback(G*C,X);

Можно получить передаточную функцию от r до y с разомкнутым контуром обратной связи в точке X следующим образом.

 Try = getIOTransfer(T,'r','y','X');

В получившемся обобщенном состоянии-пространстве (genss) модель, AnalysisPoint блок 'X' помечен как открытый. Другими словами, Try.Blocks.X.Open = 1.

Для многоканальной точки анализа: Open - логический вектор, содержащий столько записей, сколько точек анализа имеет каналов.

По умолчанию: 0 для всех каналов

Ts

Время выборки. Для AnalysisPoint блоки, значение этого свойства автоматически устанавливается равным времени выборки других блоков и моделей, с которыми оно связано.

По умолчанию: 0 (непрерывное время)

TimeUnit

Единицы измерения для переменной времени, времени выборки Tsи любые временные задержки в модели, указанные как одно из следующих значений:

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

Изменение этого свойства не влияет на другие свойства и, следовательно, изменяет общее поведение системы. Использовать chgTimeUnit преобразование между единицами времени без изменения поведения системы.

По умолчанию: 'seconds'

InputName

Имена входных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним входом, например, 'controls'.

  • Массив ячеек символьных векторов - для моделей с несколькими входами.

Можно также использовать автоматическое векторное расширение для назначения входных имен для моделей с несколькими входами. Например, если sys является моделью с двумя входами, введите:

sys.InputName = 'controls';

Имена вводимых данных автоматически расширяются до {'controls(1)';'controls(2)'}.

Можно использовать сокращенную нотацию u см. InputName собственность. Например, sys.u эквивалентно sys.InputName.

Имена входных каналов имеют несколько применений, в том числе:

  • Идентификация каналов на дисплее модели и графиках

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

По умолчанию: '' для всех входных каналов

InputUnit

Блоки входных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним входом, например, 'seconds'.

  • Массив ячеек символьных векторов - для моделей с несколькими входами.

Использовать InputUnit отслеживание блоков входных сигналов. InputUnit не влияет на поведение системы.

По умолчанию: '' для всех входных каналов

InputGroup

Группы входных каналов. InputGroup позволяет назначать входные каналы систем MIMO в группы и ссылаться на каждую группу по имени. Укажите входные группы как структуру. В этой структуре имена полей являются именами групп, а значения полей - входными каналами, принадлежащими каждой группе. Например:

sys.InputGroup.controls = [1 2];
sys.InputGroup.noise = [3 5];

создает входные группы с именем controls и noise которые включают в себя входные каналы 1, 2 и 3, 5 соответственно. Затем можно извлечь подсистему из controls входы на все выходы с использованием:

sys(:,'controls')

По умолчанию: структура без полей

OutputName

Имена выходных каналов, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним выходом. Например, 'measurements'.

  • Массив ячеек символьных векторов - для моделей с несколькими выходами.

Можно также использовать автоматическое векторное расширение для назначения выходных имен для моделей с несколькими выходами. Например, если sys является моделью с двумя выходами, введите:

sys.OutputName = 'measurements';

Имена вывода автоматически расширяются до {'measurements(1)';'measurements(2)'}.

Можно использовать сокращенную нотацию y см. OutputName собственность. Например, sys.y эквивалентно sys.OutputName.

Имена выходных каналов имеют несколько применений, в том числе:

  • Идентификация каналов на дисплее модели и графиках

  • Извлечение подсистем систем MIMO

  • Указание точек соединения при соединении моделей

По умолчанию: '' для всех выходных каналов

OutputUnit

Единицы выходного канала, указанные как одно из следующих:

  • Символьный вектор - для моделей с одним выходом. Например, 'seconds'.

  • Массив ячеек символьных векторов - для моделей с несколькими выходами.

Использовать OutputUnit отслеживание блоков выходного сигнала. OutputUnit не влияет на поведение системы.

По умолчанию: '' для всех выходных каналов

OutputGroup

Группы выходных каналов. OutputGroup позволяет назначать выходные каналы систем MIMO в группы и ссылаться на каждую группу по имени. Укажите группы вывода в качестве структуры. В этой структуре имена полей являются именами групп, а значения полей - выходными каналами, принадлежащими каждой группе. Например:

sys.OutputGroup.temperature = [1];
sys.InputGroup.measurement = [3 5];

создает выходные группы с именем temperature и measurement которые включают в себя выходные каналы 1 и 3, 5 соответственно. Затем можно извлечь подсистему из всех входов в measurement вывод с использованием:

sys('measurement',:)

По умолчанию: структура без полей

Name

Имя системы, указанное как символьный вектор. Например, 'system_1'.

По умолчанию: ''

Notes

Любой текст, который требуется связать с системой, хранится в виде строки или массива ячеек символьных векторов. Свойство хранит данные любого типа. Например, если sys1 и sys2 являются динамическими моделями систем, можно задать их Notes следующие свойства:

sys1.Notes = "sys1 has a string.";
sys2.Notes = 'sys2 has a character vector.';
sys1.Notes
sys2.Notes
ans = 

    "sys1 has a string."


ans =

    'sys2 has a character vector.'

По умолчанию: [0×1 string]

UserData

Любой тип данных, который требуется связать с системой, указанный как любой тип данных MATLAB ®.

По умолчанию: []

Примеры

свернуть все

Создайте модель следующего цикла обратной связи с точкой анализа в пути обратной связи.

В этом примере модель завода представляет собой G = 1/( s + 2). C - настраиваемый PI-контроллер, а X - точка анализа.

G = tf(1,[1 2]);
C = tunablePID('C','pi');
X = AnalysisPoint('X');
T = feedback(G*C,X); 
T.InputName = 'r';
T.OutputName = 'y';

T является настраиваемым genss модель. T.Blocks содержит управляющие блоки проектирования модели, которые являются контроллером, Cи точка анализа, X.

T.Blocks
ans = struct with fields:
    C: [1x1 tunablePID]
    X: [1x1 AnalysisPoint]

Проверить ступенчатую реакцию T.

stepplot(T)

Figure contains an axes. The axes with title From: r To: y contains an object of type line. This object represents T.

Наличие AnalysisPoint блок не изменяет динамику модели.

Для линейного анализа системы можно использовать точку анализа. Например, извлеките ответ системы в 'y' к нарушению, введенному в точке анализа.

Txy = getIOTransfer(T,'X','y');

AnalysisPoint блок также позволяет временно разорвать петлю обратной связи в этой точке. Например, вычислить отклик с разомкнутым контуром из 'r' кому 'y'.

Try_open = getIOTransfer(T,'r','y','X');

Указание имени точки анализа в качестве последнего аргумента для getIOTransfer извлекает ответ с открытым в этот момент циклом. Проверить ступенчатую реакцию Try_open для проверки того, что это ответ с разомкнутым контуром.

stepplot(Try_open);

Figure contains an axes. The axes with title From: r To: y contains an object of type line. This object represents Try\_open.

Создайте модель следующей блок-схемы от r до y. Вставьте точку анализа во внутреннее расположение, u.

Создать C и Gи назовите входы и выходы.

C = pid(2,1); 
C.InputName = 'e';  
C.OutputName = 'u';
G = zpk([],[-1,-1],1);
G.InputName = 'u';  
G.OutputName = 'y';

Создайте суммирующее соединение.

Sum = sumblk('e = r - y');

Объединиться C, Gи суммирующее соединение для создания агрегированной модели с точкой анализа u.

T = connect(G,C,Sum,'r','y','u')
T =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 3 states, and the following blocks:
    AnalysisPoints_: Analysis point, 1 channels, 1 occurrences.

Type "ss(T)" to see the current value, "get(T)" to see all properties, and "T.Blocks" to interact with the blocks.

Получающееся T является genss модель. connect создает команду AnalysisPoint блок, AnalysisPoints_и вставляет его в T. Просмотр имени канала точки анализа в AnalysisPoints_, использовать getPoints.

getPoints(T)
ans = 1x1 cell array
    {'u'}

Канал точки анализа называется 'u'. Эту точку анализа можно использовать для извлечения ответов системы. Например, следующие команды извлекают передачу с разомкнутым контуром при u и реакцию с замкнутым контуром при y на возмущение, введенное при u.

L = getLoopTransfer(T,'u',-1);
Tuy = getIOTransfer(T,'u','y');

T эквивалентно следующей блок-схеме, где AP_u обозначает AnalysisPoint блок AnalysisPoints_ с названием канала u.

Создайте блок для маркировки двух точек анализа в модели MIMO.

В системе управления, показанной на следующей иллюстрации, каждый сигнал рассматривается как сигнал с векторными значениями размера 2. Другими словами, сигнал r представляет {r(1),r(2)}, y представляет собой {y(1),y(2)}и так далее.

Следовательно, сигнал обратной связи также является сигналом с векторными значениями размера 2. Создайте блок для маркировки двух точек анализа в траектории обратной связи.

AP = AnalysisPoint('X',2)
AP =

Multi-channel analysis point at locations:
   X(1)
   X(2)

Type "ss(AP)" to see the current value and "get(AP)" to see all properties.

AnalysisPoint блок хранится как переменная в рабочем пространстве MATLAB ® под названиемAP. Кроме того, Name свойство блока имеет значение X. При соединении блока с числовыми моделями LTI или другими контрольными блоками проектирования этот блок точки анализа идентифицируется в Blocks свойство результирующего genss модель как X. Имя блока X автоматически расширяется для создания имен каналов X(1) и X(2).

Иногда удобно изменять названия каналов в соответствии с именами сигналов, которым они соответствуют на блок-схеме модели. Например, предположим, что точки интересов, которые вы хотите отметить в модели, являются сигналами с именем L и V. Изменить Location имущество AP чтобы имена соответствовали этим сигналам.

AP.Location = {'L';'V'}
AP =

Multi-channel analysis point at locations:
   L
   V

Type "ss(AP)" to see the current value and "get(AP)" to see all properties.

Хотя имена каналов изменились, имя блока остается X.

AP.Name
ans = 
'X'

Следовательно, Blocks свойство genss модель, построенная с этим блоком, по-прежнему идентифицирует блок как X. Использовать getPoints для поиска имен каналов доступных точек анализа в genss модель.

Представлен в R2014b