nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

PhysUnitCalc v. 0.4: двоичные приставки, биты, байты и люмены

Все-таки работа в подполье аукнулась: простудился, сижу дома. Ну хоть над программками поработаю.

Представляю новую версию PhysUnitCalc, скачать можно отсюда.
Основные изменения:
- раньше приставку "кило-", "мега-" и пр. можно было прибавить к любой величине, теперь только к заранее оговоренным, с пометкой "PrefixOK". Сейчас, скажем, можно использовать миллисекунды, но нельзя миллиминуты или милличасы (равно как и микрочасы, киломинуты и пр.), точно так же как нельзя использовать миллиградусы или милли-астрономические единицы (ма.е. - не пишется так никогда!)
- приставки в кои-то веки заданы не в коде, а тоже в текстовых файлах, их количество расширено: появились "атто" (а, русская и английская), "дека" (да, da), "гекто" (г, g), "пета" (П, P), "экса" (Э,E), "зетта" (З,Z), "йотта" (Й,Y), а также двоичные приставки Ki, Ки (1024), Mi, Ми (10242), Gi, Ги (10243) и вплоть до Yi и Йи (красивая приставка Йоби)
- Наконец-то введены все базовые и производные величины СИ и именные величины СГС (Гаусс, Эрстед и пр), а также единицы измерения информации - байт (Б, B) и бит (так и есть, бит или bit).


- введена единица измерения моль (mol) и константа Na (число Авогадро). Если включить Na=1, то 1 mol [] даст
Для преобразования из [mol] в [] выражение домножено на (шт)^-1*Na
6,02214000000003E23
(да, число Авогадро имеет размерность шт/моль)
- введены единицы измерения люмен (лм, lm), люкс (лк, lx), кандела (кд, cd) и константа LumPerW=683 лм/Вт. Если включить LumPerW=1, то люмены можно будет неявно преобразовывать в ватты, но если мы имеем дело с длиной волны, отличной от 555 нм, нужно еще самостоятельно домножить результат на безразмерную функцию видности, выражающую спектральную чувствительность человеческого глаза.

Пример работы: на высоте 2.7 метра висит светодиод на 1000 лм с ламбертовской диаграммой направленности. Хочется узнать освещенность, которую он создаст на уровне пола строго под ним:
> 1000 lm / pi / (2.7 m)^2
43,663907569793 лк
На π мы поделили, чтобы получить силу света в направлении строго вниз (это известное свойство ламбертовской поверхности), а ее в свою очередь мы поделили на квадрат расстояния, чтобы найти освещенность на уровне пола. По ходу дела может возникать путаница между лм и кд, а также освещенностью (лк) и яркостью (кд/м^2), потому что в светотехнических формулах очень свободно относятся к стерадианам, часто вводя их только в определениях (в противном случае сила света и световой поток имели бы одну размерность), а потом опуская в выкладках. Но если установлено rad=1, то нерадивую яркость всегда можно будет привести к освещенности и наоборот.

- введена размерность "удельная энергия", ее основная единица Дж/кг, но введены также Грей (Гр, Gy) и Зиверт (Зв, Sv), имеющую ту же размерность. Сами собой в процессе вычислений они получиться не могут, но к ним можно привести ответ в Дж/кг, но, разумеется, на свой страх и риск, ведь всего-навсего сменится название единицы.
- введена размерность "частота событий", ее основная единица шт/с, но введен также Беккерель (Бк, Bq), равный также шт/с. Сам собой в процессе вычислений он получиться не может, но к нему можно привести ответ в шт/с или просто с^-1, за физический смысл, как обычно, отвечает составитель формулы.
- введены величины тесла (Т, Тл), гаусс (G, Гс), сименс (mho, См, английского S нет потому, что конфликтует с секундой, у нас по-прежнему наименования без учета регистра!) и эрстед (Oe, Э). Не уверен, что правильно ввел гаусса и эрстеда, первый имеет ту же размерность, что и тесла, а второй - А/м, может стоило их выразить напрямую через основные единицы СГС - сантиметры, граммы и секунды, но по крайней мере ответы будут получаться правильные.
- введены единицы измерения информации - бит (так и надо вводить: бит или bit) и байт (B, Б), 1 КБ = 1000 Б, а 1 КиБ = 1024 Б, т.е десятичные приставки СИ не обретают специального смысла при работе с битами и байтами, они по-прежнему десятичные, а двоичные отличаются второй буквой и или i. Они по-прежнему не очень распространены, но так получается хоть какой-то порядок. Скажем, мы можем посмотреть, какова емкость терабайтного диска (производители винчестеров пользуются десятичными приставками) в "честных двоичных гигабайтах":
> 1 TB [TiB]
0,909494701772928 TiB
ага, почти 100 ГБ съели!

или, оценить, какой размер должно иметь кино в HD, если его длительность 1.5 часа, разрешение 1920х1080, 24 кадра в секунду, и на кодирование 1 пиксела дается в среднем 0.25 бит (если меньше - начнутся весьма заметные артефакты изображения):
> 0.25 bit * 1920 * 1080 * 24 s^-1 * 1.5 hr [GiB]
7,82132148742677 GiB
> 0.25 bit * 1920 * 1080 * 24 s^-1 * 1.5 hr [GB]
8,39808 GB

а теперь, сколько потребуется времени, чтобы скачать его через локальную сеть 100 МБит/с, если реальная скорость передачи данных около 50 МБит/с:
> Ans / 50 Mbit/s
1343,6928 с
> ans [min]
22,39488 min

- введено несколько размерностей для денег: доллары ($), рубли (р) и у.е. (так и есть: у.е.). Они между собой никак не связаны, но можно самому написать что-нибудь типа:

> RublesPerBuck = 58.7 р/$
58,7 р/$
> 50 $ * RublesPerBuck
2935 р

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

Опять вспомним наши светодиоды. Скажем, есть лампочка накаливания на 40 Вт, она дает 400 лм света в течение 1000 часов, сама стоит 10 рублей, а 1 кВт*ч стоит 4 рубля. Посмотрим, сколько мы тратим на эту одну лампочку:
> 10 р + 1000 hr * 40 W * 4 р/кВт/ч
170 р
а "люмен-лет" получаем:
> 400 lm * 1000 Hr [lm*years]
45,6308464522017 lm*years
или, 1 люмен-год стоит:
> 400 lm * 1000 Hr [lm*years] / 170 р [lm*years / р]
0,26841674383648 lm*years / р

теперь возьмем энергосберегайку на 8 Вт, которая дает те же 400 лм, но светит в среднем 8000 часов, а стоит 150 р (может, уже и меньше, давно не смотрел):
> 400 lm * 8000 Hr [lm*years] / (150 р + 8000 ч * 8 Вт * 4 р/кВт/ч) [lm*years / р]
0,899129979353728 lm*years / р
т.е за каждый рубль мы получаем больше суммарной световой энергии. А теперь светодиод 7 Вт, дающий 400 лм, но светит в среднем 20 000 часов (на упаковке стоит 40 000 часов, но будем консервативны), а стоит 200 р:
> 400 lm * 20000 Hr [lm*years] / (200 р + 20000 ч * 7 Вт * 4 р/кВт/ч) [lm*years / р]
1,20081174874215 lm*years / р
любопытный факт: если мы все-таки зададимся средним сроком службы в 40 000 часов, результат не сильно изменится:
> 400 lm * 40000 Hr [lm*years] / (200 р + 40000 ч * 7 Вт * 4 р/кВт/ч) [lm*years / р]
1,38275292279399 lm*years / р
Оно и понятно, если посмотреть на выражение - при увеличении срока службы лампочки оно асимптотически стремится к
> 400 lm / (7 Вт * 4 р/кВт/ч) [lm*years / р]
1,62967308757863 lm*years / р
т.е значение имеет лишь потребленная энергия, а не цена лампочки, "размазанная" по ее сроку службы.


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

Но если что-то непонятно - обращайтесь.
Tags: physunitcalc, программки
Subscribe

Recent Posts from This Journal

  • Нахождение двух самых отдалённых точек

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

  • Слишком общительный счётчик

    Вчера я чуть поторопился отсинтезировать проект,параметры не поменял: RomWidth = 8 вместо 7, RamWidth = 9 вместо 8, и ещё EnableByteAccess=1, чтобы…

  • Балансируем конвейер QuatCore

    В пятницу у нас всё замечательно сработало на симуляции, первые 16 миллисекунд полёт нормальный. А вот прошить весь проект на ПЛИС и попробовать "в…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 4 comments