В этом примере показано, как использовать Simulink Control Design из командной строки путем линеаризации watertank системы управления с обратной связью Модели Simulink. Линеаризовавшая модель разомкнутого контура 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')