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

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

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

TimeUnit

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

  • 'nanoseconds'

  • 'microseconds'

  • 'milliseconds'

  • 'seconds'

  • 'minutes'

  • 'hours'

  • 'days'

  • 'weeks'

  • 'months'

  • 'years'

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

Значение по умолчанию: 'seconds'

InputName

Введите названия канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно входа, например, 'controls'.

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

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

sys.InputName = 'controls';

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

Можно использовать краткое обозначение u, чтобы относиться к свойству InputName. Например, sys.u эквивалентен sys.InputName.

Входные названия канала имеют несколько использования, включая:

  • Идентификация каналов на образцовом отображении и графиках

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

  • Определение точек контакта, когда взаимосвязанные модели

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

InputUnit

Введите модули канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно входа, например, 'seconds'.

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

Используйте InputUnit, чтобы отслеживать модули входного сигнала. InputUnit не имеет никакого эффекта на поведение системы.

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

InputGroup

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

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

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

sys(:,'controls')

Значение по умолчанию: Struct без полей

OutputName

Выведите названия канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно вывода. Например, 'measurements'.

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

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

sys.OutputName = 'measurements';

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

Можно использовать краткое обозначение y, чтобы относиться к свойству OutputName. Например, sys.y эквивалентен sys.OutputName.

Выходные названия канала имеют несколько использования, включая:

  • Идентификация каналов на образцовом отображении и графиках

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

  • Определение точек контакта, когда взаимосвязанные модели

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

OutputUnit

Выведите модули канала, заданные как одно из следующего:

  • Вектор символов — Для моделей одно вывода. Например, 'seconds'.

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

Используйте OutputUnit, чтобы отслеживать модули выходного сигнала. OutputUnit не имеет никакого эффекта на поведение системы.

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

OutputGroup

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

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

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

sys('measurement',:)

Значение по умолчанию: Struct без полей

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)

Присутствие блока AnalysisPoint не изменяет динамику модели.

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

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

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

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

Определение аналитического имени точки в качестве последнего аргумента к getIOTransfer извлекает ответ с циклом, открытым в той точке. Исследуйте переходной процесс Try_open, чтобы проверить, что это - ответ разомкнутого цикла.

stepplot(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 и соединение подведения итогов, чтобы создать совокупную модель, с аналитической точкой в вас.

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'. Можно использовать эту аналитическую точку, чтобы извлечь отклики системы. Например, следующие команды извлекают передачу разомкнутого цикла в вас и ответ с обратной связью в y к воздействию, введенному в вас.

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