Simulace: všechny signály
Projekt Qenex_Sim_SimulData_AllSignals.qproj najdete ve složce
Examples vedle QInsight.exe. Nepotřebuje žádný hardware: všechna data
generuje protokol Simulation Signals,
takže jde o nejrychlejší způsob, jak si QInsight vyzkoušet a prohlédnout
si většinu controlů za běhu.


Co ukázka předvádí
- všech sedm skalárních signálů simulace (
step,noisystep,walk1ažwalk3,laosstrain,laosstress) a maticový signálthermal, - Python filtr: On-change trigger na zašuměném signálu spouští skript, který počítá exponenciální klouzavý průměr a výsledek zapisuje do virtuální proměnné, takže se filtrovaný průběh kreslí v grafu vedle originálu,
- LAOS dvojici deformace a napětí v časovém grafu a v XY grafu jako Lissajousovu smyčku, kterou za běhu tvarují parametry nelinearity a harmonických zapisované z watch table,
- teplotní pole jako proměnnou typu Matrix v Matrix controlu,
s parametrem
Hold, který generátor zastaví a dovolí buňky editovat, - výchozí hodnoty parametrů přes
init=v Comm params, bez skriptu.
Co potřebujete
Pouze QInsight. Projekt otevřete, stiskněte Start a přepínejte mezi třemi záložkami pracovní plochy.
Projekt
Drivery a protokoly
Dvě dvojice bez jakéhokoli nastavení:
| Driver | Protokol | Role |
|---|---|---|
| Simulation | Simulation Signals | generuje všechny signály a čte parametry |
| Virtual Variables Host | Virtual Variables | publikuje zápisy skriptu do proměnné FilterVal jako vzorky |
Události
| Událost | Perioda | Použití |
|---|---|---|
event20ms | 20 ms | schodovité sinusy, LAOS dvojice |
event100ms | 100 ms | náhodné procházky, parametry (u nich perioda nemá význam) |
event250ms | 250 ms | teplotní pole |
Proměnné
Generované signály (směr read):
| Proměnná | Typ | signal | Poznámka |
|---|---|---|---|
StepVal | float | step | schodovitý sinus |
NoisyStepVal | int | noisystep | vstup filtru; On-change trigger filter.py (Delta 5, Eng) |
Walk1Val, Walk2Val, Walk3Val | double | walk1 … walk3 | náhodné procházky kolem 0, 10 a −5 |
LAOS/Strain | double | laosstrain | amp="800";freq="0.5" |
LAOS/Stress | double | laosstress | amp="800";freq="0.5", nelinearita z parametru |
ThermalField | Matrix 8×6, ushort | thermal | směr readWrite, amp="40";freq="0.025", buňky v °C (konverze 0,1), osy v mm |
Parametry (směr write, negenerují se, protokol je čte):
| Proměnná | signal | init | Význam |
|---|---|---|---|
Params/Nonlin | nonlin | 0,6 | nelinearita napětí, 0 až 2 |
Params/H1Amp | h1amp | 680 | amplituda základní harmonické |
Params/H1Freq | h1freq | 0,5 Hz | frekvence základní harmonické, řídí i deformaci |
Params/H1Phase | h1phase | 23° | fáze základní harmonické |
Params/H2Amp | h2amp | 144 | amplituda 3. harmonické |
Params/H2Freq | h2freq | 1,5 Hz | frekvence 3. harmonické |
Params/H2Phase | h2phase | 76° | fáze 3. harmonické |
Params/Hold | hold | 0 | 1 = zmrazit teplotní pole |
Parametry 5. a 7. harmonické projekt záměrně nemá: díky tomu je jejich
amplituda řízena nelinearitou a změna Nonlin je v grafu vidět. Kdyby
projekt obsahoval i h3amp a h4amp, měly by přednost a parametr Nonlin
by se neuplatnil.
Virtuální proměnná FilterVal (double) je přiřazená protokolu Virtual
Variables; Comm params jsou prázdné.
Skripty
init.py (režim Startup) pouze připraví stav filtru. Parametry simulace
se tu nenastavují, jejich výchozí hodnoty nastavuje protokol z init=.
val = 0.0
f = 0.15
filter.py (režim On Value Changed, trigger na NoisyStepVal) je celý
filtr:
val += f * (NoisyStepVal.EngValue - val)
FilterVal.EngValue = val
Jde o exponenciální klouzavý průměr: nová hodnota se k naměřené hodnotě
posune vždy o zlomek f zbývajícího rozdílu. Menší f znamená hladší, ale
pomalejší průběh. Stav val je uložen v pythonovské proměnné, kterou všechny skripty
projektu sdílejí. Zápis do
FilterVal se publikuje jako nový vzorek, protože jde o virtuální
proměnnou; zápis do proměnné jiného protokolu by UI událost nevyvolal.
Pracovní plochy
| Záložka | Controly |
|---|---|
| Basic signals | graf schodovitých sinusů s filtrem, graf náhodných procházek, gauge a signal controly, k tomu XY graf LAOS, matice teplotního pole a watch table parametrů H1 a H2 jako přehled všeho na jedné ploše |
| LAOS | časový graf deformace (levá osa) a napětí (pravá osa), XY graf napětí proti deformaci, watch table parametrů Nonlin, H1 a H2 v zápisovém režimu, signal controly |
| Thermal field | Matrix control ThermalField, watch table s Hold |
Co uvidíte a co vyzkoušet
Po Startu se všechny controly vyprázdní a plní se hodnotami přečtenými ze simulace; napětí kmitá s amplitudou kolem ±580 a XY graf kreslí uzavřenou smyčku.
Parametry se ve watch table zapisují ve write módu řádku: zadanou hodnotu odešle tlačítko Write v řádku (nebo Enter, je-li v kontextovém menu zapnuté Write on Enter). Účinek je v grafech vidět hned; ve watch table se zapsaná hodnota zobrazí až po jejím přečtení zpět ze simulace (controly neukazují zapsané hodnoty, jen přečtené).
- Filtr: v grafu Basic signals sledujte, jak zelená filtrovaná křivka
se zpožděním sleduje oranžový zašuměný signál. Změňte
fvinit.pyna 0,05 a restartujte runtime: filtr bude hladší, ale pomalejší. - LAOS: ve watch table zapište
Nonlin= 0 a smyčka se změní na elipsu; hodnota 1,5 ji zdeformuje.H2Amp= 300 zakřiví smyčku do tvaru S,H1Phase= 90 ji rozevře.H1Freq= 1 zrychlí deformaci i napětí zároveň, smyčka zůstane uzavřená. - Teplotní pole: oblast nejvyšší teploty obíhá kolem středu desky jednou za 40 s. Zapište
Hold= 1, v Matrix controlu přepněte zápisový režim, upravte buňku a odešlete ji tlačítkem Write (nebo Enterem se zapnutým Write on Enter); hodnota zůstane, dokudHoldnevrátíte na 0. - Osy matice: upravte hodnotu na ose X. Generátor hodnoty os nepřepisuje,
úprava zůstane zachována i při
Hold= 0. - Stop a Start: simulace se spustí znovu od nuly, filtr od
val = 0, parametry se vrátí na hodnoty zinit=.
Související kapitoly
- Simulation Signals a Virtual Variables v referenci protokolů
- Přístup k proměnným ze skriptu
- Maticová proměnná
- Controls
- Bitové pole a skript — další ukázka s virtuálními proměnnými a On-change triggerem

