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

Модель пружины / Руководство_пользователя

.pdf
Скачиваний:
27
Добавлен:
10.02.2015
Размер:
1.34 Mб
Скачать

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

Рис. 5.1

5.1.2.Временная и фазовая диаграммы.

Спомощью кнопки или команды «Окна/Новая диаграмма» создадим окно диаграммы (по умолчанию это будет временная диаграмма, т.е. по оси абсцисс будут откладываться значения модельного времени). Методом “drag-and-drop” перенесем в окно диаграммы из окна переменных переменные Alpha и Omega. Запустим модель и получим следующий график (Рис. 5.2).

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

или команды «Установки/Модель» вызовите диалог редактирования установок. На станице «Выполнение» переключите параметр «Соотношение модельного и реального времени» из положения «так быстро как можно» в положение «число» (по умолчанию это 1, то есть моделирование в реальном времени). Изменяя это число, вы можете ускорять или замедлять прогон модели.

Нам теперь хотелось бы увидеть на графике зависимость ( ) , т.е получить фазо-

вую диаграмму. Для этого создадим новую диаграмму, перетащим в нее те же самые переменные, а затем правой клавишей мыши откроем на ней всплывающее меню и выполним команду «Настройка». В появившемся диалоге настроек укажем с помощью двойного щелчка мышью в поле , что по оси абсцисс откладываются значения переменной Alpha (см.Рис. 5.3). Запустив модель снова, мы получим следующий график (Рис. 5.4).

11

Рис. 5.2

Рис. 5.3

12

Рис. 5.4

5.1.3. 3D-анимация.

Для многих моделей (особенно моделей механических систем) пользователь может получить больше всего информации из непосредственного наблюдения трехмерного динамического изображения моделируемой системы. В визуальной модели для этого предназначено окно 3D-анимации. Создать его можно с помощью команды главного меню «Окна/Новая 3D-анимация».

Окно 3D-анимации позволяет строить динамические трехмерные изображения, в виде совокупности трехмерных примитивов (линия, шар, цилиндр, конус и т.д.), некоторые параметры которых (координата, радиус, цвет и т.п.) однозначно связаны со значением соответствующих переменных модели..

С помощью двойного щелчка мыши в области окна или команды «Свойства» всплывающего меню вызовем диалог редактирования свойств 3D-анимации. В данной модели нам понадобится только два стандартных объекта – отрезок и сфера (см.Рис. 5.5).. Один конец линии должен всегда находиться в начале координат, а координаты второго конца (параметры x2, y2) должны изменяться в соответствии со значением переменных X и Y маятника. Для задания этого соответствия тащим методом «drag-and-drop» соответствующие переменные из окна переменных и бросаем их в колонке «Переменная» соответствующих параметров отрезка (Рис. 5.5). Аналогичным образом этим же переменным X, Y мы сопоставляем координаты центра сферы (параметры x1, y1).

После этого достаточно запустить модель и вы увидите качающийся маятник (Рис. 5.6).В любой момент вы можете изменить точку наблюдения, нажав левую клавишу мыши и перемещая ее с прижатой клавишей. Таким образом, вы можете рассматривать колебания маятника сверху, снизу и т.д.

С помощью нажатия левой клавиши мыши при нажатой клавише <Control> вы можете удалять точку наблюдения от начала системы координат, при нажатой клавише <Shift> приближать ее к началу координат.

13

Рис. 5.5

Рис. 5.6

5.1.4. Интерактивное вмешательство.

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

Например, пусть вы хотите исследовать поведение вашего маятника при изменении ускорения силы тяжести g. Для этого нужно, во-первых, трансформировать g из константы в переменную.

Замечание. Константа – это величина, которая никогда не меняется. Параметр – это величина, которая может меняться для разных экземпляров класса и для данного экзем-

14

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

Такую трансформацию очень легко выполнить методом «drag-and-drop», перетащив g из секции констант в секцию переменных в определении класса (Рис. 5.7).

Рис. 5.7

Пусть мы желаем, например, в конце первого периода колебаний сделать значение g равным 50. Щелкните дважды мышью на строке этой переменной в окне переменных )модель можно и не останавливать) и в появившемся диалоге (Рис. 5.8) задайте новое значение (можно вводить не только числовые значения, но и любые формулы, включающие предопределенные функции и переменные модели, например 5*g*sin(Time)).

Рис. 5.8

Результат изменения виден на Рис. 5.9: с ростом g частота колебаний увеличивается.

Рис. 5.9

Для того, чтобы менять переменную плавно, необходима 2D-анимация.

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

15

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

5.1.5. 2D-анимация.

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

С помощью команды «Окна/Новая 2D-анимация» создадим анимационное окно.

Далее откроем с помощью кнопки или команды «Сервис/Стандартные 2Dкомпоненты» панель 2D-компонент (Рис. 5.10).

Рис. 5.10

Выберем на этой панели компоненту «Ползунок» и методом «drag-and-drop» перетащим ее в левую часть окна анимации. Щелкнем на появившемся изображении ползунка правой клавишей мыши и с помощью команд всплывающего меню установим вертикальное расположение ползунка, режим показа числового значения и интервал значений 0 .. 100 (Рис.

5.11).

Рис. 5.11

С помощью мыши можно перемещать 2D-компоненту в пределах окна анимации, а также изменять размер компоненты. Щелкнем правой клавишей мыши сверху от компоненты и, выполнив команду «Добавить надпись» всплывающего меню, создадим пояснительную

16

надпись для ползунка (Рис. 5.12). Надпись также можно перемещать с помощью мыши с прижатой клавишей.

Теперь нужно сделать самое важное – связать ползунок с переменной модели. Делается это аналогично 3D-анимации: методом «drag-and-drop» перемещаем переменную g из окна переменных и бросаем ее на изображении ползунка. Теперь ползунок будет отображать текущее значение переменной, а при перемещении ползунка с помощью мыши присваивать соответствующее значение этой переменной. Кроме ползунка интерактивными 2D-компонентами являются еще «Круговой регулятор» и «Кнопка». Остальные компоненты позволяют только отображать текущее значение переменной. Используем две компоненты «Линейный индикатор сплошной» для индикации значений переменных Alpha и Omega (Рис. 5.12).

Рис. 5.12

Результат плавного изменения ускорения силы тяжести показан на Рис. 5.13. Обратите внимание, если резко уменьшить величину g в момент прохождения нижнего вертикального положения (максимум кинетической энергии), то маятник можно закрутить вокруг оси вращения. Это иллюстрация важного свойства интерактивной анимации: через пользователя замыкается обратная связь, вы видите на экране динамику системы и соответственно немедленно реагируете.

Рис. 5.13

17

Определенные особенности имеет 2D-компонент «Перемещение образа». Строго говоря, этот компонент должен называться «Перемещение или подмена образа». В первом случае используется один образ и его декартовы координаты в области перемещения связываются с переменными модели (см. 2D-анимацию прыгающего мячика в примере …/Examples/Ball). Во втором случае используются несколько образов и значение одной из переменных модели используется как номер этого образа (так получается изображение бьющегося сердца в примере …/Examples/Heart). Для иллюстрации первого случая (более сложного) попробуем создать новое окно анимации в примере …/Examples/Ball.

1)Создадим новое окно 2D-анимации и переместим на него с панели 2Dкомпонент компонент «Перемещение образа» С помощью мыши зададим нужное положение компонента в окне и его размеры.

2)Методом «drag-and-drop» свяжем переменные Ball1.x и Ball1.y с горизонтальной

ивертикальной координатами образа в компоненте (при «бросании» переменной на ком-

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

3) С помощью команды «Параметры» всплывающего меню компонента откроем диалог задания параметров анимации. Зададим цвет фона компонента – белый. Нажмем правую кнопку мыши в поле «Образы» и с помощью команды «Добавить» всплывающего

меню выберем изображение мячика . Поскольку изображение всегда прямоугольное, а нам нужно перемещать круглый мяч, то необходимо указать свойство «Прозрачность», при котором цвет, соответствующий левому нижнему пикселу образа, воспринимается как прозрачный. Изображение мячика появится в левом верхнем левом углу компоненты вместе с заштрихованным прямоугольником, задающим область перемещения образа (Рис. 5.14а). Растянем эту область мышкой на весь компонент Рис. 5.14б).

а)

б)

Рис. 5.14

Далее в диалоге установим значения переменны, соответствующие границам области перемещения (Рис. 5.15). Затем закрываем диалог параметров анимации, убираем с помощью команды «Область перемещения» всплывающего меню изображение заштрихованного прямоугольника и запускаем модель. Изображение мячика начинает двигаться .

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

18

Рис. 5.15

Рис. 5.16

5.1.6. Останов по условию.

При проведении экспериментов с моделью часто возникает необходимость останавливаться в некоторых характерных точках фазовой траектории (например, мы меняли величину g «в конце первого периода колебаний». Точно определить этот момент «на глазок», например, наблюдая графики, достаточно сложно. Поэтому в пакете предусмотрена возможность останова по условию. Этим условием может быть истинность некоторого логического выражения (предиката), срабатывание определенного или любого перехода, а также вход в определенный узел карты состояний. В данном случае нам понадобится останов по предикату.

С помощью кнопки или команды «Сервис/Условия останова» откроем диалог «Условия останова», выберем страничку «По предикату», щелкнем на ней правой клавишей мыши и, выполнив команду «Добавить» всплывающего меню, перейдем в диалог редактирования логического предиката (Рис. 5.17).

19

Рис. 5.17

Новый предикат добавится в список «ждущих» предикатов (Рис. 5.18). Галочка около предиката показывает, что он активен, т.е. по нему может произойти останов модели. Предикат можно пассивизировать и снова активизировать с помощью мыши.

Рис. 5.18

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

В нашем случае первый останов произойдет в начальный момент. Нажмем кнопку «Продолжить» и дождемся второго останова – это и будет начало второго периода колебаний. Момент останова (как и любого другого переключения в гибридной одели) определяется с точностью до временной погрешности, заданной в установках численных методов (по умолчанию 1e-6).

5.1.7. Формульный калькулятор.

Иногда в ходе эксперимента возникает необходимость разовых расчетов по определенным формулам. Например, если вы захотите интерактивно изменить длину маятника L, то, как было указано выше, необходимо одновременно изменить значение угловой скорости, исходя из соотношения 1 L1 2 L2 . Для этого удобно использовать формульный калькулятор.

В нужный момент времени с помощью кнопки или команды «Сервис/Калькулятор» откроем окно формульного калькулятора. Затем введем нужное выражение и нажмем клавишу «Enter» (Рис. 5.19).

20

Соседние файлы в папке Модель пружины