Каждый компонент в структуре системы моделируется для представления физического или функционального поведения этого компонента. Основные характеристики компонентов проверяются путем их моделирования с использованием тестовых данных.
При моделировании отдельных компонентов используется общий вид всей структуры системы. Начните с загрузки модели компоновки. В командной строке MATLAB введите:
open_system('system_layout.slx')

Модель компонента Simulink ® основана на нескольких начальных точках:
Явное математическое соотношение между выходом и входом физического компонента - можно вычислить выходы компонента из входов, прямо или косвенно, посредством алгебраических вычислений и интегрирования дифференциальных уравнений. Например, вычисление уровня воды в резервуаре с учетом скорости притока является явным соотношением. Каждый блок Simulink выполняется на основе определения вычислений от его входов до его выходов.
Неявная математическая связь между модельными переменными физического компонента - поскольку переменные взаимозависимы, назначение входов и выходов компоненту не является простым. Например, напряжение на + конец двигателя, подключенного в цепи, и напряжение на - end имеют неявную связь. Чтобы смоделировать такое отношение в Simulink, можно либо использовать инструменты физического моделирования, такие как Simscape™, либо смоделировать эти переменные как часть большего компонента, который позволяет определять ввод/вывод. Иногда более тщательная проверка целей моделирования и определений компонентов помогает определить взаимосвязи между вводом и выводом.
Данные, полученные из фактической системы - измерены входные/выходные данные из фактического компонента, но полностью определенная математическая связь не существует. Многие устройства имеют немодулированные компоненты, соответствующие этому описанию. Например, тепло, рассеиваемое телевизором. Для определения отношения ввода/вывода для такой системы можно использовать Toolbox™ Идентификация системы.
Явное функциональное определение - вы определяете выходные данные функционального компонента из входных данных посредством алгебраических и логических вычислений. Например, логика переключения термостата. Большинство функциональных взаимосвязей можно моделировать как блоки и подсистемы Simulink.
В данном учебном пособии моделируются физические и функциональные компоненты с явными отношениями ввода/вывода. В этом учебном пособии вы:
Используйте системные уравнения для создания модели Simulink.
Добавление и подключение блоков Simulink в редакторе Simulink. Блоки представляют коэффициенты и переменные из уравнений.
Создайте модель для каждого компонента отдельно. Самый эффективный способ построения модели системы - сначала рассматривать компоненты независимо.
Начните с построения простых моделей с помощью аппроксимаций системы. Определите допущения, которые могут повлиять на точность модели. Итеративно добавляйте детали до тех пор, пока уровень сложности не будет соответствовать требованиям моделирования и точности.
описывать взаимосвязи между компонентами, например, данными, энергией и передачей силы. Используйте системные уравнения для построения графической модели системы в Simulink.
Перед началом моделирования компонента необходимо задать несколько вопросов:
Каковы константы для каждого компонента? Какие значения не изменяются, если их не изменить?
Каковы переменные для каждого компонента? Какие значения меняются с течением времени?
Сколько переменных состояния имеет компонент?
Выведите уравнения для каждого компонента, используя научные принципы. Многие системные уравнения делятся на три категории:
Для непрерывных систем дифференциальные уравнения описывают скорость изменения переменных с уравнениями, определенными для всех значений времени. Например, дифференциальное уравнение первого порядка даёт скорость автомобиля:
) + u (t)
Для дискретных систем дифференциальные уравнения описывают скорость изменения переменных, но уравнения определяются только в конкретные моменты времени. Например, управляющий сигнал от дискретного пропорционально-производного контроллера:
Kd + e [n] Kp
Уравнения без производных являются алгебраическими уравнениями. Например, алгебраическое уравнение даёт суммарный ток в параллельной цепи с двумя компонентами:
+ Ib
Колеса и линейное движение. На колесо воздействуют две силы:
Сила, прикладываемая двигателем - сила F действует в направлении изменения скорости и является входом в колесные подсистемы.
Сила перетаскивания - сила Fdrag действует против направления изменения скорости и является функцией скорости.
kdragV 'V |
Ускорение пропорционально сумме этих сил:
м/2)
Где kdrag - коэффициент сопротивления, а m - масса робота. Каждое колесо несет половину этой массы.
Создайте модель колеса:
В system_layout дважды щелкните подсистему «Правое колесо», чтобы отобразить пустую подсистему.
Скорость и ускорение модели. Добавьте блок интегратора. Оставьте исходное условие установленным на 0. Вход этого блока - ускорение Vdot, а выход - скорость V.
![]()
Смоделировать силу перетаскивания. Добавьте функциональный блок MATLAB из библиотеки пользовательских функций. Блок функции MATLAB предоставляет быстрый способ реализации математических выражений в модели. Для редактирования функции дважды щелкните блок, чтобы открыть редактор функций MATLAB.

Определите аргументы для функционального блока MATLAB. В редакторе функциональных блоков MATLAB нажмите кнопку Edit Data
. Нажмите кнопку «k_drag»,
задайте для параметра «Область» значение «Параметр» и нажмите кнопку «Применить».
Вычитание силы перетаскивания из силы привода с помощью блока Вычитание (Subtract). Заполните уравнение сила-ускорение блоком усиления с параметром 1/(m/2).
Чтобы изменить направление функционального блока MATLAB на противоположное, щелкните блок правой кнопкой мыши и выберите «Повернуть и развернуть» > «Развернуть блок». Подключите блоки.

Динамика двух колес одинаковая. Создайте копию только что смоделированной подсистемы правого колеса и вставьте ее в подсистему левого колеса.
Просмотр верхнего уровня модели. Нажмите кнопку «Перейти вверх к родительскому элементу».![]()
Вращательное движение. Когда два колеса поворачиваются в противоположных направлениях, они движутся по окружности радиуса r, вызывая вращательное движение робота. Когда колеса поворачиваются в одном направлении, вращения нет. Предполагая, что скорости колес всегда равны по величине, целесообразно моделировать вращательное движение в зависимости от разности двух скоростей колес VR и VL:
Создайте модель динамики вращения:
На верхнем уровне system_layout дважды щелкните подсистему вращения, чтобы отобразить пустую подсистему. Удалите соединение между блоками Inport и Outport.
Моделирование угловой скорости и угла. Добавьте блок интегратора. Оставьте исходное условие установленным на 0. Выходом этого блока является угол тета, а входом - угловая скорость theta_dot.
Вычислять угловую скорость по тангенциальной скорости. Добавление коэффициента усиления с параметром 1/(2*r).
Подключите блоки.

Просмотр верхнего уровня модели. Нажмите кнопку «Перейти вверх к родительскому элементу».![]()
Опишите функцию от ввода функции до ее вывода. Это описание может включать алгебраические уравнения и логические конструкции, которые можно использовать для построения графической модели системы в Simulink.
Преобразование координат. Скорость робота в координатах X и Y, VX и VY, связана с линейной скоростью VN и углом тета:
VNsin (
Создайте модель преобразования координат:
На верхнем уровне system_layout дважды щелкните подсистему преобразования координат, чтобы отобразить пустую подсистему.
Моделирование тригонометрических функций. Добавьте блок SinCos из библиотеки математических операций.
Умножение модели. Добавьте два блока изделия из библиотеки математических операций.
Подключите блоки.

Просмотр верхнего уровня модели. Нажмите кнопку «Перейти вверх к родительскому элементу».![]()
Источником значений параметров модели могут быть:
Письменные спецификации, такие как стандартные таблицы свойств или листы технических данных изготовителя
Прямые измерения в существующей системе
Оценки с использованием системных входных/выходных данных
В этой модели используются следующие параметры:
| Параметр | Символ | Стоимость |
|---|---|---|
| Масса | m | 2,5 кг |
| Сопротивление качению | k_drag | 30 Ns2/m |
| Радиус робота | r | 0,15 м |
Simulink использует рабочую область MATLAB ® для оценки параметров. В окне команд MATLAB установите следующие параметры:
m = 2.5; k_drag = 30; r = 0.15;
Проверка компонентов путем ввода входных данных и наблюдения за выходными данными. Даже такая простая проверка может указать на немедленные способы улучшения модели. В этом примере проверяются следующие варианты поведения:
Когда сила прикладывается непрерывно к колесу, скорость увеличивается до тех пор, пока она не достигнет установившейся скорости.
Когда колеса поворачиваются в противоположных направлениях, угол поворота увеличивается с постоянной скоростью.
Создайте и запустите тестовую модель для компонента колеса:
Создайте новую модель. На вкладке Моделирование (Simulation) щелкните Создать (New).
Скопируйте
блок «Правое колесо» в новую модель.
Создайте тестовый ввод. Добавьте блок Step из библиотеки Sources и подключите его к входу блока Right Wheel. Оставьте значение параметра времени шага равным 1.
Добавьте средство просмотра к выводу. Щелкните правой кнопкой мыши выходной порт блока «Правое колесо» и выберите «Создать и подключить средство просмотра» > «Simulink» > «Scope».

Запустите моделирование. На вкладке Моделирование (Simulation) щелкните Выполнить (Run).
![]()

Результат моделирования показывает общее ожидаемое поведение. Движение отсутствует до приложения силы во время шага. При приложении силы скорость начинает увеличиваться, а затем оседает на постоянной, когда приложенная сила и сила сопротивления достигают равновесия. В дополнение к проверке, это моделирование также дает информацию о максимальной скорости колеса для данной силы.
Создайте и запустите тестовую модель для модели вращения:
Создайте новую модель. Щелкните
и скопируйте блок Поворот (Rotation) в новую модель.
Создайте тестовый ввод в новой модели. Добавьте блок Step из библиотеки Sources. Оставьте значение параметра времени шага равным 1. Подключите его к входу блока Rotation. Этот вход представляет разность скоростей колес, когда колеса вращаются в противоположных направлениях.
Добавьте средство просмотра к выводу. Щелкните правой кнопкой мыши выходной порт блока «Поворот» и выберите «Создать и подключить средство просмотра» > «Simulink» > «Scope».

Запустите моделирование. На вкладке Моделирование (Simulation) щелкните Выполнить (Run).
![]()

Это моделирование показывает, что угол постоянно увеличивается, когда колеса вращаются с одинаковой скоростью в противоположных направлениях. Можно внести некоторые улучшения в модель, чтобы упростить интерпретацию выходных данных угла, например:
Выходные данные в радианах можно преобразовать в градусы. Добавление блока усиления с коэффициентом усиления 180/pi.
Можно отображать выходные градусы в циклах 360 градусов. Добавление блока математической функции с функцией mod.
Тригонометрические функции MATLAB принимают входные значения в радианах.
После проверки отдельных компонентов можно выполнить аналогичную проверку для всей модели. В этом примере проверяется следующее поведение:
Когда одна и та же сила прикладывается к обоим колесам в одном направлении, робот перемещается по линии.
Когда одно и то же усилие прикладывается к обоим колесам в противоположных направлениях, робот вращается на месте.
В system_layout дважды щелкните подсистему входов, чтобы отобразить пустую подсистему.
Создайте тестовый ввод, добавив блок Step. Оставьте значение параметра времени шага равным 1. Подключите его к обоим блокам исходящего порта.

На верхнем уровне модели подключите оба выходных сигнала к одному и тому же средству просмотра области:

Запустите модель.

На этом рисунке желтая линия - направление X, а синяя - направление Y. Поскольку угол равен нулю и не изменяется, транспортное средство движется только в направлении X, как и ожидалось.
Дважды щелкните подсистему Inputs и добавьте параметр Gain with -1 между источником и вторым выходом. При этом направление левого колеса меняется на противоположное.

Добавьте область к выходу угла.
Запустите модель.


Первый вид показывает отсутствие движения в плоскости X-Y. На втором виде показано устойчивое вращение.
Эту окончательную модель можно использовать для ответа на многие вопросы о модели путем изменения входных данных. Некоторые примеры:
Что происходит, когда начальный угол не равен нулю?
Сколько времени занимает остановка движения, когда сила падает до нуля?
Что происходит, когда робот тяжелее?
Что происходит, когда робот перемещается по более гладкой поверхности, то есть когда коэффициент сопротивления ниже?