В этом примере показано, как создать блок и вставить точки анализа в интересующие места с помощью connect
команда. Затем можно использовать точки анализа, чтобы извлечь различные отклики системы из модели.
В данном примере создайте модель предиктора Смита, многоуровневой системы управления SISO, показанной на следующем блоке.
Точки, отмеченные x, являются точками анализа, которые нужно отметить для этого примера. Например, если вы хотите вычислить переходную характеристику системы с обратной связью на нарушение порядка на входе объекта, можно использовать точку анализа в u. Если вы хотите вычислить ответ системы с одним или обоими открытыми циклами управления, можно использовать точки анализа в yp или dp.
Чтобы создать эту систему, сначала создайте динамические компоненты блока. Задайте имена для входа и выходных каналов каждой модели так, чтобы connect
может автоматически присоединиться к ним, чтобы создать блок.
s = tf('s'); % Process model P = exp(-93.9*s) * 5.6/(40.2*s+1); P.InputName = 'u'; P.OutputName = 'y'; % Predictor model Gp = 5.6/(40.2*s+1); Gp.InputName = 'u'; Gp.OutputName = 'yp'; % Delay model Dp = exp(-93.9*s); Dp.InputName = 'yp'; Dp.OutputName = 'y1'; % Filter F = 1/(20*s+1); F.InputName = 'dy'; F.OutputName = 'dp'; % PI controller C = pidstd(0.574,40.1); C.Inputname = 'e'; C.OutputName = 'u';
Создайте суммирующие соединения, необходимые для выполнения блока. (Для получения дополнительной информации о создании суммирующих соединений см. sumblk
).
sum1 = sumblk('e = ysp - ym'); sum2 = sumblk('ym = yp + dp'); sum3 = sumblk('dy = y - y1');
Соберите полную модель.
input = 'ysp'; output = 'y'; APs = {'u','dp','yp'}; T = connect(P,Gp,Dp,C,F,sum1,sum2,sum3,input,output,APs)
T = Generalized continuous-time state-space model with 1 outputs, 1 inputs, 4 states, and the following blocks: AnalysisPoints_: Analysis point, 3 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.
Когда вы используете APs
входной параметр, connect
команда автоматически вставляет AnalysisPoint
блок в обобщенное пространство состояний (genss
) модель, T
. Автоматически сгенерированный блок имеет имя AnalysisPoints_
. Три канала AnalysisPoints_
соответствуют трем местоположениям, указанным в APs
аргумент в connect
команда. Использование getPoints
для просмотра списка доступных точек анализа в модели.
getPoints(T)
ans = 3x1 cell
{'dp'}
{'u' }
{'yp'}
Используйте эти местоположения в качестве входов, выходов или открытий цикла, когда вы извлекаете ответы из модели. Для примера извлеките и постройте график отклика на выходе системы на шаг нарушения порядка на входе объекта u.
Tp = getIOTransfer(T,'u','y'); stepplot(Tp)
Точно так же вычислите разомкнутый контур ответ объекта и контроллера, открывая оба циклов обратной связи.
openings = {'dp','yp'}; L = getIOTransfer(T,'ysp','y',openings); bodeplot(L)
Когда вы создаете системную модель управления, можно создать AnalysisPoint
блокируйте явно и присваивайте ему входные и выходные имена. Затем можно включить его во входные параметры, чтобы connect
как один из блоков для объединения. Однако использование APs
аргумент в connect
как проиллюстрировано в этом примере, является более простым способом отметить интересующие точки при построении системных моделей управления.
AnalysisPoint
| connect
| sumblk