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

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

Для примера возьмём простую задачу Коши.
Дано: и . Найти аппроксимированное решение для .

Рассмотрим задачу с геометрической точки зрения и посмотрим на значение и касательную в точке . Из того, что нам дано, имеем и


Мы пока не знаем как выглядит , но мы знаем что возле точки , значение близко к касательной. Теперь постараемся вычислить для маленького значения , воспользовавшись касательной. Для начала попробуем .


Если расписать, то мы приближаем значение следующим образом:

Так, для .
​​
Теперь мы можем продолжить вычислять для других точек. Хотя, конечно, мы нашли не точное значение , но если наше приближённое значение очень близко к точному, то аппроксимированная касательная тоже будет очень близка к действительной!

$$display$$\begin{aligned}​f(t,y(t))&​=y(t)\\​f(0.5,1.5)​&=1.5​​\end{aligned}$$display$$



Далее, продвинемся ещё на единиц вправо по касательной.


Повторим процесс и получим угловой коэффициент касательной :


Процедуру можно проводить рекурсивно и для этого выведем формулу:

Данный численный метод решения дифференциальных уравнений называется методом Эйлера. Для общего случая шаг x += v * delta_t .

В нашем конкретном случае, пошаговое решение выглядит так:

Используя данный метод, результаты удобно представлять в виде таблицы:

Оказывается, у нашей задачи есть красивое аналитическое решение :


Как вы думаете, что произойдёт, если в методе Эйлера уменьшить шаг?


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

Настало время кодить!

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

Т.к. я больше всего знаком с JavaScript, и мне нравится ясность, которую добавляют в код аннотации, все примеры будут написаны на TypeScript .

А начнём мы с версии, в которой подразумевали, что это одномерный массив чисел, прямо как в нашей математической модели.

Function runSimulation(// y(0) = y0 y0: number, // dy/dt(t) = f(t, y(t)) f: (t: number, y: number) => number, // показывает текущее состояние симуляции render: (y: number) => void) { // Шаг вперёд на 1/60 секунды за тик // Если анимация будет 60fps то это приведёт к симуляции в рельном времени const h = 1 / 60.0; function simulationStep(ti: number, yi: T) { render(yi) requestAnimationFrame(function() { const fi = f(ti, yi) // t_{i+1} = t_i + h const tNext = ti + h // y_{i+1} = y_i + h f(t_i, y_i) const yNext = for (let j = 0; j < y.length; j++) { yNext.push(yi[j] + h * fi[j]); } simulationStep(tNext, yNext) } } simulationStep(0, y0) }
Оперировать с одномерными массивами не всегда удобно, можно абстрагировать функции сложения и умножения процесса симуляции в интерфейс и получить краткую обобщённую реализацию симуляции используя TypeScript Generics .

Interface Numeric { plus(other: T): T times(scalar: number): T } function runSimulation>(y0: T, f: (t: number, y: T) => T, render: (y: T) => void) { const h = 1 / 60.0; function simulationStep(ti: number, yi: T) { render(yi) requestAnimationFrame(function() { // t_{i+1} = t_i + h const tNext = ti + h // y_{i+1} = y_i + h f(t_i, y_i) const yNext = yi.plus(f(ti, yi).times(h)) simulationStep(yNext, tNext) }) } simulationStep(y0, 0.0) }
Положительной стороной данного подхода является возможность сконцентрироваться на основе симуляции: что именно эту симуляцию отличает от любой другой. Используем пример симуляции с двумя объектами, упомянутыми выше:

Код симуляция двух объектов

// Состояние симуляции двух объектов в один тик времени class TwoParticles implements Numeric { constructor(readonly x1: Vec2, readonly v1: Vec2, readonly x2: Vec2, readonly v2: Vec2) { } plus(other: TwoParticles) { return new TwoParticles(this.x1.plus(other.x1), this.v1.plus(other.v1), this.x2.plus(other.x2), this.v2.plus(other.v2)); } times(scalar: number) { return new TwoParticles(this.x1.times(scalar), this.v1.times(scalar), this.x2.times(scalar), this.v2.times(scalar)) } } // dy/dt (t) = f(t, y(t)) function f(t: number, y: TwoParticles) { const { x1, v1, x2, v2 } = y; return new TwoParticles(// dx1/dt = v1 v1, // dv1/dt = G*m2*(x2-x1)/|x2-x1|^3 x2.minus(x1).times(G * m2 / Math.pow(x2.minus(x1).length(), 3)), // dx2/dt = v2 v2, // dv2/dt = G*m1*(x1-x1)/|x1-x2|^3 x1.minus(x2).times(G * m1 / Math.pow(x1.minus(x2).length(), 3))) } // y(0) = y0 const y0 = new TwoParticles(/* x1 */ new Vec2(2, 3), /* v1 */ new Vec2(1, 0), /* x2 */ new Vec2(4, 1), /* v2 */ new Vec2(-1, 0)) const canvas = document.createElement("canvas") canvas.width = 400; canvas.height = 400; const ctx = canvas.getContext("2d")!; document.body.appendChild(canvas); // Текущее состояние симуляции function render(y: TwoParticles) { const { x1, x2 } = y; ctx.fillStyle = "white"; ctx.fillRect(0, 0, 400, 400); ctx.fillStyle = "black"; ctx.beginPath(); ctx.ellipse(x1.x*50 + 200, x1.y*50 + 200, 15, 15, 0, 0, 2 * Math.PI); ctx.fill(); ctx.fillStyle = "red"; ctx.beginPath(); ctx.ellipse(x2.x*50 + 200, x2.y*50 + 200, 30, 30, 0, 0, 2 * Math.PI); ctx.fill(); } // Запускаем! runSimulation(y0, f, render)


Если подшаманить с числами, то можно получить симуляцию орбиты Луны!Симуляция орбиты Луны, 1 пикс. = 2500 км. 1 сек. симуляции равна 1 дню на Земле. Пропорция Луны к Земле увеличена в 10 раз

Столкновения и ограничения

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

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

Состояние симуляции можно описать так:

Где это высота мяча над поверхностью, а его скорость. Если отпустить мяч с высоты 0.8 метра, то получим:

Если изобразить график , то получим нечто следующее:


Во время падения мяча производная функции вычисляется достаточно легко:

С ускорением свободного падения, .

Но что произойдёт, когда мяч коснётся поверхности? То, что мяч достиг поверхности мы можем узнать по . Но при численном интегрировании, в один момент времени мяч может находиться над поверхностью, а уже в следующий под ней: .

Можно было бы решить эту задачу путём определения момента столкновения . Но даже если этот момент найти, как определить ускорение так, чтобы оно менялось в противоположную сторону.

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

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

Function runSimulation>(y0: T, f: (t: number, y: T) => T, applyConstraints: (y: T) => T, iterationsPerFrame: number, render: (y: T) => void) { const frameTime = 1 / 60.0 const h = frameTime / iterationsPerFrame function simulationStep(yi: T, ti: number) { render(yi) requestAnimationFrame(function () { for (let i = 0; i < iterationsPerFrame; i++) { yi = yi.plus(f(ti, yi).times(h)) yi = applyConstraints(yi) ti = ti + h } simulationStep(yi, ti) }) } simulationStep(y0, 0.0) }
И теперь уже можно написать код нашего прыгающего мячика:

Код прыгающего мячика

const g = -9.8; // m / s^2 const r = 0.2; // m class Ball implements Numeric { constructor(readonly x: number, readonly v: number) { } plus(other: Ball) { return new Ball(this.x + other.x, this.v + other.v) } times(scalar: number) { return new Ball(this.x * scalar, this.v * scalar) } } function f(t: number, y: Ball) { const { x, v } = y return new Ball(v, g) } function applyConstraints(y: Ball): Ball { const { x, v } = y if (x <= 0 && v < 0) { return new Ball(x, -v) } return y } const y0 = new Ball(/* x */ 0.8, /* v */ 0) function render(y: Ball) { ctx.clearRect(0, 0, 400, 400) ctx.fillStyle = "#EB5757" ctx.beginPath() ctx.ellipse(200, 400 - ((y.x + r) * 300), r * 300, r * 300, 0, 0, 2 * Math.PI) ctx.fill() } runSimulation(y0, f, applyConstraints, 30, render)


Внимание разработчикам!

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

До скорого!

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

На всё изложенное меня вдохновили материалы лекции SIGGRAPH, точно так же как и в симуляции жидкости . Если хотите найти более исчерпывающую информацию о вышеизложенном, то взгляните на материалы курса SIGGRAPH 2001 «Введение в физическое моделирование» . Привожу ссылку на курс 1997 года, т.к. Pixar похоже удалила версию 2001.

Только зарегистрированные пользователи могут участвовать в опросе. , пожалуйста.

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

Создание объектов

ИНСТРУМЕНТЫ ДЛЯ РИСОВАНИЯ

Sketch Tool - Карандаш - позиционируется как универсальный инструмент для рисования, заменяющий другие. На самом деле, в этом утверждении есть некоторое лукавство, т.к. для каждого типа геометрии лучше выбирать свой наиболее подходящий инструмент, а их несколько. Да, Карандашом можно нарисовать любую линию и любой контур, но будет ли это красиво, например круг? Разработчики предусмотрели для Карандаша рисования прямых линий - с зажатой клавишей Shift . Карандаш всегда рисует замкнутые контур, даже если он не был замкнут пользователем.
Knife - Нож - служит для вырезания участка из другой фигуры. После работы Ножом вырезанный участок сразу не пропадает, надо его выделить и удалить клавишей Del .
Brush - Кисть - работает аналогично Карандашу, но в отличие от Карандаша ей можно регулировать толщину линии. Также в отличие от Карандаша Кисть не рисует замкнутые контуры.
Eraser - Стерка - аналогична Ножу, но имеет регулируемую толщину.
Polygon - Полигоны - большой разница с Карандашом не заметил. Ну еще можно этим инструментом объект выделить, повращать (с зажатой ПКМ), поперетаскивать (с жажатой ЛКМ).
Gear - Шестеренка - рисование зубчатых кругов. Красивые и функциональные фигуры получаются. Можно перед рисование настроить размер зубцов и от этого будет зависеть их количество. Возможны внешние и внутренние шестеренки.
Box - Прямоугольник - рисовние прямоугольников. В этом простом инструменте один параметр Select by incircling , отметка которого позволяет этому инструменту также выделять объекты при обводке нескольких объектов.
Circle - Круг - прост и понятен как голый круг.
Plane - Грань - создание бесконечных полов, стен, потолков с целью, чтобы объекты в раже своей динамики не выезжали, не вылетали и не проваливались в никуда.

ИНСТРУМЕНТЫ ДЛЯ СОЕДИНЕНИЯ И СКРЕПЛЕНИЯ

Chain - Цепь - служит для соединения объектов цепью или веревкой, прочность и размер звеньев которых настраиваются.
Spring - Пружина - после сединения двух объектов пружиной по ПКМ (правая клавиша мыши) на пружине можно вызвать контекстное меню пружины и отрегулировать ее длину, а также параметры жесткости и затухания.
Fixate - Фиксатор - просто сделать объект или объекты под этим маркером неподвижными во время анимации сцены.
Axle - Ось - для скрепления двух объектов осью, на которой объект будет вращаться. Потом эту ось можно преобразовать в моторчик и задать ему направление движения, в том числе с помощью горячих клавиш зрителя.

Создание уникального объекта

Если вы уже наигрались с арсеналом встроенных инструментов рисования объектов, то вам захочется иметь объект с нестандартной геометрией и текстурой. Это возможно и несложно:
- Сначала надо подготовить в графическом редакторе нужную фигуру и сохранить ее в виде PNG файла с прозрачным фоном.
- Затем уже в Algodoo загрузить эту фигуру на сцену:
- - Нарисовать любой замкнутый контур, например, круг;
- - Выделить его и нажать кнопку справа вверху;
- - Нажать кнопку в открывшемся окне настройки интерфейса фигуры;
- - Откроется менеджер файлов (не ахти какой удобный) - в нем надо выбрать на диске нужный PNG файл.
- Этим файлом будет залит наш круг;
- В окне настройки интерфейса фигуры нажать кнопку .
Ву-а-ля, дело сделано. Правда, не до конца и с оговорками, если дело касается фигуры, состоящей из отдельных кусков. В этом случае, во-первых, надо объедить фигуры в группу - с помощью ПКМ вызвать контекстное меню и выбрать Selection > Group . Теперь в статике вы сможете таскать и трансформировать фигуру как единое целое. Но стоит вам запустить анимацию, как фигура упадет и рассыпется на составные куски. Как этого избежать я еще не нашел, т.к. увлекся программой совсем недавно.
Еще одна заметка по текстуре. Её внутри фигуры можно передвигать, вращать, масштабировать - для этого существует специальный инструмент , который хорошо слушается мыши:
- Передвигать - с нажатой ЛКМ;
- Вращать - с нажатой ПКМ.
- Мастабировать - колёсиком мыши.

Сцена и ее анимация

После того, как объекты нарисованы, расставлены по своим местам, снабжены моторчиками, пружинами... осталось нажать на кнопку внизу на панельке управления сценой и всё придет в движение (при правильном планировании). На самом деле для отладки эту кнопку (которую заменяет клавиша [Пробел]) вы будете нажимать постоянно и на ранних этапах. Что еще можно сказать относительно сцены:
- передвигать сцену - нажать кнопку на нижней панельке и с зажатой ЛКМ передвигать;
- изменять масштаб - крутить колесико мыши с зажатой клавишей Crtl или кнопкой на нижней панельке;
- регулировать скорость анимации - при нажатии кнопки над ней появляется слайдер для этого;
- включать/открючать гравитацию - кнопкой на панельке;
- регулировать направление и силу ветра - кнопкой на панельке;
- показывать вспомогательную сетку, которая может быть полезной в статичном положении сцены для более точного позиционирования объектов - для этого используйте кнопку на нижней панельке - одиночный клик включает сетку, а двойной клик показывает окно настройки параметров сетки.
- отменить действия - стандартные кнопки на панельке.

Англо-русский словарик физических терминов

Angle - угол
Area - площадь
Attraction - притяжение (объектов между собой)
Collision - столкновение (в практике программы принадлежность объектов к тем или иным слоям, Collision Layer, влияет на то, какие объекты должны между собой сталкиваться, а какие нет)
Density - плотность
Energy - энергия
Force - сила
Freeze - заморозить
Friction - трение
Gravity - гравитация (притяжение Земли)
Immortal - бессмертный (свойство объекта, благодаря которому его не может убить Killer)
Killer - убийца (свойство объекта, благодаря которому он уничтожает все не Immortal объекты, к которым прикасается)
Liquify - жидкость (любую фигуру можно превратить в жидкость)
Mass - масса
Mirror - зеркало
Momentum - импульс, количество движения
Plot - график изменения во времени тех или иных физических характеристик объекта
Refractive index - коэффициент преломления
Restitution - восстановление (в практике программы это "резиновость", которая влияет на отскок объекта после соударения с препятствием)
Speed - скорость
Spongify - придуманный авторами программы тип объекта, по физическим свойствам схожий с губкой или плюшевой игрушкой
Strength - прочность
Velocity - скорость

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

Шекспир когда-то сказал: "Весь мир - театр, а люди в нем - актеры". Это если исходить с позиции художественного образа мышления. Если же посмотреть на мир с научной точки зрения, то можно перефразировать великого драматурга: "Весь мир - природа, а люди в ней объекты":). А при чем тут природа? Да при том, что по-гречески "природа" будет "физис", а отсюда и название главной науки обо всем сущем - "физика".

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

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

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

Установка программы для моделирования механических процессов Phun

Но обо всем в свою очередь. Сейчас мы установим и попробуем разобраться с программой. Для этого скачиваем установочный дистрибутив Phun, запускаем инсталлятор и ждем, когда все установится:).

Сразу оговорюсь, если у Вас старый компьютер с довольно слабенькой видеокартой, то Phun в таком случае будет заметно притормаживать. Хотя заявлена поддержка (правда более ранней 4-ой версии) видеокарт с 32 МБ памяти, на моем компьютере со 128 МБ программа иногда подвисала довольно ощутимо. Я думаю, что оптимальный вариант будет около 256 МБ.

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

Русификация программы

Перед нами окно программы с приветственным проектом:

Программа по умолчанию - английская, но в пятой версии появилась и русская локализация. Чтобы русифицировать Phun, заходим в меню "File" и в пункте "Change language" выбираем опцию "Russian". Готово!

Теперь, когда мы имеем дело с русской версией, рассмотрим элементы управления программой.

Интерфейс программы

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

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

Меню "Инструменты", "Управление" и "Контекстное меню" позволяют скрыть или отобразить соответствующие вкладки программы.

Меню "Инструменты":

Здесь собраны все те приспособления, при помощи которых мы будем создавать нужные нам для эксперимента объекты. Вся панель разделена на три зоны: в первой зоне инструменты для перемещения объектов, во второй - для рисования, а в третьей - для вставки механизмов. Рассмотрим их по порядку.

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

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

В панели рисования первый инструмент - "Полигон". С его помощью Вы сможете нарисовать любую фигуру "от руки" или ровный многоугольник (для этого зажмите и удерживайте клавишу Shift, чтобы нарисовать ровную линию). Инструмент "Кисть" позволяет рисовать любые линии, фигуры и объекты вручную.

"Прямоугольник" помогает нам нарисовать четкий прямоугольник или квадрат (также зажав Shift), а с инструментом "Круг" Вы всегда сможете начертить ровный круг. Далее идут три специализированных инструмента "Шестерня", "Плоскость" и "Цепь". Все они соответственно создают свои объекты.

Третья панель также предназначена для создания специальных объектов со своими физическими характеристиками. Здесь находятся инструменты "Пружина", "Крепление", "Ось" и "След". Назначение первых троих, я думаю, объяснять не надо, а последний служит для отображения инерционного следа от движения какого-либо объекта, к которому прикреплен инструмент (см. пример Cycloid).

Меню "Управление":

Здесь мы видим нечто похожее на пульт управления стандартным плеером. Здесь есть кнопки реверса (отменить/повторить) и "плей" (соответственно, запустить эксперимент).

Далее находится ползунок масштаба и две кнопки навигации. Масштаб в Phun можно изменять тремя способами: передвигая ползунок, зажав левую кнопку мыши на кнопке (+/-) или колесом мыши, когда она находится над полем эксперимента. Кнопка со стрелками служит для перемещения по рабочему полю. Зажмите ее и, удерживая, перемещайте мышь. Хотя, по-моему, удобнее делать то же самое, зажав кнопку мыши в любом месте на рабочем поле.

Две последние кнопки панели управления служат для создания невесомости и безвоздушного пространства. По умолчанию гравитация соответствует настоящему значению в 9,8 м/с 2 , а сила сопротивления воздуха - 1. Но эти значения легко можно изменить в "Настройках" в подменю "Симулятор". Там же можно установить скорость симуляции (по умолчанию - 1).

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

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

Для каждого нового объекта функции будут расширяться, дополняясь такими как клонирование, действия, выбор материала, настройка контуров и т. д.

Теперь мы готовы к работе с Phun, и для начала предлагаю провести небольшой эксперимент, чтобы проверить срабатывает ли в программе закон всемирного тяготения.

Первый эксперимент

Для этого в меню "Файл" выберем "Новая сцена" и нарисуем горизонтальную плоскость (0°). Теперь на одинаковой высоте подвесим два тела побольше и поменьше (для интереса маленький шарик я сделал из метала, а большой из стекла).

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

Более сложные манипуляции с телами и жидкостями

Усложним эксперимент, добавив вместо твердой поверхности, на которую приземляются тела, воду.

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

Готово! Можно запускать эксперимент.

Готовые сцены

Обзор программы был бы неполным, если бы я не упомянул, что для Phun существует множество готовых сцен. Несколько из них доступно, если нажать в меню "Файл" кнопку "Открыть сцену". Если же Вам и этого мало, Вы всегда можете скачать из Интернета тысячи других. Достаточно в том же меню "Файл" выбрать пункт "Скачать еще сцены".

Желаю Вам творческих успехов и всегда удачных экспериментов:)!

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

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

P.P.S. Если Вам понравилась эта программа, то советую обратить внимание на еще одну не менее интересную. Программа Начала Электроники позволит Вам моделировать реальные процессы в разнообразных электрических схемах, которые Вы же и создаете!

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

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

Элективный курс: "Моделирование физических процессов на ЭВМ" имеет прикладную направленность.

Скачать:


Предварительный просмотр:

Муниципальное общеобразовательное учреждение

Средняя общеобразовательная школа №1

«Утверждаю»

Директор школы ________/ Дамашева А.А./ Приказ № 92/1 от 05.10.20..г.

Рассмотрено на заседании МО: __________

Руководитель МО:_________ /Попова Г.Н./

Рассмотрено на заседании Методсовета

03.10.20..г.

Руководитель: _________ /Туленкова А.Г.. /

Программа

элективного курса

«Моделирование физических процессов на ЭВМ».

10 -11 класс.

Составитель: Фаттахова З.Х.,

Учитель физики,

Г. Советский

20…г.

Пояснительная записка.

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

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

Элективный курс: "Моделирование физических процессов на ЭВМ" имеет прикладную направленность.

Целью курса:

Знакомство на практике с основными путями и методами применения знаний на практике;

Внутрипрофильная специализация в естественно - математическом, физико-математическом и технологическом профилях обучения;

Предоставление учащимся возможности удовлетворить индивидуальный интерес к изучению практических положений физики в процессе познавательной деятельности при проведении экспериментов и исследований физических процессов на ЭВМ.

Основные задачи:

Оказать помощь ученику в профессиональном самоопределении;

Развить интерес к физике и информатике;

Формировать навыки в решении задач и их моделировании на компьютере;

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

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

Учащиеся должны уметь:

Выполнять определенные программой исследования с использованием компьютерных моделей;

Решать физические задачи, строить таблицы, диаграммы;

Работать со средствами информации (осуществлять поиск и отбор информации, конспектировать, осуществлять ее реферирование);

Оформлять полученные результаты;

Моделировать физические процессы на ЭВМ и осуществлять их исследование.

Методы и организационные формы обучения:

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

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

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

Материал, составляющий содержание элективного курса, соответствует государственному

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

Средства обучения :

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

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

Поиск информации в Интернет;

Применение компьютеризированных комплексов.

Применение компьютеров как средства представления информации.

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

(например: "Открытая физика", "Живая физика").

Продолжительность курса 34 часа (17 часов - физики, 17 часов - информатики).

Учебно - тематическое планирование

Кол-во часов

Формы

работы

Формы контроля

Всего

Физика

ИВТ

Задача № 26, 27, 45. А. П. Рымкевич. Сб. задач по физике.

MS Excel.

Беседа, работа с персональным компьютером.

Оценка построенных графиков.

Решение графических задач.

Задача № 56, 57, 65, 72.

Индивидуальная работа с ПК.

Оценка выполнения практических заданий .

Задача № 77, 83(ПРГ).

Урок - практикум

Оценка созданной модели

Задача № 230, 235, 236.

Н. Угринович. Информатика и информационные технологии.

Индивидуальная работа с ПК.

Оценка созданной модели

И. Семакин. Задачник – практикум. Стр. 155

Индивидуальная работа с ПК

Оценка созданной модели

И. Семакин. Задачник – практикум Стр. 167.

Беседа, работа с ПК.

Задача № 366.

Индивидуальная работа с ПК

Оценка созданной модели

Задача № 394, 397, 399. А. П. Рымкевич.

Беседа, работа с ПК

Оценка выполнения практического задания

Задача № 673, 674. А. П. Рымкевич.

Беседа, работа с ПК.

Оценка созданной модели

Моделирование колебаний математического маятника.

Изучение графика гармонических колебаний.

Задача № 422, 417, 418, 428.

Индивидуальная работа с ПК.

Оценка созданной модели

Экспотенциальная запись числа при решении задач молекулярной физики.

Задача № 486, 479.

Беседа, работа с ПК.

Оценка построенных графиков.

Задача № 538, 539.

Индивидуальная работа с ПК

Оценка построенных графиков

И. Семакин. Задачник-практикум Том 2. Стр 178.

Индивидуальная работа с ПК

Оценка построенных графиков.

Изучение электрических цепей с помощью учебной программы «Открытая физика»

Правила Кирхгофа для разветвлённых цепей.

В. А. Балаш. Задачи по физике и методы их решения. Стр. 290.

Беседа, работа с ПК

Оценка выполнения практического задания.

Задача № 844, 845.

Индивидуальная работа с ПК.

Оценка созданной модели.

(Полусумматор, триггер).

Индивидуальная работа с ПК.

Оценка созданной модели.

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

Моделирование на ЭВМ

Кол. - во часов

Прямолинейное равномерное движение.

Построение и чтение графиков скорости и перемещения.

Законы равномерного движения

Построение графика равномерного движения

Прямолинейное равноускоренное движение.

Решение графических задач.

Законы равноускоренного движения

Вставка рисунка. Построение.

Определение величины ускорения, перемещения и скорости при равнопеременном движении.

Равнопеременное движение

Построение модели движения

Моделирование физических процессов.

Модель «Движения тела, брошенного под углом к горизонту» в электронных таблицах.

Сложение движения.Расчет параметров.

Попади в цель. Исследование модели

Исследование физических моделей.

Модель движения небесных тел и планет.

Вычисление высоты стационарной орбиты спутника Земли.

Формулы движения по окружности

Модель движения планет.

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

Вывод формулы закона сохранения импульса.

График движения ракеты.

Модель школьного опыта с «мёртвой петлёй». Программирование в среде Турбо – Паскаль.

Закон сохранения энергии.

График движения самолета.

Определение КПД простого механизма с использованием компьютерного эксперимента.

Теория механизмов. Сложение сил.

Компьтерный эксперимент.

Модель управления процессом. Значение обратной связи.

Двигатель внутреннего сгорания.

Автоколебания.

Модель часового механизма.

Модель управления процессом. Значение обратной связи.

Двигатель внутреннего сгорания.

Уравнение колебаний.

График колебаний.

Экспотенциальная запись числа при решении задач молекулярной физики

Молекулярно - кинетическая теория

Модель массы и размеров молекул.

Построение графиков изопроцессов в среде автоматизации вычислений MathCad.

Газовые законы.

Цикл Карно.

Графическое изображение электрических и магнитных полей.

Электродинамика. Электрическое и магнитное поле.

Силовые линии.

Изучение электрических цепей с помощью учебной программы «Открытая физика».

Закон Ома.Закон Кирхгофа.

Модель действующей электрической цепи.

Моделирование движения заряженной частицы в электрическом и магнитном поле.

Движение электронов в электро - лучевой трубе.

Исследование движения.

Моделирование логических элементов ЭВМ с помощью электрических схем.

(Полусумматор, триггер).

Логические схемы.

Моделиролвание схем.

Презентация собственных разработок.

Литература:

  1. Информатика. Задачник – практикум. Том 2./ Под ред. Семакина И.Г., Хеннера Е.К. - М.: "Лаборатория". 2001.
  1. Балаш В.А. Задачи по физике и методы их решения. Пособие для учителя. - М.: "Просвещение", 1983.
  1. Самоучитель. Турбо Паскаль "7,0". Москва - Санкт Петербург - Нижний Новгород - Ростов на Дону - Екатеринбург - Самара - Киев - Харьков - Минск. 2003.
  1. Рымкевич А.Г. Сборник задач по физике.9 -11 классы. - М.: "Дрофа",2000.
  1. Могилев А.В., Пак Н.И. Информатика. / Поб ред.Хеннера Е.К. - М.: "АСА Дема",1999.
  1. Таевский А.Ю. Самоучитель работы в М. Office, Word 27\ 2000 Ekcel 97|2000/, электронная почта. Киев, "А.С.К.", 2002.
  1. П. И. Совертков. Занимательное компьютерное моделирование в элементарной математике. Учебное пособие. - М.: "Гелиос АРВ", 2004.
  1. Н. Угринович. Информатика и информационные технологии. Учебник для 10 -11 кл./ Н.Д. Угринович, - М.: "Бином. Лаборатория знаний", 2003.
  1. Касьянов В.А. Физика. 10 класс. Учебник. - М.: "Дрофа", 2001.

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

Выбор оптимального программного обеспечения для моделирования часто бывает трудным, так как непросто найти программу, в которой был бы весь необходимый функционал. FreelanceToday предлагает вашему вниманию 20 бесплатных программ для 3D-моделирования.

Daz Studio – это мощное и при этом совершенно бесплатное программное обеспечение для трехмерного моделирования. Нельзя сказать, что это легкий для освоения инструмент – новичкам придется долго изучать возможности программы. Создатели программы позаботились о пользовательском опыте, но удобство Daz Studio удастся оценить далеко не сразу. Одной из фишек программы является создание 3D-изображений с GPU ускорением во время рендеринга, что дает возможность создавать очень реалистичные модели. Также в Daz Studio имеется поддержка создания сцен и функционал для анимации моделей.

Доступно для : Windows, | OS X

Бесплатное программное обеспечение для 3D-моделирования Open SCAD создано для серьезного проектирования (промдизайн, интерьеры, архитектура). Художественные аспекты создателей программы интересовали в гораздо меньшей степени. В отличие от других программ подобного плана, Open SCAD не является интерактивным инструментом – это 3D-компилятор, который отображает детали проекта в трехмерном виде.

Доступно для: Windows, | OS X | Linux

Программа AutoDesk 123D – это большой набор различных инструментов для CAD и 3D-моделирования. С помощью программы можно проектировать, создавать и визуализировать практически любые 3D-модели. AutoDesk также поддерживает технологию 3D-печати. Основной сайт AutoDesk 123D имеет несколько сателлитов, где можно найти множество интересных бесплатных 3D-моделей, с которыми можно поэкспериментировать или просто использовать их в личных целях.

Доступно для: Windows, | OS X | IOS |

Meshmixer 3.0 позволяет проектировать и визуализировать 3D-конструкции путем объединения двух или нескольких моделей всего за несколько простых шагов. В программе для этого имеется удобная функция «cut and paste», то есть можно вырезать из модели нужные части и вставлять их в другую модель. Программа даже поддерживает лепку – пользователь может создавать виртуальную скульптуру, формируя и уточняя поверхность точно так же, как если бы он лепил модель из глины. И все это в режиме реального времени! Программа поддерживает 3D-печать, готовые модели полностью оптимизированы для отправки в принтер.

Доступно для : Windows, | OS X

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

Доступно для : Windows

Бесплатная программа 3D Crafter предназначена для 3D-моделирования в режиме реального времени и создания анимаций. Основная фишка данного редактора – интуитивно понятный подход «drag-and-drop». Сложные модели могут быть построены с помощью простых форм, программа поддерживает скульптурное моделирование и 3D-печать. Это один из самых удобных инструментов для создания анимации.

Доступно для : Windows

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

Доступно для : Windows

Бесплатное программное обеспечение LeoCAD – это система автоматизированного проектирования виртуальных моделей LEGO. Есть версии для Windows, Mac OS и Linux. Программа может стать хорошей альтернативой Lego Digital Designer (LDD), так как имеет простой интерфейс, поддерживает ключевые кадры и работает в режиме анимации. Именно поддержка анимации выделяет LeoCAD на фоне других программ подобного плана.

Доступно для : Windows, | OS X | Linux

Программа VUE Pioneer поможет создать трехмерную модель для визуализации ландшафта. Софт может быть полезен для продвинутых пользователей, которые ищут удобные инструменты для рендеринга. Pioneer позволяет создавать удивительные 3D-ландшафты благодаря наличию большого количества пресетов и обеспечивает прямой доступ к Cornucopia 3D -контенту. С помощью программы можно создать множество эффектов освещения.

Доступно для : Windows, | OS X

Netfabb – это не только программа для просмотра интерактивных трехмерных сцен, с его помощью можно анализировать, редактировать и изменять 3D-модели. Программа поддерживает 3D-печать и является самым легким и простым инструментом с точки зрения установки и использования.

Доступно для : Windows, | OS X | Linux

Бесплатная программа NaroCad – это полноценная и расширяемая система автоматического проектирования, основанная на технологии OpenCascade, и работающая на платформах Windows и Linux. В программе имеется весь необходимый функционал, имеется поддержка основных и усовершенствованных операций трехмерного моделирования. Функции программы могут быть расширены с помощью плагинов и программного интерфейса.

Доступно для : Windows, | Linux

LEGO Digital Designer позволяет строить трехмерные модели с использованием виртуальных кирпичиков (блоков) конструктора LEGO. Результат можно экспортировать в различные форматы и продолжить работу в других 3D-редакторах.

Доступно для : Windows, | OS X

Бесплатную программу ZCAD можно использовать для создания 2D и 3D- чертежей. Редактор поддерживает различные платформы и обеспечивает большие углы обзора. Наличие множества удобных инструментов, позволяет решить большинство проблем, связанных с моделированием трехмерных объектов. Пользовательский интерфейс программы простой и понятный, что существенно облегчает процесс рисования. Готовый проект можно сохранить в формате AutoCAD и других популярных 3D-форматах.

Доступно для : Windows, | Linux

Бесплатная версия Houdini FX, Houdini Apprentice, пригодится студентам, художникам и любителям, создающим некоммерческие проекты трехмерных моделей. Программа обладает несколько урезанным, но вместе с тем достаточно широким функционалом и тщательно продуманным пользовательским интерфейсом. К недостаткам бесплатной версии можно отнести водяной знак, который отображается на 3D-визуализации.

Доступно для : Windows, | OS X | Linux

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

Доступно для : Windows

FreeCAD – это параметрический 3D-моделлер, разработанный для создания реальных объектов любого размера. Пользователь может легко изменить дизайн, используя историю модели и изменяя отдельные параметры. Программа мультиплатформенная, умеет считывать и записывать различные форматы файлов. FreeCAD позволяет создавать собственные модули и затем использовать их в дальнейшей работе.

Доступно для : Windows, | OS X | Linux

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

Доступно для: Windows, | Linux

Программу MeshMagic можно использовать для 3D-рендеринга файлов, а также для создания двухмерных объектов или их конвертации в 3D. Программное обеспечение имеет интуитивно понятный интерфейс и может использоваться для решения самых разных задач. В настоящее время Mesh Magic поддерживает только Windows. Результат сохраняется в популярном формате STL, который можно открыть и редактировать в большинстве онлайн и оффлайн инструментов для 3D-моделирования.

Доступно для : Windows

Open Cascade – это комплект разработчика программного обеспечения, предназначенный для создания приложений, связанных с 3D-CAD. Он включает в себя специальные, разработанный сообществом C++ библиотеки классов, которые можно использовать для моделирования, визуализации и обмена данных, а также для быстрой разработки приложений.

Доступно для : Windows, | OS X | Linux