Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
 
МОДЕЛИРОВАНИЕ СИСТЕМЫ УПРАВЛЕНИЯ КРЕСЛОМ ВОДИТЕЛЯ АВТОМОБИЛЯ В СРЕДЕ MODEL VISION STUDIUM
выполнили: студент гр. 4087 (4-ый курс) Сергеева Ксения и студент гр. 5087 (5-ый курс) Толстинский Сергей
Санкт-Петербургский Государственный Технический Университет
Кафедра распределенных вычислений и компьютерных сетей
Санкт-Петербург
2001

Вернуться на страницу <Model Vision Studium>

Содержание

    Предыстория
1. Постановка задачи
1.1. Панель управления
1.2. Требования к модулю управления
1.2.1. Описание аппаратного обеспечения
1.2.2. Управление положением кресла
1.2.3. Направление вращения моторов
1.2.4. Калибровка
1.2.5. Запоминание текущего положения
1.2.6. Регистрация позиции
1.2.7. Защитные функции
1.2.8. Функция, облегчающая вход и выход из автомобиля
1.2.9. Предварительная настройка подголовника
1.2.10. Функция нагрева кресла
2. Структура
2.1. Общая структура задачи
2.2. Описание классов
2.2.1. MoveButtons
2.2.2. MoveSignal
2.2.3. Voltage
2.2.4. MoveGroup1
2.2.5. MoveGroup2
2.2.6. Memory
2.2.7. Door
2.2.8. C15_Signal
2.2.9. Courtesy
2.2.10. Heating
2.2.11. Seat
3. Выводы

 

Предыстория

Данное задание было предложено компанией DaimlerChrysler. Был организован конкурс на лучшую работу. Подробности можно посмотреть на http://www.automotive-uml.com/mc/index.html.

1.  Постановка задачи

1.1.  Панель управления

Рис. 1. Внешний вид панели управления в среде моделирования

На Рис. 1 показан вид панели управления креслом, запоминающим устройством и обогревателем. Управление положением кресла и его фиксация в памяти, как и управление обогревателем, осуществляется с помощью соответствующих кнопок. На панель управления так же помещены органы управления скоростью и напряжением бортовой сети автомобиля. Два линейных движка имитируют процесс поворота и фиксации ключа зажигания и открытия и закрытия дверей.

Рис. 2. Схема кресла и возможные варианты регулировок

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

Каждая пара кнопок управляет одним из моторов. Названия и символическое обозначение моторов приведены в Таблица 1.

При помощи кнопок Memory, Memory1, Memory2 можно сохранить текущую и восстановить сохраненную позицию кресла. Можно запоминать два положения кресла.

Кнопки stage1 и stage2 управляют нагревом сидения.

1.2.  Требования к модулю управления

1.2.1.     Описание аппаратного обеспечения

Сидение оборудовано моторами и датчиками, указанными в Таблица 1.

Таблица 1

Моторы Датчики Число тиков
Привод задней кромки подушки (RH) Датчик Холла RH 500
Привод подушки (SD) Датчик Холла SD 840
Привод основания сидения (LA) Датчик Холла LA 1270
Привод передней кромки подушки (FH) Датчик Холла FH 500
Привод спинки (B) Датчик Холла B 2340
Привод подголовника (HR) Датчик Холла HR 360

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

Ключ зажигания может находиться в позициях, указанных в Таблица 2.

Таблица 2

Позиция Действие
KL 15 – off Ключ не вставлен
KL 15 – C Ключ вставлен
KL 15 – R Радио работает
KL 15 Зажигание включено
KL 15x Двигатель в действии

С каждым мотором связан датчик положения той или иной части сиденья. Положение кресла пропорционально количеству условных временных единиц (тиков), необходимых для достижения данного положения. Количество тиков, необходимых для движения каждой части кресла от своего начального до конечного положения указано в Таблица 1.

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

1.2.2.     Управление положением кресла

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

Таблица 3

Группа 1 Группа 2 Приоритет
LA B Высокий
RH FH Средний
SD HR Низкий

Таблица 3 показывает разделение моторов на группы и их приоритеты. Она также определяет последовательность, в которой моторы могут быть активированы. Если все три кнопки для группы, например, второй нажаты, мотор с самым высоким приоритетом – в данном случае, привод спинки – будет активирован первым. Когда кнопка настройки положения спинки будет отпущена, начнется настройка высоты передней кромки кресла.

Если две кнопки, например, кнопка настройки положения подголовника и кнопка настройки передней кромки подушки кресла нажаты одновременно, то настройка положения подголовника не начинается до тех пор, пока не завершится настройка положения высоты передней кромки сиденья.

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

1.2.3.     Направление вращения моторов

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

1.2.4.     Калибровка

При первоначальной подаче напряжения кресло начинает автоматически двигаться в положение, которое называется начальным. Движение к заданному положению продолжается до тех пор, пока от датчика поступают сигналы – "тики". С прекращением "тиков" движение прекращается, но напряжение с мотора при этом не снимается. Когда начальное положение достигнуто, моторы остаются активированными еще 250 мс, чтобы управляющий модуль мог идентифицировать конечную позицию. Начальным положением считается положение, когда:

  • основание сидения находится в крайнем переднем положении
  • передняя кромки кресла находится в крайнем верхнем положении
  • задняя кромка кресла находится в крайнем верхнем положении
  • подушка кресла находится в крайнем переднем положении
  • спинка находится в крайнем переднем положении
  • подголовник находится в крайнем нижнем положении

Позиция кресла сохраняется в устройстве EEPROM. Если никакая кнопка не нажата в течение 4-х секунд, вычисленная позиция кресла в данный момент времени сохраняется в EEPROM.

1.2.5.     Запоминание текущего положения

Если необходимо сохранить позицию кресла, сначала должна быть нажата кнопка Memory, и затем в течение 2-х секунд одна из кнопок Memory1 или Memory2. Могут быть запомнены две различные позиции кресла.

Эти позиции можно восстановить нажатием соответствующей кнопки. После нажатия кнопки моторы запускаются в порядке уменьшения приоритета в группе. Моторы работают до тех пор, пока нажата кнопка восстановления положения Memory1 или Memory2.

Автоматическая настройка позиции, сохраненной в памяти, прекращается при скорости выше 5 км/ч.

Позиция кресла автоматически фиксируется в памяти всякий раз, когда ключ зажигания из положения 15 переходит в положение 15R, то есть, выключается зажигание.

1.2.6.     Регистрация позиции

Позиция кресла регистрируется датчиками. Датчик периодически генерирует "тик" при движении соответствующей части кресла вдоль своей оси.

1.2.7.     Защитные функции

Если выполняется одна из возможных настроек, часть кресла движется то тех пор, пока одна из граничных позиций не достигнута. Эта конечная позиция опознается через 250 мс после остановки и запоминается как новая граничная позиция. Такие случаи не должны происходить слишком часто, если только работа устройства управления не прерывается аварийно. Для того, чтобы избежать подобных ситуаций, мотор для соответствующего направления настройки выключается (за 5 тиков) до того, как граничная позиция достигнута. Если все же рассмотренная настройка выполнилась 250 раз, в результате отключения напряжения или обнаружения отклонения от минимального расстояния, запомненная граничная позиция сбрасывается и заново калибруется.

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

Если какой-либо мотор активирован, но движение соответствующей части кресла в течение 2.0±0.2 с не наблюдается (нет "тиков" от датчика), процесс настройки прерывается. Повторить попытку настойки можно только через 2.0±0.2 секунды, предварительно отпустив соответствующие кнопки управления мотором.

1.2.8.     Функция, облегчающая вход и выход из автомобиля

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

Функция, облегчающая вход или выход, при входе в автомобиль активируется, когда дверь открыта и ключ зажигания еще не вставлен. Когда ключ зажигания вытащен или когда дверь открыта, а ключ находится в позициях 15R или 15C, функция, облегчающая вход или выход, активируется для того, чтобы облегчить выход. Данная операция выполняется, только в отсутствии следующих событий:

  • ключ зажигания находится в позиции 15
  • выполняется настройка кресла
  • подается слишком высокое напряжение
  • подается слишком низкое напряжение

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

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

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

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

1.2.9.     Предварительная настройка подголовника

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

Так как скорости настройки продольного положения кресла и настройки подголовника не синхронизированы, подголовник поднимается до своего максимального положения за 4 шага, как показано на Рис. 3, пока кресло движется от своего начального до конечного положения в продольном направлении.

Рис. 3. Зависимость между позицией кресла и высотой подголовника при автоматической настройке

Мотор настройки подголовника запускается только в случае изменения продольной позиции кресла на 60 тиков и больше. Калибровка настройки подголовника и настройки продольного положения кресла является условием корректного функционирования.

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

1.2.10.  Функция нагрева кресла

Функция нагрева кресла может быть активирована, если ключ зажигания находится в позициях 15R или 15.

Нагрев кресла имеет два режима и управляется двумя кнопками: кнопкой включения/выключения первого режима и кнопкой включения/выключения второго режима нагрева. Нормальным состоянием считается состояние, когда подогрев кресла не производится. Подогрев сиденья начинается нажатием кнопки первый режим / второй режим (Heating Stage 1 / Heating Stage 2). Если первый/второй режим нагрева уже осуществляется, то его выключение производится нажатием кнопки Heating Stage 1 / Heating Stage 2. Если выбран первый режим нагрева, и его надо переключить на второй, нажимается кнопка Heating Stage 2; если выбран второй режим нагрева, то нажатие кнопки Heating Stage 1 возвращает систему к первому режиму нагрева.

Модуль управления креслом осуществляет временной контроль нагрева кресла. Второй режим работает только в течение 5 минут, после этого система автоматически переключается на первый режим. Если выбран первый режим, то он может работать только в течение 30 минут. После этого нагрев кресла выключается.

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

Таблица 4

  Событие Действия
1 Ключ зажигания сменил позицию 15R на 15С После этого события подогрев сидения прекращается. Однако временной контроль продолжается в течение пяти минут, пока ключ находится в положении 15C. Если в эти пять минут ключ вернуть в положение 15R или в 15, то снова включается тот режим нагрева, который был включен ранее.
2

Напряжение ниже нормы

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

В случаях 2-5, индикатор подогрева остается включенным, хотя нагрев временно выключен.

2.    Структура

Модель системы в соответствии со спецификацией, приведенной в разделе 1 "Постановка задачи", была выполнена в среде пакета для моделирования гибридных систем Model Vision Studium 3.0.

2.1.  Общая структура задачи

На Рис. 4 показана схема взаимодействия объектов различных классов. Далее будет рассмотрен каждый класс в отдельности.

Рис. 4. Испытательный стенд

2.2.  Описание классов

Здесь будут рассмотрены все классы модели в отдельности.

2.2.1.     MoveButtons

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

Структура класса показана на Рис. 5.

Рис. 5. Структура класса MoveButtons

Выходы:BtnsState: signal (Direction: integer); этот сигнал посылается в тот момент, когда нажимается или отпускается какая-либо кнопка управления движением кресла. Вместе с сигналом передается: направление движения кресла (-1 – от стоповой позиции, 0 – остановка, 1 – к стоповой позиции)

Поведение этого класса описывается картой состояний, изображенной на Рис. 6.

Рис.6. Карта поведения класса MoveButtons

Логические переменные plus, minus связаны с кнопками управления соответствующими моторами.

2.2.2.   MoveSignal

Данный класс реализован для того, чтобы обеспечить мнимую одновременность нажатия кнопок управления моторами. На вход поступают сигналы от объектов класса MoveButtons. Вместе с этими сигналами передается информация о том, какая кнопка нажата (вперед или назад), или о том, что обе кнопки отпущены. На вход также подается информация о состоянии напряжения бортовой сети автомобиля.

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

Структура класса показана на Рис. 7.

Рис. 7. Структура класса MoveSignal

Входы:LASignal: signal (Direction: integer);

RHSignal: signal (Direction: integer);

SDSignal: signal (Direction: integer);

BSignal: signal (Direction: integer);

FHSignal: signal (Direction: integer);

HRSignal: signal (Direction: integer);

VoltageOK: boolean;

Выходы:Sout: signal (v1: integer; v2: integer; v3: integer; v4: integer; v5: integer; v6: integer);

Поведение данного класса показано на Рис. 8. Такое поведение обусловлено возможностью прихода нескольких сигналов от различных кнопок управления моторами одновременно.

Рис. 8. Главная карта поведения класса MoveSignal

Рис. 9. Карта поведения bLA класса MoveSignal

Рис. 10. Карта поведения bRH класса MoveSignal

Рис. 11.Карта поведения bSD класса MoveSignal

Рис. 12. Карта поведения bB класса MoveSignal

Рис. 13. Карта поведения bFH класса MoveSignal

Рис. 14.Карта поведения bHR класса MoveSignal

2.2.3.     Voltage

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

Структура данного класса показана на Рис. 15.

Рис. 15. Структура класса Voltage

Выходы:VoltageIsNormal: boolean;

Поведение данного класса показано на Рис. 16.

Рис. 16. Карта поведения класса Voltage

Движковый переключатель на панели управления связан с переменной состояния voltage.

2.2.4.     MoveGroup1

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

Структура данного класса показана на Рис. 17.

Рис. 17. Структура класса MoveGroup1

Входы:MoveSignal: signal (v1: integer; v2: integer; v3: integer; v4: integer; v5: integer; v6: integer); этот сигнал несет в себе информацию о том, какую часть кресла и в каком направлении необходимо двигать

RestoreFromMem: signal (m1: integer; m2: integer; m3: integer; m4: integer; m5: integer; m6: integer); этот сигнал поступает при нажатии кнопок Memory1 или Memory2, то есть при необходимости восстановления сохраненной позиции кресла, и несет в себе информацию о том, какую часть кресла и в какую позицию необходимо переместить

MemStop: signal; этот сигнал прекращает перемещение частей кресла при восстановлении сохраненной позиции

Courtesy: signal (x: integer); сигнал, который поступает при активизации функции изменения положения кресла для удобного входа и выхода из автомобиля, несет в себе информацию о том, в какое положение необходимо переместить основание сидения

CourtesyStop: signal; этот сигнал останавливает движение кресла, вызванного сигналом Courtesy

VoltageOK: boolean; сигнал, информирующий о состоянии напряжения бортовой сети автомобиля

Выходы:sensLA: integer; датчик движения основания сидения

sensRH: integer; датчик движения задней кромки подушки

sensSD: integer; датчик движения подушки

CourtesyNO: boolean; сигнал, запрещающий активизацию функции удобства входа и выхода из автомобиля

PauseHeating: boolean; сигнал, приостанавливающий подогрев сидения

Поведение данного класса показано на Рис. 18 – Рис. 32.

Рис. 18. Главная карта поведения класса MoveGroup1

Рис. 19. Карта поведения PrepToRes класса MoveGroup1

Рис. 20. Карта поведения Restore класса MoveGroup1

Рис. 21. Карта поведения RestoreLA класса MoveGroup1

Рис. 22. Карта поведения tickLA класса MoveGroup1

Рис. 23. Карта поведения RestoreRH класса MoveGroup1

Рис. 24. Карта поведения tickRH класса MoveGroup1

Рис. 25. Карта поведения RestoreSD класса MoveGroup1

Рис. 26 Карта поведения tickSD класса MoveGroup1

Рис. 27. Карта поведения PrepToMove класса MoveGroup1

Рис. 28. Карта поведения MoveGroup1 класса MoveGroup1

Рис. 29. Карта поведения MoveLA класса MoveGroup1

Рис. 30. Карта поведения MoveRH класса MoveGroup1

Рис. 31. Карта поведения MoveSD класса MoveGroup1

Рис. 32. Карта поведения PrepToCourtesy класса MoveGroup1

2.2.5.     MoveGroup2

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

Структура данного класса показана на Рис. 33.

Рис. 33. Структура класса MoveGroup2

Входы:MoveSignal: signal (v1: integer; v2: integer; v3: integer; v4: integer; v5: integer; v6: integer); этот сигнал несет в себе информацию о том, какую часть кресла и в каком направлении необходимо двигать

RestoreFromMem: signal (m1: integer; m2: integer; m3: integer; m4: integer; m5: integer; m6: integer); этот сигнал поступает при нажатии кнопок Memory1 или Memory2, то есть при необходимости восстановления сохраненной позиции кресла, и несет в себе информацию о том, какую часть кресла и в какую позицию необходимо переместить

MemStop: signal; этот сигнал прекращает перемещение частей кресла при восстановлении сохраненной позиции

sensLA: integer; это значение датчика движения основания сидения; необходимо для реализации предварительной настройки положения подголовника

Выходы:sens: integer; датчик движения спинки кресла

sensFH: integer; датчик движения передней кромки подушки

sensHR: integer; датчик движения подголовника

Поведение данного класса показано на Рис. 34 – Рис. 48.

Рис. 34. Главная карта поведения класса MoveGroup2

Рис. 35. Карта поведения PrepToRes класса MoveGroup2

Рис. 36. Карта поведения Restore класса MoveGroup2

Рис. 37. Карта поведения RestoreB класса MoveGroup2

Рис. 38. Карта поведения tickB класса MoveGroup2

Рис. 39. Карта поведения RestoreFH класса MoveGroup2

Рис. 40. Карта поведения tickFH класса MoveGroup2

Рис. 41. Карта поведения RestoreHR класса MoveGroup2

Рис. 42. Карта поведения tickHR класса MoveGroup2

Рис. 43. Карта поведения PrepToMove класса MoveGroup2

Рис. 44. Карта поведения MoveGroup2 класса MoveGroup2

Рис. 45. Карта поведения MoveB класса MoveGroup2

Рис. 46. Карта поведения MoveFH класса MoveGroup2

Рис. 47. Карта поведения MoveHR класса MoveGroup2

Рис. 48. Карта поведения tickHR2 класса MoveGroup2

2.2.6.     Memory

Этот класс реализует работу с памятью. В нем происходит реакция на нажатия и отпускания кнопок работы с памятью, расположенных на панели управления (см. Рис. 1).

Структура данного класса показана на Рис. 49.

Рис. 49. Структура класса Memory

Входы:sensLA: integer; датчик движения основания сидения

sensRH: integer; датчик движения задней кромки подушки

sensSD: integer; датчик движения подушки

sensB: integer; датчик движения спинки кресла

sensFH: integer; датчик движения передней кромки подушки

sensHR: integer; датчик движения подголовника

VoltageOK: boolean; сигнал, информирующий о состоянии напряжения бортовой сети автомобиля

Выходы:RestoreTo: signal (m1: integer; m2: integer; m3: integer; m4: integer; m5: integer; m6: integer); этот сигнал вызывает начало настройки положения кресла к сохраненной в памяти позиции; несет в себе значения всех датчиков сохраненной позиции

Stop: signal; данный сигнал прекращает восстановление сохраненной позиции

Поведение данного класса показано на Рис. 50, Рис. 51.

Рис. 50. Главная карта поведения класса Memory

Рис. 51. Карта поведения SaveSensors класса Memory

Переменные состояния , m1 и m2 связаны с кнопками Memory, Memory1 и Memory2 на панели управления. Переменная speed отвечает за скорость автомобиля и имеет два значения: меньше 5 км/ч и больше 5 км/ч. Эта переменная связана с соответствующим органом управления, на который может влиять пользователь (см. Рис. 1).

2.2.7.     Door

Этот класс определяет закрытие и открытие двери и посылает соответствующий сигнал.

Структура показана на Рис. 52.

Рис. 52. Структура класса Door

Выходы:Opened: signal; этот сигнал формируется при открытии двери

Closed: signal; этот сигнал формируется при закрытии двери

Поведение данного класса показано на Рис. 53.

Рис. 53. Карта поведения класса Door

Переменная состояния DoorState связана с движковым указателем на панели управления (см. Рис. 1), с помощью которого пользователь может изменять состояние двери.

2.2.8.     C15_Signal

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

Структура показана на Рис. 54.

Рис. 54. Структура класса C15_Signal

Входы:DoorWasClosed: signal; этот сигнал информирует о закрытии двери

Выходы:C15Signal: signal; этот сигнал формируется при изменении положения ключа зажигания и несет в себе информацию о предыдущем и текущем положениях ключа зажигания

Поведение данного класса показано на Рис. 55.

Рис. 55 Карта поведения класса C15_Signal

Переменная состояния C15 связана с движковым указателем на панели управления (см. Рис. 1), определяющим положение ключа зажигания.

2.2.9.     Courtesy

Этот класс реализует функцию настройки положения кресла для удобного входа и выхода из автомобиля.

Структура данного класса показана на Рис. 56.

Рис. 56. Структура класса Courtesy

Входы:C15signal: integer; сигнал об изменении положения ключа зажигания

DoorWasOpened: signal; сигнал об открытии двери

DoorWasClosed: signal; сигнал о закрытии двери

sensLA: integer; датчик движения основания сидения

CourtesyNO: boolean; сигнал, запрещающий активизацию функции удобства входа и выхода из автомобиля

Выходы:MoveTo: signal (x: integer); сигнал, формирующийся при активизации функции настройки положения кресла для удобного входа и выхода из автомобиля, несет в себе информацию о том, в какое положение необходимо переместить основание сидения

CourtesyStop: signal; этот сигнал останавливает движение кресла, вызванного сигналом MoveTo

Поведение данного класса показано на Рис. 57, Рис. 58.

Рис. 57. Главная карта поведения класса Courtesy

Рис. 58. Карта поведения Adjustment класса Courtesy

2.2.10.  Heating

Этот класс реализует функцию подогрева сидения. Он обрабатывает нажатия и отпускания кнопок stage1 и stage2 на панели управления.

Структура данного класса показана на Рис. 59.

Рис. 59. Структура класса Heating

Входы: C15signal: integer; сигнал об изменении положения ключа зажигания

Pause: boolean; сигнал, приостанавливающий нагрев сидения

Поведение данного класса показано на Рис. 60.

2.2.11.  Seat

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

Структура данного класса показана на Рис. 61.

>

Рис. 61. Структура класса Seat

Входы: sensLA: integer; датчик движения основания сидения

sensRH: integer; датчик движения задней кромки подушки

sensSD: integer; датчик движения подушки

sensB: integer; датчик движения спинки кресла

sensFH: integer; датчик движения передней кромки подушки

sensHR: integer; датчик движения подголовника

Выходы: seat: matrix;

squab: matrix;

backrest: matrix;

head_restraint: matrix;

Поведение данного класса показано на Рис. 62.

Рис. 62. Карта поведения класса Seat

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

3.    Выводы

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

В качестве предложения по совершенствованию системы моделирования Model Vision Studium может быть следующее:

  • введение понятия исторического псевдосостояния при построении карты поведения
  • добавление таймеров в карты поведения

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

 

Вернуться на страницу <Model Vision Studium>

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.