Этот пример показывает, как создать обобщенное пространство состояний (genss) модель системы управления, которая имеет как настраиваемые, так и неопределенные параметры. Можно использовать systune настроить настраиваемые параметры такой модели для достижения эффективности, устойчивой к неопределенности в системе.
В данном примере объект представляет собой систему масса-пружина-демпфер. Входом является приложенная сила F, и выходом является x, положение массы.

В этой системе масса m, константа демпфирования c и коэффициента упругости k все имеют некоторую неопределенность. Используйте неопределенные ureal параметры для представления этих величин с точки зрения их номинального или наиболее вероятного значения и области значений неопределенности вокруг этого значения.
um = ureal('m',3,'Percentage',40); uc = ureal('c',1,'Percentage',20); uk = ureal('k',2,'Percentage',30);
Передаточная функция системы масса-пружина-демпфер является функцией второго порядка, заданной:
Создайте эту передаточную функцию в MATLAB ® с помощью неопределенных параметров и tf команда. Результатом является неопределенное пространство состояний (uss) модель.
G = tf(1,[um uc uk])
G =
Uncertain continuous-time state-space model with 1 outputs, 1 inputs, 2 states.
The model uncertainty consists of the following blocks:
c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences
Type "G.NominalValue" to see the nominal value, "get(G)" to see all properties, and "G.Uncertainty" to interact with the uncertain elements.
Предположим, что вы хотите управлять этой системой с помощью ПИД-регулятора, и что ваши требования к проекту включают мониторинг реакции на шум на входе объекта. Создайте модель следующей системы управления.

Используйте настраиваемый ПИД-регулятор и вставьте точку анализа, чтобы предоставить доступ к входу нарушения порядка.
C0 = tunablePID('C','PID'); d = AnalysisPoint('d');
Соедините все компоненты, чтобы создать системную модель управления.
T0 = feedback(G*d*C0,1)
T0 =
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 3 states, and the following blocks:
C: Tunable PID controller, 1 occurrences.
c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
d: Analysis point, 1 channels, 1 occurrences.
k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences
Type "ss(T0)" to see the current value, "get(T0)" to see all properties, and "T0.Blocks" to interact with the blocks.
T0.InputName = 'r'; T0.OutputName = 'x';
T0 - обобщенное пространство состояний (genss) модель, которая имеет как настраиваемые, так и неопределенные блоки. В целом можно использовать feedback и другие команды соединения моделей, такие как connect, чтобы создать модели более сложных настраиваемых и неопределенных систем управления из компонентов LTI с фиксированным значением, неопределенных компонентов и настраиваемых компонентов.
Когда вы строите график откликов системы genss модель, которая является как настраиваемой, так и неопределенной, график отображает несколько откликов, вычисленных случайными значениями неопределенных компонентов. Эта выборка дает общее представление о области значений возможных ответов. Все графики используют текущее значение настраиваемых компонентов.
bodeplot(T0)

Когда вы извлекаете ответы из настраиваемого и неопределенного genss модель, ответы также содержат как настраиваемые, так и неопределенные блоки. Для примера исследуйте передаточную функцию цикла на входе нарушения порядка.
S0 = getLoopTransfer(T0,'d')S0 =
Generalized continuous-time state-space model with 1 outputs, 1 inputs, 3 states, and the following blocks:
C: Tunable PID controller, 1 occurrences.
c: Uncertain real, nominal = 1, variability = [-20,20]%, 1 occurrences
d: Analysis point, 1 channels, 1 occurrences.
k: Uncertain real, nominal = 2, variability = [-30,30]%, 1 occurrences
m: Uncertain real, nominal = 3, variability = [-40,40]%, 1 occurrences
Type "ss(S0)" to see the current value, "get(S0)" to see all properties, and "S0.Blocks" to interact with the blocks.
bodeplot(S0)

Теперь можно создавать цели настройки и использовать systune для настройки коэффициентов ПИД-регулятора T0. Когда вы делаете это, systune автоматически настраивает коэффициенты, чтобы максимизировать эффективность во всей области значений неопределенности.
AnalysisPoint | connect | genss | ureal