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