В этом примере показано, как использовать Simulink Control Design из командной строки путем линеаризации системы управления обратной связью Simulink Model. Разомкнутый контур линеаризированная модель водяного резервуара будет извлекаем в рабочей точке, где уровень бака равен H = 10. Следующие 3 шага линеаризируют и анализируют модель бака с водой.
Для получения дополнительной информации о программном указании:
Входная и выходные точки для линеаризации модели, см., Задайте фрагмент модели для линеаризации и Задайте фрагмент модели для линеаризации в командной строке.
Нахождение рабочих точек для линеаризации смотрите Вычисление статических рабочих точек из спецификаций и Вычисление рабочих точек из спецификаций в командной строке.
Откройте модель.
watertank
Точки линеаризации задают входы и выходы линеаризированной модели. Чтобы извлечь разомкнутый контур линеаризированную модель, добавьте точку входа на выходе блока Контроллер и выходную точку с открытием цикла на выходе блока Бака с водой 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 ----------
В этой рабочей точке Н не достигает желаемого значения 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')