Этот пример показывает, как создать обобщенное пространство состояний (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