7 заметок с тегом

проект

Поздравляю девочек с 8 марта!

Я не знаю, как так получилось, но вот так совпало. Читал Александра Маркова об эволюции человека. Из главы о «митохондриальных Евах»:

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

Мне захотелось наглядно проиллюстрировать этот феномен, и я сделал очередной симулятор с визуализацией. Закончил как раз сегодня утром. И понял, что... женские особи... Ева... проматерь... митохондрии... да это же 8 марта!

Так что получилась своеобразная 8-мартовская открытка.
Запускайте:


Девочки, с 8 марта!

;-)

Микро- и макроуровень на примере симулятора лифтов

Симулятор лифтов показывает детали и общий вид.
Общий вид: графики собирают и показывают данные за весь период симуляции.
Детали: здание, этажи, люди, лифты — показывают происходящее в данный момент.
http://cashin.ru/vis/lift/

Детали — микроуровень. Детали удобно наблюдать на низкой скорости. Поставьте в симуляторе скорость хода времени на единицу:

На микроуровне видно, как люди движутся по этажам, как открываются двери лифтов, как входят и выходят.

В чем польза отображения микроуровня при визуализации данных?

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

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

Допустим, без отображения человечков и лифтов симулятор рисовал бы только графики. Это вызывало бы меньше доверия у зрителя: как построены эти графики? На основе чего? Откуда взялись числа?

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

Если микроуровень понятен, он становится не нужен — зритель ускоряет ход времени,

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

Другой пример

Смотрите, как анимация показывает смысл формул условной вероятности:
http://setosa.io/ev/conditional-probability/
Автор — Виктор Пауэл (Victor Powell)

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

2017   визуализация   лифты   проект

Как симулятор лифтов рисует графики

Продолжение.
Начало тут: http://www.cashin.ru/blog/all/lift-upd1/

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


Симулятор рисует графики по ходу времени. Один столбец — примерно минута симуляторного времени. Столбцы состоят из большого количества полупрозрачных точек. По мере прорисовки графики накапливают большое количество расчетов.


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

Визуализация сделана с помощью библиотеки d3js,
https://d3js.org

Прожарить парочку лифтов:
http://www.cashin.ru/vis/lift/

В следующем посте — про микро- и макроуровень.

2017   canvas   svg   визуализация   лифты   проект   симулятор

Обновился симулятор лифтов

Что за симулятор?

Это программа, которая показывает, как люди ездят на лифтах. Сколько времени посетители ждут лифта в холле. Сколько лифтов требуется, чтобы перевезти людей без задержек.
http://cashin.ru/vis/lift

Зачем?

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

Сначала я планировал обойтись без пользовательского интерфейса. Казалось, настроек в виде кода будет достаточно. Но без интерфейса управлять симулятором оказалось тяжело. Пришлось сделать и интерфейс.

Что в этом интересного?

Интересно наблюдать, как при разных настройках работают лифты и перемещаются люди.

При каких условиях лифты ездят почти пустые,

а при каких собирается толпа в лифтовых холлах:


Ржачно смотреть, как два очень быстрых и вместительных лифта не справляются с 50-этажным зданием и графики выходят из берегов:


А что будет, если лифты медленные, но вместительные? Попробуйте.
Получился и генератор для работы, и прикольная штука:
http://cashin.ru/vis/lift


Как пользоваться?

Симулятор запускается сразу как только вы зашли на страницу. Работает по заданным настройкам. Нажмите паузу — появятся настройки. Меняйте количество этажей, лифтов и другие параметры. Запускайте и смотрите, как изменится загрузка лифтов.


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

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


Почему люди едут именно на эти этажи?

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


Каждая точка показывает перемещение одного человека на определенный этаж в определенный момент. По горизонтали — временная ось, по вертикали — номер этажа. Нижние этажи показаны синим, верхние — красным. Чем выше, тем краснее.


Сколько данных показывает симулятор?

При настройках 500 человек симулятор каждые 20 миллисекунд генерирует 50 × 500 = 25 000 записей в секунду. Каждая запись содержит координаты, номер этажа, номер лифта, время ожидания и перемещения.

Симулятор собирает и показывает записи о перемещении людей за 11 часов, с 9 до 20. Это 39 600 секунд. Получается 39 600 × 25 000 = 990 000 000 записей за один день работы лифтов.

Насколько реалистично программа показывает работу лифтов?

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

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

Играйте:
http://cashin.ru/vis/lift

Как симулятор рисует графики — в следующих постах.

Симулятор лифтов

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

http://cashin.ru/vis/lift/

Конвертер типов оперения в Аэродиагре

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

Чтобы конвертер работал, включите галочку «Конвертировать» рядом с переключателем V и Т. При смене типа оперения новое оперение будет соответствовать уже рассчитанным коэффициентам устойчивости.

Пробуйте: aerodiagra.ru/constructor/

Как работает конвертер

В формировании коэффициентов устойчивости участвуют, в частности, длина плечей оперения, площади вертикального (ВО), горизонтального (ГО), или V-образного оперения с углом V. Когда вы переключаете тип оперения, конвертер меняет одни аэродинамические поверхности на другие. Программа рассчитывает поверхности, которые обеспечивают уже подобранные вами характеристики, но уже при другой конструкции. Именно такой смысл я вложил в инструмент: «Я хочу получить модель с указанными свойствами, но пробую разные конструкции оперения».

Это практический инструмент для расчета хвоста — вы сразу видите результат на схеме модели.

Что делает конвертер при переключении с V-образного оперения на Т-образное

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

Формула определения составляющих Т-оперения, без учета расстояний до крыла:
Площадь горизонтали = площадь V-оперения × (косинус (угол V))²
Площадь вертикали = площадь V-оперения × (синус (угол V))²

Важная деталь: конструктор не просто предлагает площади, но и повторяет форму источника — V-образного оперения. Это оперение, учитывающее настройки автора.

И, наоборот, что делает конвертер при переключении с T-образного оперения на V-образное

Формула определения параметров V-оперения, без учета расстояний до крыла:
Площадь V-оперения = площадь вертикали + площадь горизонтали
Угол V-оперения = арктангенс (корень (площадь вертикали / площадь горизонтали))

Аналогично, за исключением определения позиции V-образного оперения — аэродинамического плеча. В предыдущем случае это было тривиально: вертикаль и горизонталь ставятся там же, где было V. Здесь же вертикальное и горизонтальное оперения могут изначально располагаться на разных расстояниях от крыла, и чаще на моделях это именно так. Возникает вопрос: какое плечо должно быть у V-образного? Расположить V посередине между ВО и ГО? Или на месте горизонтального? Или на месте вертикального? Посмотрим, что дает каждый из вариантов.

1. Если я располагаю V-образное посередине между ВО и ГО

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

Недостатки:
— Изменение плеча ВО приведет к изменению коэффициента спиральной устойчивости (B), который зависит от плеча, но не компенсируется площадью ВО.
— Расположение V-оперения посередине между пользовательскими ВО и ГО, это, своего рода, догадка и предположение. Система думает, что если я поставил ВО сюда, и ГО сюда, то располагать V посередине будет нормально. Догадываться о желаниях пользователя это хорошо, но лишние догадки не нужны там, где без них можно обойтись. Не стоит генерировать значения, которые сам пользователь пока не выбирал. Я отказался от этого варианта.

2. Если я располагаю V-образное на месте ГО

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

Недостаток: как и в первом варианте, уплывает коэффициент спиральной устойчивости (B), и по той же причине — он не компенсируется скорректированной площадью вертикали, как это ни странно — таковы формулы. От этого варианта я тоже отказался.

3. Если я располагаю V-образное на месте ВО

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

Горизонтальная составляющая переезжает к вертикальной. Плечо и площадь вертикальной составляющей сохраняются. Коэффициент спиральной устойчивости (B) сохраняется, это хорошо.

Конвертер использует этот вариант.

Следствие работы алгоритма конвертера

Если изначально ГО и ВО разнесены и находятся на разных расстояниях (как на моделях метательных планеров), по после переключения Т-V второе переключение V-T не обеспечит прежней формы и расположения — ВО и ГО теперь будут рядом, на одном расстоянии до крыла. Будут обеспечены правильные коэффициенты устойчивости, но не разница в расположении ГО и ВО.

Достаточно просто, но попробуйте на тестовой модели, чтобы увидеть принцип.

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

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

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

Создавайте модели: aerodiagra.ru/constructor/

Аэродиагра — конструктор авиамоделей

Закончил большую работу. Хотя, скорее, это начало.

http://aerodiagra.ru

Конструктор радиоуправляемых моделей.

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

Сейчас проект — конструктор моделей плюс очень сырой набросок каталога с кросс-фильтрами.

Сначала расскажу о каталоге, с него все началось.
Как и многие другие любители летающих радиоуправляемых моделей, для расчетов моделей, всяческих деталей вроде сервоприводов, лонжеронов и прочего я раньше пользовался обычными файлами. При вводе параметров некоторые эксель-калькуляторы предлагают для сравнения параметры других моделей. Известный эксель-калькулятор Кертиса Сатера (Sailplane Calc by Curtis Suter, http://www.tailwindgliders.com/Files.html ) на вкладке результатов показывает рекомендации по параметрам. Люди сравнивают со своими моделями.

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

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

О конструкторе

Я сделал и открыл проект расчета летающих моделей по принципам фиксированного срока и гибкого состава функционала. Сложность проекта этому препятствовала (а как же), и менее важный с точки зрения цели функционал я начал выкидывать и откладывать. В результате получился небольшой, работоспособный конструктор. Возможности — минимум задуманного. Изначально в плане было куда больше функций, чем сделано: aerodiagra.ru/constructor/.

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

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

Что удалось реализовать
Сейчас я сделал минимальный инструмент для ответов на несколько вопросов:
— Какого размера нужно делать оперение?
— Какой должна быть длина хвостовой балки?
— Некоторые моделисты говорят, что V-оперение менее эффективно. Насколько эффективно оперение моей модели?
— Что будет, если я поменяю угол плоскостей V-оперения?
— Как будет выглядеть моя модель?
— На модели Х красивое маленькое горизонтальное оперение. Что если я сделаю у себя такое же?
— У меня сломалось крыло, и я попробую крыло от другой модели. Как поменяется поведение планера?
— Где должен быть центр тяжести новой модели?
— Насколько высоко надо поднять консоли, увеличить угол, для управления без элеронов?
— Насколько легкой должна быть модель с такой площадью крыла?
— Какой тип оперения подойдет этой модели?

Это довольно простые вопросы. Сейчас это можно рассчитать в конструкторе aerodiagra.ru/constructor/.

Чем сейчас пользуются авиамоделисты в мире:

Калькулятор планеров Кертиса Сатера
http://www.tailwindgliders.com/Files.html

Калькулятор крыльев с распределением подъемной силы
http://www.aerodesign.de/aero/LIFTROLL.xls

Расчет прочности лонжеронов
http://www.acrodesigns.com/excel/SparStrength.xls

Расчет композитных крыльев
http://www.rcgroups.com/forums/showatt.php?attachmentid=3131048&d=1269043607

Расчет центра тяжести летающего крыла
http://fwcg.3dzone.dk

Расчет планеров, с трехмерным проецированным изображением:
http://envisiondesignusa.com/evdusa/Plane_Geometry_3-D_Plots.html

Еще одна штука для балансировки:
http://www.geistware.com/rcmodeling/cg_super_calc.htm

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

Моя собственная таблица для расчетов выглядела примерно так (ужас полный):

(очень малая часть)

Есть над чем поработать. Времени мало, поэтому я делаю проект малыми частями. Это дает возможность повернуть процесс в любой момент. Капитального строительства — необходимый минимум. Все переделывается на ходу. Английская версия — переведены только базовые вещи:
http://aerodiagra.com

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

О проекте: http://aerodiagra.ru/
О конвертере типов оперения: http://aerodiagra.ru/about/tailconverter/

Страницы с описанием проекта сделаны наспех. Их тоже буду доделывать. Все будет меняться, а что-то вообще не доживет.

Почему я это делаю

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

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

Хорошо, если это пригодится и другим.

2014   Аэродиагра   дизайн   проект