Использование возвращаемых переменных. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Использование возвращаемых переменных.



 

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

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

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

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

Plot(x, y).

 

Использование блока To Workspace.

 

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

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

t = linsim (‘tfout’, 2);

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

 

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

 

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

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

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

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

[sizes, x0] = model,

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

[sizes, x0, xstr] = model

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

 

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

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

Примеры блоков с прямой передачей сигнала следующие:

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

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

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

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

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

На следующем рисунке простой пример системы с алгебраическим циклом:

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

 

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

 

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

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

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

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

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

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

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

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

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

Linsim

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

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

Rk45, rk23

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

Gear

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

Adams

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

Euler

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


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

 

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

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

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

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

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

 

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

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

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

 

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

 

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 139; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.131.168 (0.008 с.)