genss

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

Описание

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

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

Конструкция

Создать genss модель:

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

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

  • Преобразуйте любую числовую модель LTI, блок системы управления или slTuner интерфейс (требует 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 установите на их текущие значения, и обнуляются внутренние задержки.

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

Для примера смотрите Зависимость Матриц Пространства состояний на Параметрах.

E

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

StateName

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

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

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

  • '' — Для состояний без имени.

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

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

StateUnit

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

  • Вектор символов — Для моделей первого порядка, например, 'm/s'.

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

  • '' — Для состояний без имени.

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

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

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

InternalDelay

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

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

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

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

InputDelay

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

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

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

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

OutputDelay

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

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

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

Ts

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

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

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

Значение по умолчанию: []

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 и slLinearizer заполните SamplingGrid таким образом.

Значение по умолчанию: []

Примеры

свернуть все

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

F=as+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 чтобы создать настраиваемый lowpass фильтруют 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. Подтвердите что A свойство sys хранится как обобщенная матрица.

sys.A
ans =

  Generalized matrix with 2 rows, 2 columns, and the following blocks:
    a: Scalar parameter, 2 occurrences.
    b: 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.

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

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

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

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

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

Чтобы смоделировать настраиваемые компоненты, используйте Блоки Системы управления. Создайте настраиваемое представление диспетчера К.

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: Parametric 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 array
    {'Pstate1'}
    {'Pstate2'}
    {'C.x1'   }

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

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

Lfixed = ss(L);
Lfixed.StateName
ans = 3x1 cell array
    {'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. Матричные свойства A пространства состоянийBC, и D только сохраните зависимости от статических параметров. Когда genss модель имеет динамические блоки системы управления, они установлены в их текущее значение для оценки матричных свойств пространства состояний. Например, исследуйте A матричное свойство 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