Вверх ↑
Ответов: 8926
Рейтинг: 823
#1: 2013-02-25 01:00:34 ЛС | профиль | цитата
178-137-115-76-zap.broadb, так ТС и не просил готовую пограмму, но возможность моделирования В предложенном пример моделирования процессов в длинной линии, показывающий МОЖНО ПОЧТИ ВСЁ!
------------ Дoбавленo в 00.56:
Самому интересно стало, смоделировал, хотя тоже не ФАПЧ, но похоже

Add(MainForm,2953706,812,392)
{
Width=454
}
Add(Thread,13620091,203,133)
{
Delay=1
link(onSyncExec,6324899:doOperation,[])
}
Add(MMTimer,2258497,203,301)
{
Resolution=0
Interval=3
Enable=1
link(onTimer,15195196:doOperation,[])
}
Add(Math,15195196,266,301)
{
Op2=1
link(onResult,15348530:doOperation,[])
link(Op1,15195196:Result,[(272,292)(258,292)(258,341)(272,341)])
}
Add(Math,6324899,266,140)
{
Op2=5
link(onResult,15748814:doOperation,[])
link(Op1,6324899:Result,[(272,131)(258,131)(258,180)(272,180)])
link(Op2,10146098:Result,[])
}
Add(Button,6848762,63,133)
{
Left=5
Top=5
Caption="Вкл"
link(onClick,3173753:doEvent1,[])
}
Add(Button,11763792,70,273)
{
Left=5
Top=45
Caption="Откл"
link(onClick,1319827:doEvent1,[])
}
Add(Math,15348530,322,301)
{
OpType=13
AngleMode=1
link(onResult,5502951:doValue,[])
}
Add(Math,15748814,322,140)
{
OpType=13
AngleMode=1
link(onResult,3811452:doValue,[])
}
Add(Plotter,8351014,63,77)
{
Left=120
Top=5
Width=315
Height=255
Color=12639424
Name="MyOsc"
GridX=20
GridY=11
MinH=-1.1
MaxH=1.1
RightMargin=5
TopMargin=2
BottomMargin=2
}
Add(PlotLines,9771472,322,189)
{
Grapher="MyOsc"
MaxValues=720
link(ValueY,15748814:Result,[])
link(ValueX,4844057:Var3,[(335,180)])
}
Add(PlotLines,14791142,322,350)
{
Grapher="MyOsc"
Color=16711680
Step=1
MaxValues=720
link(ValueY,15348530:Result,[])
link(ValueX,11891897:Var2,[(335,341)(314,341)])
}
Add(Thread,2545194,154,203)
{
Delay=1
link(onSyncExec,10008224:doOperation,[])
}
Add(Math,10008224,203,210)
{
Op2=1
link(onResult,11108516:doEvent1,[])
link(Op1,4933945:Var1,[(209,201)(195,201)(195,250)])
}
Add(Hub,11108516,252,210)
{
OutCount=4
link(onEvent1,2584216:doAdd,[(305,216)(305,97)])
link(onEvent2,9771472:doAdd,[(309,223)(309,195)])
link(onEvent3,14791142:doAdd,[(305,230)(305,356)])
link(onEvent4,10620500:doEvent1,[])
}
Add(GetDataEx,4933945,203,245)
{
link(Data,10008224:Result,[])
}
Add(GetDataEx,11891897,308,245)
{
Angle=3
link(Data,4933945:Var3,[])
}
Add(Hub,3173753,112,133)
{
OutCount=3
link(onEvent1,13620091:doStart,[])
link(onEvent2,2258497:doTimer,[(165,146)(165,307)])
link(onEvent3,2545194:doStart,[(137,153)(137,209)])
}
Add(Hub,1319827,112,273)
{
OutCount=3
link(onEvent1,13620091:doStop,[(191,279)(191,146)])
link(onEvent2,2258497:doStop,[(158,286)(158,314)])
link(onEvent3,2545194:doStop,[(137,293)(137,216)])
}
Add(TrackBar,14785383,224,35)
{
Left=70
Width=30
Height=265
Max=7500
Min=2500
TickCount=500
Position=5000
Kind=1
link(onPosition,10146098:doOperation,[])
}
Add(Math,10146098,273,35)
{
OpType=3
Op2=1000
Default=5
link(onResult,355601:doCalc,[])
}
Add(MathParse,355601,322,35)
{
MathStr="(5-%1)/2"
}
Add(PlotLines,2584216,322,91)
{
Grapher="MyOsc"
Color=32768
MaxValues=720
link(ValueY,355601:Result,[])
link(ValueX,4844057:Var2,[(335,82)(314,82)])
}
Add(GetDataEx,4844057,308,175)
{
Angle=2
link(Data,11891897:Var1,[])
}
Add(Hub,14220953,637,140)
{
link(onEvent1,13905377:doValue,[])
link(onEvent2,9048030:doReset,[(671,153)(671,118)])
}
Add(Counter,9048030,707,98)
{
Max=9999999
}
Add(MemFifo,3811452,371,140)
{
link(onData,14922591:doCompare,[])
}
Add(MemFifo,5502951,371,301)
{
link(onData,8735466:doCompare,[])
}
Add(If_else,14922591,420,140)
{
Type=1
Op2=Real(0)
link(onTrue,480429:doCompare,[])
link(Op1,3811452:Value2,[(426,131)(412,131)(412,180)(384,180)])
}
Add(If_else,480429,469,140)
{
Type=4
Op2=Real(0)
link(onTrue,11648268:doNext,[])
link(Op1,3811452:Value1,[(475,131)(461,131)(461,195)(377,195)])
}
Add(If_else,8735466,420,301)
{
Type=1
Op2=Real(0)
link(onTrue,12187371:doCompare,[])
link(Op1,5502951:Value2,[(426,292)(412,292)(412,341)(384,341)])
}
Add(If_else,12187371,469,301)
{
Type=4
Op2=Real(0)
link(onTrue,1686089:doEvent1,[])
link(Op1,5502951:Value1,[(475,292)(461,292)(461,355)(377,355)])
}
Add(Hub,10620500,616,231)
{
link(onEvent1,9048030:doNext,[(659,237)(659,104)])
link(onEvent2,4617319:doNext,[(641,244)(641,265)])
}
Add(MathParse,15105807,728,301)
{
DataCount=4
MathStr="%3 - (%1 - %2)*%4"
ResultType=0
link(onResult,14785383:doPosition,[(792,307)(792,19)(206,19)(206,41)])
link(X2,9940181:Var2,[])
link(X3,14785383:Position,[(748,75)(230,75)])
link(X4,4436337:Value,[])
}
Add(Memory,4436337,749,245)
{
Default=Real(1)
}
Add(Counter,11648268,525,140)
{
Max=4
Point(Max)
Point(doMax)
link(onNext,14609988:doCompare,[])
link(Max,244640:Position,[(531,124)(412,124)])
}
Add(If_else,14609988,567,140)
{
Op2=Integer(0)
link(onTrue,14220953:doEvent1,[])
}
Add(Memory,13905377,707,140)
{
Default=Integer(1)
Point(Data)
link(Data,9048030:Count,[])
}
Add(Hub,1686089,616,301)
{
link(onEvent1,13980513:doValue,[])
link(onEvent2,4617319:doReset,[(641,314)(641,279)])
}
Add(Counter,4617319,651,259)
{
Max=9999999
}
Add(Memory,13980513,651,301)
{
Default=Integer(1)
Point(Data)
link(onData,14486021:doEvent1,[])
link(Data,4617319:Count,[])
}
Add(TrackBar,244640,406,35)
{
Left=15
Top=75
Width=25
Height=110
Max=6
Min=3
Position=4
Kind=1
link(onPosition,14853358:doEvent1,[])
}
Add(Label,12953052,560,35)
{
Left=10
Top=195
Width=35
Height=30
Font=[MS Sans Serif,12,1,0,1]
Caption="x5"
}
Add(StrCat,15829735,518,35)
{
Str1="x"
link(onStrCat,12953052:doText,[])
}
Add(Math,10393933,476,35)
{
Op2=1
link(onResult,15829735:doStrCat,[])
}
Add(Hub,14853358,448,35)
{
link(onEvent1,10393933:doOperation,[])
link(onEvent2,11648268:doMax,[(469,48)(469,92)(515,92)(515,167)])
}
Add(MathParse,10830150,714,392)
{
MathStr="round((1-%2/%1)*100,0.01)"
link(onResult,7716424:doString,[])
link(X2,9940181:Var1,[(727,285)])
}
Add(Hub,14486021,693,301)
{
link(onEvent1,15105807:doCalc,[])
link(onEvent2,10830150:doCalc,[(718,314)(718,384)(704,384)(704,398)])
}
Add(GetDataEx,9940181,735,280)
{
link(Data,13905377:Value,[(741,183)(713,183)])
}
Add(FormatStr,7716424,763,392)
{
DataCount=1
Mask="Отклонение %1 %"
link(onFString,2953706:doCaption,[])
}
Add(InfoTip,2770536,182,119)
{
Info=#26:Синхронизируемый генератор|
Width=183
Height=67
}
Add(InfoTip,14095493,196,273)
{
Info=#17:Опорный генератор|
Width=169
Height=74
}
Add(InfoTip,5109130,189,21)
{
Info=#8:Вариокап|
Width=176
Height=60
}
Add(InfoTip,5664486,609,56)
{
Info=#9:Сравнение|1:и|10:управление|
Width=176
Height=284
}
------------ Дoбавленo в 01.00:
У, собака, заскролилась схема, попробую файлом
карма: 19

0
файлы: 1phase_locked_loop.sha [6.5KB] [355]