exponenta event banner

genss

Обобщенная модель состояния-пространства

Описание

Обобщенное состояние-пространство (genss) являются моделями пространства состояний, которые включают перестраиваемые параметры или компоненты. genss модели возникают при объединении числовых моделей LTI с моделями, содержащими перестраиваемые компоненты (управляющие конструкторские блоки). Дополнительные сведения о числовых моделях LTI и управляющих блоках проектирования см. в разделе Модели с настраиваемыми коэффициентами.

Обобщенные модели состояния-пространства можно использовать для представления систем управления, имеющих смесь фиксированных и настраиваемых компонентов. Использование обобщенных моделей пространства состояния для управления задачами проектирования, такими как проработка параметров и настройка параметров с помощью таких команд, как systune и looptune.

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

Для построения genss модель:

  • Использовать series, parallel, lft, или connectили арифметические операторы +, -, *, /, \, и ^, для объединения числовых моделей LTI с блоками проектирования управления.

  • Использовать tf или ss с одним или несколькими входными аргументами, которые являются обобщенной матрицей (genmat) вместо числового массива

  • Преобразование любой числовой модели LTI, управляющего конструкторского блока или slTuner Интерфейс (Simulink Control Design) (требуется Simulink ® Control Design™), например ,sysКому genss форма с использованием:

    gensys = genss(sys)

    Когда sys является slTuner интерфейс, gensys содержит все настраиваемые блоки и точки анализа, указанные в этом интерфейсе. Для вычисления настраиваемой модели конкретной функции передачи ввода-вывода вызовите getIOTransfer(gensys,in,out). Здесь, in и out являются точками анализа, представляющими интерес. (Использование getPoints(sys) чтобы получить полный список точек анализа.) Аналогично, чтобы вычислить настраиваемую модель конкретной функции передачи с разомкнутым контуром, используйте getLoopTransfer(gensys,loc). Здесь, loc представляет интерес для анализа.

Свойства

Blocks

Структура, содержащая блоки проектирования управления, включенные в обобщенную модель LTI или обобщенную матрицу. Имена полей Blocks являются Name свойство каждого блока проекта управления.

Некоторые атрибуты этих управляющих блоков конструкции можно изменить с помощью точечной нотации. Например, если обобщенная модель LTI или обобщенная матрица M содержит realp настраиваемый параметр a, можно изменить текущее значение a использование:

M.Blocks.a.Value = -1;

A,B,C,D

Зависимость матриц состояния-пространства от перестраиваемых и неопределенных параметров, хранящихся в виде обобщенной матрицы (genmat), неопределенная матрица (umat) или двойной массив.

Эти свойства моделируют зависимость матриц состояния-пространства от блоков проектирования статического управления, realp, ureal, ucomplex, или ucomplexm. Блоки динамического управления, такие как tunableGain или tunableSS устанавливают на их текущие значения, а внутренние задержки устанавливают на ноль.

Если соответствующая матрица состояния-пространства не зависит от каких-либо блоков конструкции статического управления, эти свойства вычисляются как двойные матрицы.

Пример см. в разделе Зависимость матриц State-Space от параметров.

E

E матрица, хранящаяся как двойная матрица, когда обобщенные уравнения состояния-пространства неявны. Стоимость E = [] означает, что обобщенные уравнения состояния-пространства являются явными. Дополнительные сведения о неявных моделях пространства состояний см. в разделе Модели пространства состояний.

StateName

Имена состояний, хранящиеся как одно из следующих:

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

  • Клеточный массив символьных векторов - для моделей с двумя или более состояниями, например, {'position';'velocity'}.

  • '' - Для неназванных состояний.

Можно назначить имена состояний genss модель только в том случае, если все ее блоки управления являются статическими. В противном случае укажите имена состояний для моделей компонентов, прежде чем соединять их для создания genss модель. Когда вы это делаете, genss модель отслеживает назначенные имена состояний. Пример см. в разделе Отслеживание имен состояний в обобщенной модели состояния-пространства.

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

StateUnit

Метки единиц состояния, хранящиеся как одно из следующих:

  • Символьный вектор - для моделей первого порядка, например, 'm/s'.

  • Клеточный массив символьных векторов - для моделей с двумя или более состояниями, например, {'m';'m/s'}.

  • '' - Для неназванных состояний.

StateUnit маркирует блоки каждого состояния для удобства и не влияет на поведение системы.

Можно назначить единицы состояния genss модель только в том случае, если все ее блоки управления являются статическими. В противном случае укажите единицы состояния для моделей компонентов, прежде чем соединять их для создания genss модель. Когда вы это делаете, genss модель отслеживает назначенные единицы состояния. Пример см. в разделе Отслеживание имен состояний в обобщенной модели состояния-пространства.

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

InternalDelay

Вектор, хранящий внутренние задержки.

Внутренние задержки возникают, например, при замыкании петель обратной связи на системах с задержками или при соединении систем с задержками последовательно или параллельно. Дополнительные сведения о внутренних задержках см. в разделе Закрытие циклов обратной связи с временными задержками.

Для моделей непрерывного времени внутренние задержки выражаются в единицах времени, указанных TimeUnit свойство модели. Для моделей дискретного времени внутренние задержки выражаются как целые кратные времени выборки Ts. Например, InternalDelay = 3 означает задержку в три периода выборки.

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

InputDelay

Входная задержка для каждого входного канала, заданная как скалярное значение или числовой вектор. Для систем непрерывного времени укажите задержки ввода в единице времени, сохраненной в TimeUnit собственность. Для дискретно-временных систем укажите входные задержки в целых кратных времени выборки Ts. Например, InputDelay = 3 означает задержку в три раза.

Для системы с Nu входы, комплект InputDelay в Nuвектор -by-1. Каждая запись этого вектора является числовым значением, которое представляет входную задержку для соответствующего входного канала.

Также можно задать InputDelay к скалярному значению, чтобы применить одинаковую задержку ко всем каналам.

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

OutputDelay

Задержки на выходе. OutputDelay - числовой вектор, задающий временную задержку для каждого выходного канала. Для систем непрерывного времени укажите задержки на выходе в единице времени, сохраненной в TimeUnit собственность. Для систем дискретного времени укажите задержки на выходе в целых кратных времени выборки Ts. Например, OutputDelay = 3 означает задержку в три периода выборки.

Для системы с Ny выходы, комплект OutputDelay в Ny-на-1 вектор, где каждая запись является числовым значением, представляющим задержку на выходе для соответствующего выходного канала. Также можно задать OutputDelay к скалярному значению, чтобы применить одинаковую задержку ко всем каналам.

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

Ts

Время выборки. Для моделей непрерывного времени Ts = 0. Для дискретно-временных моделей Ts - положительный скаляр, представляющий период выборки. Это значение выражается в единицах, указанных TimeUnit свойство модели. Для обозначения дискретно-временной модели с неопределенным временем выборки установите Ts = -1.

Изменение этого свойства не дискретизирует и не выполняет повторную выборку модели.

По умолчанию: 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 ®.

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

SamplingGrid

Сетка выборки для массивов модели, заданная как структура данных.

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

Задайте имена полей структуры данных для имен переменных выборки. Задайте значения полей для значений выборочных переменных, связанных с каждой моделью в массиве. Все переменные выборки должны быть числовыми и скалярными значениями, а все массивы значений выборки должны соответствовать размерам массива модели.

Например, предположим, что создается массив линейных моделей 11 на 1, sysarr, делая снимки линейной изменяющейся во времени системы в моменты времени t = 0:10. В следующем коде хранятся выборки времени с линейными моделями.

 sysarr.SamplingGrid = struct('time',0:10)

Аналогично, предположим, что создается массив модели 6 на 9, M, путем независимой выборки двух переменных, zeta и w. Следующий код присоединяет (zeta,w) значения для M.

[zeta,w] = ndgrid(<6 values of zeta>,<9 values of w>)
M.SamplingGrid = struct('zeta',zeta,'w',w)

При отображении M, каждая запись в массиве включает в себя соответствующую zeta и w значения.

M
M(:,:,1,1) [zeta=0.3, w=5] =
 
        25
  --------------
  s^2 + 3 s + 25
 

M(:,:,2,1) [zeta=0.35, w=5] =
 
         25
  ----------------
  s^2 + 3.5 s + 25
 
...

Для массивов моделей, созданных путем линеаризации модели Simulink в нескольких значениях параметров или рабочих точках, программа заполняет SamplingGrid автоматически со значениями переменных, которые соответствуют каждой записи в массиве. Например, команды Simulink Control Design linearize (Simulink Control Design) и slLinearizer (Simulink Control Design) заполнить SamplingGrid таким образом.

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

Примеры

свернуть все

В этом примере создается фильтр нижних частот с одним настраиваемым параметром a:

F = как + a

Так как числитель и знаменатель коэффициентов tunableTF блоки независимы, использовать нельзя tunableTF представлять F. Вместо этого постройте F использование настраиваемого объекта вещественных параметров realp.

Создание реального настраиваемого параметра с начальным значением 10.

a = realp('a',10)
a = 
       Name: 'a'
      Value: 10
    Minimum: -Inf
    Maximum: Inf
       Free: 1

Real scalar parameter.

Использовать tf для создания настраиваемого фильтра нижних частот F.

numerator = a;
denominator = [1,a];
F = tf(numerator,denominator)
F =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 1 states, and the following blocks:
    a: Scalar parameter, 2 occurrences.

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

F является genss объект, имеющий настраиваемый параметр a в своем Blocks собственность. Вы можете подключиться F с другими настраиваемыми или числовыми моделями для создания более сложных моделей системы управления. Пример см. в разделе Система управления с перестраиваемыми компонентами.

В этом примере показано, как создать область состояния genss модель, имеющая как фиксированные, так и настраиваемые параметры.

A = [1a + b0ab], B = [-3.01.5], C = [0,30], D = 0,

где a и b - перестраиваемые параметры, начальными значениями которых являются -1 и 3соответственно.

Создание настраиваемых параметров с помощью realp.

a = realp('a',-1);
b = realp('b',3);

Определение обобщенной матрицы с помощью алгебраических выражений a и b.

A = [1 a+b;0 a*b];

A является обобщенной матрицей, Blocks свойство содержит a и b. Начальное значение A является [1 2;0 -3], от начальных значений a и b.

Создайте матрицы состояния-пространства с фиксированным значением.

B = [-3.0;1.5];
C = [0.3 0];
D = 0;

Использовать ss для создания модели состояния-пространства.

sys = ss(A,B,C,D)
sys =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 2 states, and the following blocks:
    a: Scalar parameter, 2 occurrences.
    b: Scalar parameter, 2 occurrences.

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

sys является обобщенной моделью LTI (genss) с настраиваемыми параметрами a и b.

В этом примере показано, как создать настраиваемую модель системы управления, которая имеет как фиксированную динамику установки и датчика, так и настраиваемые компоненты управления.

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

Предположим, что реакция установки равна G (s) = 1/( s + 1) 2 и что модель динамики датчика равна S (s) = 5/( s + 4). Контроллер C является настраиваемым PID-контроллером, а предварительный фильтр F = a/( s + a) является фильтром нижних частот с одним настраиваемым параметром a.

Создание моделей, представляющих динамику завода и датчика. Поскольку динамика установки и датчика фиксирована, представляйте их с помощью цифровых моделей LTI.

G = zpk([],[-1,-1],1);
S = tf(5,[1 4]);

Чтобы смоделировать перестраиваемые компоненты, используйте «Управляющие блоки проектирования». Создайте настраиваемое представление контроллера C.

C = tunablePID('C','PID');

C является tunablePID объект, представляющий собой блок управления проектом с предопределенной структурой пропорциональной интегральной производной (PID).

Создайте модель фильтра F = a/( s + a) с одним настраиваемым параметром.

a = realp('a',10); 
F = tf(a,[1 a]);

a является realp (реальный настраиваемый параметр) объект с начальным значением 10. Используя a как коэффициент в tf создает настраиваемый genss объект модели F.

Соедините модели, чтобы построить модель полного отклика с замкнутым контуром от r до y.

T = feedback(G*C,S)*F
T =

  Generalized continuous-time state-space model with 1 outputs, 1 inputs, 5 states, and the following blocks:
    C: Tunable PID controller, 1 occurrences.
    a: Scalar parameter, 2 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 объект модели. В отличие от агрегированной модели, сформированной путем соединения только числовых моделей LTI, T отслеживает перестраиваемые элементы системы управления. Перестраиваемые элементы хранятся в Blocks имущества genss объект модели. Осмотрите перестраиваемые элементы T.

T.Blocks
ans = struct with fields:
    C: [1x1 tunablePID]
    a: [1x1 realp]

При создании genss модель системы управления, которая имеет настраиваемые компоненты, можно использовать команды настройки, такие как systune для настройки свободных параметров в соответствии с заданными требованиями проекта.

Создать genss модель с помеченными именами состояний. Для этого перед подключением следует маркировать состояния моделей LTI компонентов. Например, соединить модель установки с фиксированным коэффициентом с двумя состояниями и настраиваемый контроллер с одним состоянием.

A = [-1 -1; 1 0];
B = [1; 0];
C = [0 1];
D = 0;
G = ss(A,B,C,D);
G.StateName = {'Pstate1','Pstate2'};

C = tunableSS('C',1,1,1);

L = G*C;

genss модель L сохраняет имена состояний компонентов, которые его создали. Поскольку настраиваемому компоненту не назначены имена состояний C, программное обеспечение делает это автоматически. Проверьте имена состояний L чтобы подтвердить их.

L.StateName
ans = 3x1 cell
    {'Pstate1'}
    {'Pstate2'}
    {'C.x1'   }

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

Имена состояний также сохраняются при преобразовании genss модель к модели с фиксированным коэффициентом состояние-пространство. Чтобы подтвердить, преобразуйте L кому ss форма.

Lfixed = ss(L);
Lfixed.StateName
ans = 3x1 cell
    {'Pstate1'}
    {'Pstate2'}
    {'C.x1'   }

Метки единиц состояния, хранящиеся в StateUnit имущества genss модель, вести себя аналогично.

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

G = tf(1,[1 10]);
k = realp('k',1);
F = tf(k,[1 k]);
L1 = G*F;
L1.A
ans =

  Generalized matrix with 2 rows, 2 columns, and the following blocks:
    k: Scalar parameter, 2 occurrences.

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

A свойство - обобщенная матрица, сохраняющая зависимость от реального настраиваемого параметра k. Свойства матрицы state-space A, B, C, и D сохраняют только зависимости от статических параметров. Когда genss модель имеет динамические блоки проектирования управления, для которых установлено их текущее значение для оценки свойств матрицы «состояние-пространство». Например, проверьте A свойство matrix genss модель с настраиваемым блоком PI.

C = tunablePID('C','PI');
L2 = G*C;
L2.A
ans = 2×2

  -10.0000    0.0010
         0         0

Здесь, A матрица хранится как двойная матрица, значением которой является A матрица текущего значения L2.

L2cur = ss(L2);
L2cur.A
ans = 2×2

  -10.0000    0.0010
         0         0

Кроме того, извлечение матриц состояния-пространства с использованием ssdata устанавливает для всех блоков проекта управления текущие или номинальные значения, включая статические блоки. Таким образом, все следующие операции возвращают текущее значение A матрица L1.

[A,B,C,D] = ssdata(L1);
A
A = 2×2

   -10     1
     0    -1

double(L1.A)
ans = 2×2

   -10     1
     0    -1

L1cur = ss(L1);
L1cur.A
ans = 2×2

   -10     1
     0    -1

Совет

  • Вы можете управлять genss модели как обычные ss модели. Команды анализа, такие как bode и step вычислить модель, заменив каждый настраиваемый параметр его текущим значением.

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