- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
7.4. Модель с ветвлением соединений
За основу принимаем предыдущую структурную схему (см. разд. 7.3). Перетаскиваем в рабочее окно дополнительные блоки (рис. 7.5): мультиплексор (Mux) из библиотеки Connections и усилитель (Gain) из библиотеки Linear.
1. Создаем два входных порта для мультиплексора (рис. 36), щелкнув предварительно по его пиктограмме, и фиксируем эту настройку (Apply-Close) (рис. 7.6).
Рис. 7.5
Рис. 7.6
Рис. 7.7
2. Соединяем генератор с мультиплексором, а последний – с осциллографом (рис. 7.7):
3. Создаем параллельную ветвь. Для этого нажимаем клавишу Ctrl, подводим указатель мыши к линии генератор-мультиплексор, нажимаем левую клавишу мыши и подводим к входу усилителя (то же самое – с помощью правой клавиши мыши, без нажатия на Shift), а затем соединяем усилитель и мультиплексор (рис. 7.8).
4. Производим настройку параметров модели: устанавливаем уровень сигнала генератора равным 2, частоту – 1 рад/с; коэффициент усиления – 2. Запускаем процесс моделирования. Благодаря мультиплексору на осциллограф можно подать два сигнала, одинаковых по форме и отличающихся по уровню в 2 раза (рис. 7.9).
5. Результат моделирования можно сохранить в рабочем пространстве в виде матрицы. Для этого присоединяем к выходу мультиплексора еще один блок из библиотеки Sinks – To Workspace и присваиваем ему новое имя, например, Test (рис. 7.10). Запустив процесс моделирования, создаем матрицу Test. Соответствующие графики можно построить в среде MATLAB, набрав команду » plot(Test), grid.
Рис. 7.8
Рис. 7.9
Рис. 7.10
7. 5. Интегрирование дифференциального уравнения
В разделе 5.4.3 было показано, как ОДУ могут быть проинтегрированы с помощью одного из вариантов решателя (Solver). Теперь покажем, как эта же задача решается в среде Simulink. В качестве примера вновь используем ДУ Ван-дер-Поля . Введя обозначения , исходное уравнение можно представить как систему из ДУ первого порядка , т.е.
В структуру S-модели включен ряд новых блоков (рис. 7.11):
Fcn – формирование функции – алгоритма преобразования входного сигнала (библиотека Nonlinear);
Product – формирование выходного сигнала как произведения входных (библиотека Nonlinear), в данном случае – ;
Sum – суммирование входных сигналов с учетом знаков (библиотека Linear);
Integrator – интегрирующее звено (библиотека Linear); начальное значение для первого из них , для второго ;
XY Graph – графопостроитель (библиотека Sinks) – в данной модели он использован для построения графика фазовой характеристики, т.е. зависимости – она выводится в графическое окно MATLAB.
Рис. 7.11
Запускаем процесс моделирования. На рис. 7.12 показан график матрицы Du и на рис. 7.13 – фазовая характеристика.
Рис. 7.12
Рис. 7.13
Рекомендуется сравнить результаты решения уравнения Ван-дер-Поля , полученные при моделировании в среде Simulink и средствами программирования MATLAB (см. разд. 5).
Упражнение. Составить модель для решения дифференциального уравнения , где f(t) – а) гармонический сигнал; б) последовательность прямоугольных импульсов. Начальное условие: . Предусмотреть вывод результатов на осциллограф и в рабочее пространство.