Этот пример показывает, как использовать Simulink Control Design из командной строки. Функции MATLAB, доступные в программном обеспечении Simulink Control Design, допускают программируемую спецификацию точек ввода и вывода для линеаризации модели. Кроме того, существуют функции MATLAB, чтобы извлечь и задать (обрезка) рабочие точки для линеаризации. Этот пример вводит некоторые из этих команд путем линеаризации системы управления с обратной связью бака для воды. Линеаризовавшая модель разомкнутого цикла watertank будет извлечена в рабочей точке, где уровень корпуса в H = 10. Выполняющий 3 шагов линеаризует и анализирует модель бака для воды.
Откройте модель.
watertank
Точки линеаризации задают вводы и выводы линеаризовавшей модели. Чтобы извлечь разомкнутый цикл линеаризовавшая модель, добавьте точку ввода при выводе блока Controller и выходной точки, с открытием цикла, при выводе блока Water-Tank System.
Задайте точку ввода.
watertank_io(1)=linio('watertank/PID Controller',1,'input');
Задайте выходную точку с открытием цикла.
watertank_io(2)=linio('watertank/Water-Tank System',1,'openoutput');
Точки линеаризации могут затем быть установлены и просмотрены в модели.
setlinio('watertank',watertank_io);
watertank
Этот следующий шаг включает нахождение рабочей точки модели Simulink 'watertank' так, чтобы уровень корпуса был в H = 10. Один подход должен моделировать модель, затем извлекают рабочую точку, когда симуляция около требуемого значения. Команда FINDOP моделирует модель и извлечет рабочие точки, время от времени задаваемые в вызове функции.
opsim = findop('watertank',10)
Operating point for the Model watertank. (Time-Varying Components Evaluated at time t=10) States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator x: 1.69 (2.) watertank/Water-Tank System/H x: 10.1 Inputs: None ----------
В этой рабочей точке H не в требуемом значении 10. Однако можно использовать эту рабочую точку, чтобы инициализировать поиск желаемой рабочей точки где H = 10. Объект спецификации рабочей точки позволяет вам задавать требуемое значение H = 10.
Создайте объект спецификации рабочей точки.
opspec = operspec('watertank');
Инициализируйте значения состояний спецификации рабочей точки с теми в рабочей точке opsim.
opspec = initopspec(opspec,opsim);
Заданная рабочая точка может затем искаться (обрезанное) использование команды FINDOP.
opss = findop('watertank',opspec);
Operating point search report: --------------------------------- Operating point search report for the Model watertank. (Time-Varying Components Evaluated at time t=10) Operating point specifications were successfully met. States: ---------- (1.) watertank/PID Controller/Integrator/Continuous/Integrator x: 1.26 dx: 0 (0) (2.) watertank/Water-Tank System/H x: 10 dx: -1.1e-14 (0) Inputs: None ---------- Outputs: None ----------
Вы теперь готовы линеаризовать модель объекта управления при помощи функции LINEARIZE.
sys = linearize('watertank',opss,watertank_io);
Получившаяся модель является объектом пространства состояний, что можно анализировать использование любого из инструментов в программном обеспечении Control System Toolbox.
bode(sys);
Закройте модель Simulink.
bdclose('watertank')