LINUX.ORG.RU

Параметры воды и водяного пара

 , , , ,


1

3

Всем добра ИТТ! Возникла мысль накатать небольшую прогу для расчёта. Сам я от программинга далёк, посему думаю использовать Lazarus. Но ко всему прочему ещё присутствует необходимость расчёта параметров воды и водяного пара. В богомерзкой системе для этого есть Water Steam Pro. Как в этом вопросе дела обстоят на онтопике? Преимущество WSP, что он цепляется хоть к экселю, хоть к чему угодно. Правда если какая-то прога писана под него, то и обломаться наверное можно из-за отсутствия. В общем, интересуют аналоги.

накатать небольшую прогу для расчёта

Расчёта чего?

необходимость расчёта параметров воды и водяного пара

Каких параметров?

thunar ★★★★★ ()

Забабахай формулу в LibreOffice Calc будет тебе расчёт. Зачем тебе Lazarus для этого?

UVV ★★★★★ ()
Ответ на: комментарий от alex4321

Теплогидравлический. Не в одно действие. LibreOffice Calc или же Excel в данном случае дохлый аппендикс. В идеале: накодить прогу, в которую задаёшь входные параметры, на выходе параметры теплообменного аппарата.

DiversantBivnev ()

Почему именно прога на Lazarus?

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

Deleted ()
Последнее исправление: frigate_freedom (всего исправлений: 1)
Ответ на: комментарий от Deleted

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

DiversantBivnev ()

В богомерзкой системе для этого есть Water Steam Pro. Как в этом вопросе дела обстоят на онтопике? Преимущество WSP, что он цепляется хоть к экселю, хоть к чему угодно.

Попинай авторов, не собираются ли они выпустить версию под линукс, координаты на сайте есть. А ещё я смотрю, она стоит 23 тыр...

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

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

DiversantBivnev ()
Ответ на: комментарий от peregrine

Ну как... В качестве курсача для студентоты вполне бы подошёл. Собственно говоря, у меня он и был. Но там до меня уже умные люди посчитали. Всего-то нужно было пройтись по готовым цифрам. Если приводить в расписанном виде, то десяток страниц наверное получится. А прога - ввёл данные, нажал клавишу, получил результат.

DiversantBivnev ()
Ответ на: комментарий от DiversantBivnev

Если это и вправду так, то в принципе за вечер-другой (по другому студенты курсачи не пишут) можно написать всё с нуля (не все 300 функций из Water Steam Pro, а те, которые используются), если умеешь программировать и понимаешь физическую суть дела.

peregrine ★★★★★ ()
Ответ на: комментарий от DiversantBivnev

А ещё альтернативы имеются? Больше - лучше

Я в данном вопросе, к сожалению, исключительно мимокрокодил, просто прочитал ОП, и самому стало интересно - ведь это пример того самого специализированного профессионального софта, на проблемы с которым так часто жалуются на ЛОРе. Нашёл первое в гугле, похожее по заявленной проблематике, по словам water steam pro linux (к сожалению, результаты выдачи сильно зашумлены тем steam, который про игры).

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

hobbit ★★★★★ ()
Ответ на: комментарий от DiversantBivnev

идеале: накодить прогу, в которую задаёшь входные параметры, на выходе параметры теплообменного аппарата.

Существуют всякие scilab и octave для подобных вещей.

leonid ()

А не проще табличные значения взять?

ZERG ★★★★★ ()
Ответ на: комментарий от ZERG

Суть получать в каждом конкретном случае нужные параметры, они естественно будут различные. Брать табличные - это всё равно что на калькуляторе со справочником считать.

DiversantBivnev ()
Ответ на: комментарий от DiversantBivnev

Исходя из моего скромного опыта, обычно овчинка выделки не стоит: у тебя либо должно быть чертовски много «случаев» для чего-то, либо у тебя какая-то суперточная MD.

ZERG ★★★★★ ()
Ответ на: комментарий от DiversantBivnev

покажи хоть как выглядит «приблизительная программа»

mul4 ★★★★★ ()

У меня есть вот что:

https://bitbucket.org/budden/cl-stirling-engine

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

den73 ★★★★★ ()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от mul4

В программе по ситуации рисуется подобная схема http://i.imgur.com/BFTqwsx.png

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

Что касается «чертовски много случаев» - их хватает. Режимы часто меняются, соответственно и исходные данные.

DiversantBivnev ()
Ответ на: комментарий от hobbit

А ещё альтернативы имеются? Больше - лучше

Я в данном вопросе, к сожалению, исключительно мимокрокодил,

Да брось Hobbit! Ты же дал ссылку - я вот пошёл по ней и нашёл кучу коммерческого софта, и кучку свободного... Вилимо ТС так сильно надо или он Ъ :-)

anonymous ()

Попытался в лазаре подцепить freesteam. Здесь в пункте 1 описано, что задаётся SteamState S = freesteam_set_ph(p,h). Но, если в своей проге я задаю

S := freesteam_set_pT(10,100)
то прога просто вываливается на такой строке. Саму функцию объявляю так:
function freesteam_set_pT(p,t:double):double; cdecl;
    external 'libfreesteam.so' name 'freesteam_set_pT';

ЧЯДНТ?

DiversantBivnev ()
Ответ на: комментарий от dk-

Боишься не осилить?

Во избежание флуда со мной в этой теме.

rezedent12 ☆☆☆ ()

Нашлись добрые люди на форумах Lazarus'a, подсказали. И вот что требуется:

type
    SteamState_R1 = record
        p, T: Double;
    end;
    SteamState_R2 = record
        p, T: Double;
    end;
    SteamState_R3 = record
      rho, T : Double;
    end;
    SteamState_R4 = record
      T, x : Double;
    end;
 
    SteamStateRec = record
      case region : char of
        #0: (R1: SteamState_R1);
        #1: (R2: SteamState_R2);
        #2: (R3: SteamState_R3);
        #3: (R4: SteamState_R4);
    end;                                    

Функция, которая задаёт параметр среды. По давлению (p) и температуре (t):

function freesteam_set_pT(p,t:double):SteamStateRec; cdecl;...

И функция, которая возвращает нужный параметр. В данном случае v - удельный объём:

function freesteam_v ( SteamState: SteamStateRec ): double;
        cdecl; external 'freesteam.dll' name 'freesteam_v'; 

DiversantBivnev ()
Ответ на: комментарий от Deleted

Почему именно прога на Lazarus?

Автономный запускаемый файл без зависимостей от внешних библиотек определённых версий.

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

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

iZEN ★★★★★ ()
Ответ на: комментарий от DiversantBivnev

Тебе там прямо указывают:

Fully-featured wrappers: Python (2.x, 3.x) , Modelica, Octave, C#, VB.net, MathCAD, Java, Android, MATLAB

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

Ты ведь не зря, спустя почти год поднимаешь тему?

Возьми уже октаву или максиму. Уже всё сделал бы давно.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.