Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Моделирование систем

..pdf
Скачиваний:
6
Добавлен:
15.11.2022
Размер:
1.77 Mб
Скачать

5.5.2.4. Средства для анализа моделей

Рассмотрим некоторые цифровые инструментальные средства, которые позволяют проводить анализ модели SIMULINK с помощью выполнения функций моделирования, линеаризации и определения точек равновесия.

Способы использования

Существует три различных способа использования SIMULINK. Способ наиболее удобного диалога – управлять моделированием с помощью меню и наблюдать поведение системы на индикаторе. Этот метод быстро изучить, просто использовать и легко получать результаты. Такой способ работы наиболее полезен при первоначальном создании и отладке системы.

Второй способ – использовать функции моделирования

ианализа при помощи командной строки. Этот метод не имеет такого удобного интерфейса, как первый, но обеспечивает большую гибкость. Получение результатов моделирования в рабочем пространстве MATLAB позволяет в дальнейшем анализировать и наглядно представлять данные, используя встроенные графические средства MATLAB.

Самый сложный и универсальный способ использования SIMULINK – непосредственный доступ к S-функции модели. Каждая модель SIMULINK доступна в MATLAB как S-функция, которая описывает динамическое поведение системы. Каждая S-функция имеет такое же имя, как и соответствующая модель. S-функция может вызываться целым рядом способов, чтобы предоставить различную информацию о модели, которую она представляет.

S-функция может обеспечить информацию о числе входных и выходных сигналов, структуре (непрерывной или дискретной) модели, о производных, о выходных сигналах. Все средства анализа, предусмотренные SIMULINK, взаимодействуют с моделями через S-функции. M-файлы linmod

иtrim – это примеры программ, которые используют эти функции.

261

Эти три способа использования не исключают друг друга и не имеют четкой границы (в смысле применения). Различное применение обычно соответствует различным стадиям разработки модели.

Моделирование

Испытание моделей SIMULINK представляет собой численное интегрирование систем нормальных дифференциальных уравнений.

SIMULINK предоставляет несколько алгоритмов численного интегрирования. К сожалению, ни один метод не гарантирует точного и эффективного моделирования всех типов моделей, что обусловлено разнообразным поведением динамических систем.

Важные условия для достижения точных результатов:

1)выбор соответствующего метода;

2)тщательный подбор параметров моделирования.

5.5.2.5. Моделирование с помощью меню

Моделирование можно начать выбором пункта Start из меню Simulation.

В диалоговом окне «Панель управления» находятся поля, в которые можно вводить числа или любые выражения, допустимые для MATLAB, например переменные tstart, tfinal, minstep, maxstep и final, которые могут быть определе-

ны в рабочей области MATLAB.

Возвращаемые переменные [t, x, y] используются для передачи времени, состояния и траекторий выходных сигналов в рабочую область MATLAB. Время начала и окончания моделирования устанавливается в переменных tstart и tfinal.

Параметры интегрирования final, minstep, maxstep управляют относительной локальной ошибкой, минимальным и максимальным размером шага моделирования.

Выполнение моделирования с помощью меню позволяет во время моделирования производить некоторые операции в диалоговом режиме:

262

1) изменять параметры блока, при условии, что это не будет причиной изменения числа состояний, выходных или входных сигналов для этого блока;

2)изменять любые параметры моделирования, за исключением возвращаемых переменных и времени старта;

3)изменять алгоритм моделирования;

4)изменять время стробирования для дискретных систем;

5)моделировать другую систему в то же самое время;

6) щелчком на линии связи вводить всплывающий (не подсоединенный) индикатор, чтобы увидеть сигнал на данной линии.

Добавление или удаление линий связи и блоков во время моделирования вызовет его остановку. Выбор пункта Restart из меню Simulation продолжит моделирование с новыми параметрами.

5.5.2.6. Моделирование с помощью командной строки

Любое моделирование, выполняемое через меню, может быть выполнено и из командной строки. Чтобы сконфигурировать параметры модели, можно использовать команду:

[t, x, y] = linsim(‘model1’,[tstart, tfinal],...

x0, [final, minstep, maxstep]);

где model1 – имя структурной схемы системы.

Начальные условия, которые могут быть установлены в меню моделирования, определены в векторе х0. Эти условия игнорируют начальные условия, установленные в блоках, если только х0 не пустая матрица.

Моделирование из командной строки имеет следующие преимущества перед моделированием из меню:

1)начальные условия в блоках могут быть обойдены;

2)без указания левосторонних аргументов автоматически вычерчиваются графики выходных сигналов;

3)внешние входные сигналы могут быть заданы дополнительной переменной ut;

4)M-файлы и MEX-файлы моделей могут моделироваться так же, как блок схемы моделей SIMULINK;

263

5)моделирование можно выполнять из М-файлов, выдавая параметры в блоки, чтобы изменять их в режиме диалога;

6)для малых моделей моделирование выполняется незначительно быстрее.

Все алгоритмы интегрирования имеют одинаковую синтаксическую структуру вызова, поэтому другой метод моделирования может выбираться простым изменением имени функции:

[t, x, y] = euler (‘system’, tfinal); [t, x, y] = rk23 (‘system’, tfinal); [t, x, y] = rk45 (‘system’, tfinal); [t, x, y] = linsim (‘system’, tfinal); [t, x, y] = adams (‘system’, tfinal); [t, x, y] = gear (‘system’, tfinal);

5.5.2.7. Просмотр траекторий выходных сигналов

Траектории выходных сигналов в SIMULINK можно выводить с помощью любого из трех методов:

1.Моделирование блоками индикации.

2.Моделирование возвращаемыми переменными и командами построения графиков MATLAB.

3.Моделирование блоками To Workspace (В рабочую область) и командами построения графиков MATLAB.

Моделирование блоками индикации

Моделирование может быть начато из командной строки или меню.

Изображение на индикаторе вполне подходящее, но отсутствует изображение масштабов.

Моделирование возвращаемыми переменными

Возвращая временную хронологию в MATLAB, можно использовать команды построения графиков MATLAB для улучшенного графического представления.

264

Траектория выходного сигнала записывается в вектор выходного сигнала y, возвращенного функцией интегрирования. Например, система, именуемая tfout

[t, x, y] = linsim(‘tfout’, 2)

генерирует временную последовательность, которая может быть вычерчена командой

plot(x, y).

Моделирование блоком To Workspace

Блок To Workspace можно использовать, чтобы возвратить траектории выходных сигналов.

Переменные появляются в рабочей области, когда моделирование завершено. Временной вектор сохраняется введением блока Clock (Таймер) в блок To Workspace. Временной вектор можно также получить выделением его из функции интегрирования:

t = linsim (‘tfout’, 2)

Следует отметить, что блок To Workspace может пересылать множество входных сигналов каждой траектории, сохраненной как вектор-столбец.

5.5.2.8. Начальные условия

Начальные условия, которые относятся к системе в tstart, обычно устанавливаются в самих блоках. Начальные условия в блоках могут быть обойдены заданием дополнительного векторного аргумента x0:

[t, x, y] = linsim(‘model’, tfinal, x0)

Когда этот вектор пустая матрица ([ ]) или не указан, используются начальные условия, установленные в блоках, в другом случае используются значения, определенные в векторе x0. (Начальные условия нельзя игнорировать, если объект моделируется при помощи меню.)

265

Начальные условия модели, которые возможно были установлены в блоках, можно выяснить при помощи

[sizes, x0] = model

где model – имя модели. Назначенные состояния доступны вплоть до третьего левостороннего аргумента:

[sizes, x0, xstr] = model

где xstr – строковая переменная, чья i-я строка содержит имя блока и траекторию, связанную с i-м состоянием.

5.5.2.9. Алгебраические циклы

Алгебраические или неявные циклы имеют место, когда два или более блока со сквозной передачей входных сигналов формируют петлю обратной связи. В этом случае SIMULINK должен выполнять проверку при каждом шаге, чтобы определить, имеется ли решение этой задачи. Алгебраические циклы значительно сокращают скорость моделирования и могут быть неразрешимыми, поэтому следует их избегать.

Примерами блоков с прямой передачей сигнала могут служить:

усилительные блоки;

большинство нелинейных блоков (например, ограничитель);

блоки передаточных функций, когда числитель такого же порядка, как знаменатель;

нуль полюсные усилительные блоки, когда имеется так же много нулей, как

иполюсов;

блоки пространствсостояний, когда имеется ненулевая D-матрица.

На рис. 5.33 приведен

Рис. 5.33. Схема моделирования

простой пример системы

САУ

с алгебраическим циклом.

266

SIMULINK сообщает об ошибке, когда не может решить алгебраический цикл в двухстах итерациях методом Ньюто- на–Рафсона.

5.5.2.10. Алгоритмы моделирования

Моделирование заключается, обычно, в интегрировании системы обычных дифференциальных уравнений. SIMULINK предусматривает ряд методов для моделирования таких уравнений:

linsim – метод, который вычисляет линейную динамику;

rk23 – метод Рунге–Кутта третьего порядка;

rk45 – метод Рунге–Кутта пятого порядка;

gear – метод предсказания исправлений Гиара для жестких систем;

adams – метод предсказания исправлений Адамса;

euler – метод Эйлера.

Примечание. Жесткие системы – системы, объединяющие как блоки с быстрой, так и медленной динамикой (в данном руководстве).

Производительность моделирования (скорость и точность) изменяется для различных моделей и состояний. Несколько рекомендаций по выбору метода:

1.Linsim используйте для линейных моделей. Линейные модели составляются из таких блоков, как передаточные функции, блоки пространств состояний, нуль-полюсные усилители, сумматоры, усилители и т.д.

2.Linsim также работает хорошо, если система в основном линейная, но содержит несколько нелинейных блоков. Linsim особенно превосходит другие методы, когда линейные блоки обладают как быстрой, так и медленной динамикой (т.е. жесткие системы).

3.Методы Рунге–Кутта обычно превосходят другие ме-

тоды, когда система высоконелинейная и/или дискретная. Эти методы работают плохо, когда система обладает как быстрой, так и медленной динамикой. В этом случае используйте жесткие методы решения, такие как linsim или gear. Мето-

267

ды rk23 и rk45 хорошо работают для смешанных (непрерывных и дискретных) систем.

4.Используйте метод gear, когда система гладкая и нелинейная. Этот метод разработан для жестких систем, для нежестких систем метод менее эффективен, чем другие. Метод может плохо работать, когда в системе имеются особые точки или на систему действует быстро изменяющийся входной сигнал.

5.Используйте метод adams для гладких и нелинейных систем, которые не имеют изменяющихся в широком диапазоне постоянных времени.

6.Используйте метод euler только для подтверждения результатов моделирования.

5.5.2.11. Управление величиной шага

Вектор параметров интегрирования [ tol, minstep, maxstep, ] в команде

[t, x, y] = linsim (‘model’, tfinal, x0, [tol, minstep, maxstep])

указывает допуск, минимальный и максимальный размер шага. Параметр tol управляет относительной ошибкой интегрирования на каждом шаге. Обычно этот параметр устанавливается в пределах от 0,1 до 10–6. При уменьшении значения настройки этого параметра метод интегрирования требует большего числа шагов, что в результате дает большую точность интегрирования. Однако, когда устанавливается очень малое значение допуска, например 10–10, возможно задание такого малого шага, что округленная ошибка значительно вырастет.

Скалярные величины minstep и maxstep управляют минимальным и максимальным размером шага интегрирования

имогут использоваться, чтобы обойти размер шага, который

впротивном случае используется для управления ошибкой.

268

Минимальный размер шага

Минимальная величина шага – это такая величина, которая используется в начале моделирования. Интегрирующие функции не уменьшают шаг ниже минимального размера шага при генерировании точек выходного сигнала, если система не содержит дискретные блоки с образцовыми квантами времени меньшими, чем минимальный размер шага.

Обычно величина шага устанавливается в наименьшее значение (например, minstep = 10–6), однако, когда имеется разрывы в системе, настройка минимального размера шага около нуля может вызвать огромное число сгенерированных точек. Это может потребовать чрезмерного потребления ресурсов компьютера, а именно памяти и время работы процессора.

Для методов adams и gear минимальный размер шага не влияет на точность решения, но воздействует на число генерируемых точек выходного сигнала. Для этих методов лучше всего установить минимальный размер шага максимально возможным, тогда выходные точки удобно расположатся для вычерчивания графика и анализа.

Максимальный размер шага

В некоторых случаях SIMULINK представляет хотя и точные результаты, но не пригодные для вычерчивания равномерного графика. В таком случае может быть необходимо ограничить размер максимального шага так, чтобы получить гладкий график. Например, часто необходимо ограничить величину шага в linsim, когда система линейная и входные сигналы кусочно-линейные, так как этот метод может принимать произвольно большие шаги без потери точности. Функция rk45 также может принимать большие шаги, которые ухудшают качество вычерчивания графика.

Методы с фиксированным шагом

Хотя euler, linsim, rk23 и rk45 – методы с переменным шагом, но их можно преобразовать к методам с фиксированным шагом установкой максимально возможного значения минимального размера шага.

269

Методы adams и gear могут принимать неопределенное количество точек между выходными сигналами, следовательно, не могут быть преобразованными к методам с фиксированным шагом. Максимальный и минимальный размеры шага для adams и gear устанавливаются так, чтобы управлять выводом точек для вычерчивания результирующего графика. На точность этих методов минимальная и максимальная величины шага не влияют.

Эффективный размер шага

Методы интегрирования обращаются к модели для взятия производной на каждом шаге. Вычисляется состояние производных и выходного сигнала в каждой точке времени. Главный шаг состоит из некоторого числа обращений к модели для взятия производных, которые используются для генерирования точек выходного сигнала. Только методы linsim и euler требуют одного вызова для взятия производной на точку выходного сигнала. Для других методов интегрирования могут быть взяты шаги меньшие, чем минимальный размер, поскольку шаг интегрирования разбивается. Для rk45 для каждой выводимой точки берется шесть шагов с коэффи-

циентами [0, 1/2, 1/4, 3/8, 12/13, 1]. Для rk23 берутся три шага с коэффициентами [0, 1/2, 1]. Функции adams и gear, использующие методы прогнозирования коррекции, принимают различное количество шагов между выводимыми точками.

Следует отметить, что процедура интегрирования часто возвращается обратно во времени, когда обнаруживается, что допустимые параметры превосходят оценку локальной ошибки. Наиболее часто это случается, когда в системе имеются разрывы.

5.5.2.12.Системы дискретного времени

ВSIMULINK существует возможность моделирования дискретных систем. Модели могут быть многоуровневыми. Модели могут составляться или исключительно из дискретных блоков или могут быть гибридными, т.е. содержащими дискретные и непрерывные блоки вместе.

270