Вверх ↑
Этот топик читают: Гость
Ответов: 142
Рейтинг: 14
#1: 2018-09-03 21:30:41 ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2021-05-27 08:37:20
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8701
Рейтинг: 806
#2: 2018-09-03 22:49:26 ЛС | профиль | цитата
Stalevar, вычисления-то вы делаете по формулам, вот и выложите эти формулы (с обозначением параметров), а то в вашей схеме не совсем понятно "что, где, когда"
карма: 19

0
Ответов: 16884
Рейтинг: 1237
#3: 2018-09-03 23:07:08 ЛС | профиль | цитата
Леонид, У него вечный вопрос: Что было раньше: яйцо или курица?
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 142
Рейтинг: 14
#4: 2018-09-03 23:08:44 ЛС | профиль | цитата
В каком виде чтоб вы поняли?

Редактировалось 2 раз(а), последний 2021-03-04 11:29:27
карма: 0

0
Ответов: 142
Рейтинг: 14
#5: 2018-09-04 00:09:44 ЛС | профиль | цитата
Tad
Я не пойму про какие яйца вы говорите.
Вы у меня спросили для чего, на что я вам ответил схемой.
карма: 0

0
Ответов: 16884
Рейтинг: 1237
#6: 2018-09-04 08:04:39 ЛС | профиль | цитата
Stalevar_5.jpg
Stalevar писал(а):
Я не пойму про какие яйца вы говорите.
Для того, чтобы родилась курица, нужно яйцо.
А для того, чтобы появилось яйцо, нужна курица.
карма: 24
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 142
Рейтинг: 14
#7: 2018-09-04 08:17:16 ЛС | профиль | цитата
Tad
Для того, чтобы родилась курица из яйца, нужно яйцо оплодотворенное петухом.
Так что петух появился первый
А по теме я вас не пойму, или вы меня.
карма: 0

0
Ответов: 8701
Рейтинг: 806
#8: 2018-09-04 09:29:24 ЛС | профиль | цитата
Stalevar писал(а):
В итоге дожно получится:
"Эл ср-ка" = 11357
"FeMn" = 13984
Нужно как то сделать цикл с условием разницы между до расчета и после.

Эта "разница" должна стать равной "0" или надо иметь определённый вес на выходе (например 12000) ?
карма: 19

0
Ответов: 142
Рейтинг: 14
#9: 2018-09-04 09:36:06 ЛС | профиль | цитата
Леонид, нужно получить правильный расчет.
То есть вот
"Эл ср-ка" = 11357
"FeMn" = 13984

--- Добавлено в 2018-09-04 09:37:51

Да да, проверка на разницу до расчета и после должно быть 0

--- Добавлено в 2018-09-04 09:38:28

Без таймера

--- Добавлено в 2018-09-04 09:39:09

Так как таймер тупо делает 5 циклов, а проверки нет.

Редактировалось 4 раз(а), последний 2018-09-04 09:39:09
карма: 0

0
Ответов: 8701
Рейтинг: 806
#10: 2018-09-04 11:09:47 ЛС | профиль | цитата
Stalevar, т. е. вы должны получить 12000 кг сплава с содержанием марганца Х% и углерода У%, надо вычислить сколько взять имеющегося сплава с известным содержанием марганца и углерода и сколько добавить недостающих компонентов?
Или имеем 12000 кг сплава с известным содержанием марганца и углерода и сколько получится сплава после добавления компонентов до необходимого содержания марганца и углерода и сколько их надо добавить?
карма: 19

0
Ответов: 142
Рейтинг: 14
#11: 2018-09-04 11:48:41 ЛС | профиль | цитата


Редактировалось 3 раз(а), последний 2021-05-27 08:38:28
карма: 0

0
Ответов: 142
Рейтинг: 14
#12: 2018-09-04 14:14:05 ЛС | профиль | цитата
Ой как медленно считает
карма: 0

0
Ответов: 8701
Рейтинг: 806
#13: 2018-09-04 19:10:28 ЛС | профиль | цитата
Stalevar, Исходная масса -- Mис [кг]
Содержит Mn MnIn% или -- Mис*MnIn%/100 [кг]
Содержит C CIn% или -- Mис*CIn%/100 [кг]
Содержит Fe -- Mис*(1 - (MnIn% + CIn%)/100)) [кг]
.
Получаем на выходе массу Х [кг]
В ней содержится:
Содержит Mn MnOut% или -- X*MnOut%/100 [кг]
Содержит C COut% или -- X*COut%/100 [кг]
Содержит Fe -- X*(1 - (MnOut% + COut%)/100)) [кг]
-- При добавлении FeMn кроме марганца добавляется и железо в зависимости от его содержания в FeMn: Feдоп = Fe%/Mn%
.
Необходимо добавить Y [кг] марганца и Z [кг] углерода:
1. Y = X*MnOut%/100 - Mис*MnIn%/100
2. Z = X*COut%/100 - Mис*CIn%/100
3. X = Mис + Z + Y(1 + Fe%/Mn%)
.
Получили ТРИ уравнения с ТРЕМЯ неизвестными -- решаемая система без применения подбора в цикле (надо арифметику школьную вспомнить или не надо было прогуливать ):
Подставляем в уравнение №3 значения из уравнений №1, №2 и решаем относительно X:
X = Mис + X*COut%/100 - Mис*CIn%/100 + (X*MnOut%/100 - Mис*MnIn%/100)*(1 + Fe%/Mn%)
X*(1 - COut%/100 - MnOut%/100*(1 + Fe%/Mn%)) = Mис*(1 - CIn%/100 - MnIn%/100*(1 + Fe%/Mn%))
X = Mис*(1 - CIn%/100 - MnIn%/100*(1 + Fe%/Mn%))/(1 - COut%/100 - MnOut%/100*(1 + Fe%/Mn%)) -- масса сплава на выходе
По найденной массе выхода и уравнений №1 и №2 находим добавленные количества марганца и углерода. Разделив эти значения на содержание-усвояемость получим массу добавок.
Армфметика


Add(MainForm,2953706,63,63)
{
Height=316
}
Add(Edit,9343208,196,112)
{
Left=50
Top=80
Width=65
Text="100000"
ClearAfterEnter=1
link(onEnter,7974135:doWork3,[(242,125)])
}
Add(Edit,2590845,266,112)
{
Left=140
Top=80
Text="1"
ClearAfterEnter=1
link(onEnter,11196960:doWork2,[])
}
Add(Edit,2168509,336,112)
{
Left=215
Top=80
Text="1"
ClearAfterEnter=1
link(onEnter,1017110:doWork2,[])
}
Add(Edit,10209181,266,161)
{
Left=140
Top=130
Text="10"
ClearAfterEnter=1
link(onEnter,11196960:doWork3,[(312,174)])
}
Add(Edit,10509363,336,161)
{
Left=215
Top=130
Text="10"
ClearAfterEnter=1
link(onEnter,1017110:doWork3,[(382,174)])
}
Add(Label,898086,126,112)
{
Left=5
Top=60
Width=280
Caption="Имеем: Масса[кг] Углерод [%] Марганец [%]"
AutoSize=1
}
Add(Label,4632823,126,168)
{
Left=10
Top=110
Width=279
Height=17
Caption="Надо получить Углерод [%] Марганец [%] "
AutoSize=1
}
Add(Edit,784834,266,63)
{
Left=150
Top=25
Text="98"
ClearAfterEnter=1
link(onEnter,3155042:doWork2,[])
}
Add(Edit,7673149,336,63)
{
Left=215
Top=25
Text="80"
ClearAfterEnter=1
link(onEnter,5280778:doWork2,[])
}
Add(Label,608485,128,63)
{
Left=10
Top=5
Width=354
Height=17
Caption="Усвояемость Углерод [%] Марганец [%] Железо [%] "
AutoSize=1
}
Add(Edit,8040066,392,63)
{
Left=300
Top=25
Text="20"
ClearAfterEnter=1
link(onEnter,4815005:doWork2,[(434,76)(434,50)])
}
Add(Edit,4647735,259,308)
{
Left=120
Top=185
Width=70
ReadOnly=0
link(onChange,4864068:doText,[(298,314)(298,349)(186,349)(186,356)])
link(Str,16324613:CarbonTo,[(265,292)(216,292)])
}
Add(Edit,10677749,210,308)
{
Left=200
Top=185
Width=70
ReadOnly=0
link(onChange,4647735:doText,[])
link(Str,16324613:ManganeseIronTo,[(216,299)(209,299)])
}
Add(Label,13626286,126,308)
{
Left=5
Top=165
Width=279
Height=17
Caption="Надо добавить Углерод [кг] Марганец [кг] "
AutoSize=1
}
Add(Label,7839841,128,350)
{
Left=5
Top=215
Width=122
Height=17
Caption="Получаем: Масса[кг] "
}
Add(Edit,4864068,196,350)
{
Left=140
Top=215
Width=80
ReadOnly=0
link(Str,16324613:Alloy,[])
}
Add(MultiElementEx,16324613,196,238)
{
link(onCalc,10677749:doText,[(270,244)(270,279)(193,279)(193,314)])
link(MassaIn,9343208:Text,[])
link(CarbonIn,2590845:Text,[(209,152)(272,152)])
link(ManganeseIn,2168509:Text,[(216,201)(328,201)(328,152)(342,152)])
link(CarbonInOut,10209181:Text,[(223,207)(272,207)])
link(ManganeseOut,10509363:Text,[(230,213)(342,213)])
link(DigestibilityManganese,7673149:Text,[(237,222)(321,222)(321,103)(342,103)])
link(DigestibilityIron,8040066:Text,[(244,228)(398,228)])
link(ConcentrationCarbon,7078877:Text,[(251,103)(202,103)])
link(DigestibilityCarbon,784834:Text,[(258,103)(272,103)])
}
BEGIN_SDK
Add(EditMultiEx,16717464,21,21)
{
WorkCount=#6:doCalc|
EventCount=#6:onCalc|
VarCount=#10:Alloy=[кг]|20:ManganeseIronTo=[кг]|13:CarbonTo=[кг]|
DataCount=#12:MassaIn=[кг]|12:CarbonIn=[%]|15:ManganeseIn=[%]|15:CarbonInOut=[%]|16:ManganeseOut=[%]|26:DigestibilityManganese=[%]|21:DigestibilityIron=[%]|23:ConcentrationCarbon=[%]|23:DigestibilityCarbon=[%]|
Width=356
Height=221
VOffset=42
HOffset=35
link(doCalc,15717847:doCalc,[])
link(Alloy,8726603:Var2,[])
link(ManganeseIronTo,9088357:Result,[(69,215)(125,215)])
link(CarbonTo,11517040:Result,[(76,222)(181,222)])
}
Add(MathParse,779928,56,168)
{
DataCount=6
MathStr="%1*(1-%2/100-%3*%6/100)/(1-%4/100-%5*%6/100)"
ResultType=0
link(onResult,9088357:doCalc,[])
link(X1,2774523:Var2,[])
link(X2,2280409:Var2,[])
link(X3,3876415:Var2,[])
link(X4,9692763:Var2,[])
link(X5,8175131:Var2,[])
}
Add(MathParse,1165778,203,63)
{
MathStr="1+%2/%1"
link(onResult,779928:doCalc,[(242,69)(242,104)(46,104)(46,174)])
link(X1,6005003:Var3,[(209,54)])
link(X2,4501765:Var3,[(216,47)])
}
Add(MathParse,15717847,105,63)
{
MathStr="%1*%2/10000"
link(onResult,12242963:doCalc,[])
link(X1,16717464:ConcentrationCarbon,[])
link(X2,16717464:DigestibilityCarbon,[])
}
Add(MathParse,9088357,119,168)
{
DataCount=5
MathStr="(%1*%2 - %3*%4)/100/%5"
ResultType=0
link(onResult,11517040:doCalc,[])
link(X2,8175131:Var3,[(132,138)])
link(X3,5844309:Var2,[])
link(X4,3876415:Var3,[(146,131)])
link(X5,12242963:Result,[(153,110)(160,110)])
}
Add(MathParse,11517040,175,168)
{
DataCount=5
MathStr="(%1*%2 - %3*%4)/100/%5"
ResultType=0
link(onResult,16717464:onCalc,[(249,174)(249,69)])
link(X1,8726603:Var3,[(181,159)(108,159)(108,208)])
link(X2,9692763:Var3,[(188,152)])
link(X3,5844309:Var3,[(195,124)])
link(X4,2280409:Var3,[(202,145)])
link(X5,15717847:Result,[(209,117)(111,117)])
}
Add(GetDataEx,2774523,56,119)
{
link(Data,16717464:MassaIn,[])
}
Add(GetDataEx,5844309,133,119)
{
Angle=3
link(Data,2774523:Var3,[])
}
Add(GetDataEx,8726603,56,203)
{
link(Data,779928:Result,[])
}
Add(GetDataEx,8175131,84,133)
{
link(Data,16717464:ManganeseOut,[])
}
Add(GetDataEx,3876415,70,126)
{
link(Data,16717464:ManganeseIn,[])
}
Add(GetDataEx,9692763,77,147)
{
link(Data,16717464:CarbonInOut,[])
}
Add(GetDataEx,2280409,63,140)
{
link(Data,16717464:CarbonIn,[])
}
Add(MathParse,12242963,154,63)
{
MathStr="%1/(%1+%2)"
link(onResult,1165778:doCalc,[])
link(X1,6005003:Var2,[])
link(X2,4501765:Var2,[])
}
Add(GetDataEx,6005003,154,49)
{
Angle=3
link(Data,16717464:DigestibilityManganese,[(97,54)])
}
Add(GetDataEx,4501765,161,42)
{
Angle=3
link(Data,16717464:DigestibilityIron,[(104,47)])
}
END_SDK
Add(Edit,7078877,196,63)
{
Left=95
Top=25
Text="98"
ClearAfterEnter=1
link(onEnter,7974135:doWork2,[])
}
Add(HubEx,4815005,378,44)
{
Angle=2
link(onEvent,11551152:doWork2,[])
}
Add(HubEx,1017110,378,119)
{
Angle=3
link(onEvent,5280778:doWork3,[])
}
Add(HubEx,5280778,378,70)
{
Angle=3
link(onEvent,4815005:doWork3,[])
}
Add(HubEx,11551152,308,44)
{
Angle=2
link(onEvent,6021160:doWork2,[])
}
Add(HubEx,3155042,308,70)
{
Angle=3
link(onEvent,11551152:doWork3,[])
}
Add(HubEx,11196960,308,119)
{
Angle=3
link(onEvent,3155042:doWork3,[])
}
Add(HubEx,6021160,238,44)
{
Angle=2
link(onEvent,16324613:doCalc,[(181,50)(181,244)])
}
Add(HubEx,7974135,238,70)
{
Angle=3
link(onEvent,6021160:doWork3,[])
}

карма: 19

0
Ответов: 9906
Рейтинг: 351
#14: 2018-09-05 06:09:53 ЛС | профиль | цитата
Stalevar писал(а):
Леонид проверьте плиз на корявость.

Я, как бы заранее, прошу прощения за свой французский..........

НО: кто такой GlobalVarEx с верхней (видимо) точкой Data
Зачем Вам Ex, и что Вы вообще знаете про работу его задней точки onValue?
И кто Вам сказал, что у нас установлено именно такое же чудо природы (GlobalVarEx), как и у Вас?

Про использование - уже просто молчу...

Редактировалось 1 раз(а), последний 2018-09-05 06:10:26
карма: 9

0
Ответов: 9906
Рейтинг: 351
#15: 2018-09-05 11:58:36 ЛС | профиль | цитата
Stalevar, поиск решения системы уравнений итеративным методом - вещь интересная, конечно же....
Но займитесь лучше освоением базовых знаний про программирование на HiAsm.
((я не говорю ВМЕСТО, я говорю -- ДО))

Знать, чем цикл отличается от кольцевания -- необходимо. Посмотрите, например здесь.

Редактировалось 1 раз(а), последний 2018-09-06 02:55:10
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)