Metoda Model-Based Design pro návrh a realizaci řídicích systémů
Jan Daněk
[email protected] www.humusoft.cz
[email protected]
1
HUMUSOFT s.r.o.
Obsah • Představení společnosti • Role řídicích systémů při vývoji produktů • Model-Based Design • Příklady • Využití MBD v rámci organizace
2
HUMUSOFT s.r.o.
HUMUSOFT s.r.o. •
Založeno v r. 1990, sídlo v Praze
•
Produkty a služby v oblasti technických výpočtů, řídicí techniky, simulace dynamických systémů
•
MATLAB, Simulink, Stateflow – Inženýrské výpočty, simulace dynamických systémů – The MathWorks, Inc.
•
dSPACE - vývojové systémy – dSPACE GmbH.
•
Comsol Multiphysics – Otevřený systém pro multifyzikální analýzu (metoda konečných prvků) – Comsol AB
•
Vývoj vlastního software & hardware – Simulink 3D Animation, Real-Time Windows Target – Měřicí karty – Modely pro výuku teorie řízení
•
Paralelní pracovní stanice HeavyHorse – Multiprocesorové stanice pro High-Performance Computing
3
HUMUSOFT s.r.o.
MATLAB • Integrované prostředí pro vědeckotechnické výpočty • Grafické a výpočetní nástroje • Intuitivní uživatelské rozhraní MATLAB Desktop • Rychlé výpočetní jádro • Programovací jazyk 4. Generace – více než 1 000 funkcí – objektově orientované programování
• Grafická uživatelská rozhraní (GUI) • Rozsáhlá HTML nápověda – prohlížeč funkcí
• Systém MATLAB je: – modulární – toolboxy 4
– otevřený – uživatel může zobrazit i upravovat funkce
HUMUSOFT s.r.o.
Simulink • Nadstavba MATLABu • Modelování, simulace a analýza dynamických systémů • Analýza Multi-Domain systémů • Prostředí blokových schémat – předdefinované knihovny bloků – systém práce „drag and drop“ – tvorba vlastních funkčních bloků
• Prvky pro tvorbu algebraických a diferenciálních rovnic • Otevřené rozhraní pro tvorbu aplikací – začlenění kódu z programů MATLAB, C, Fortran
• Platforma pro Model Based Design
5
– následně může být automaticky generován kód pro cílovou platformu
HUMUSOFT s.r.o.
Simulink
• Umožňuje tvorbu rozsáhlých a přesných modelů • Linearizace modelů s cílem využití metod klasické řídicí techniky • Sledování chování celého systému • Optimalizace systémů
6
s2 s3
Controller
System
Sensors
u
s1
Actuators
• Vhodný k modelování a analýze regulátoru i řízené soustavy
+
Plant
y
Ax+Bu=0 Root Locus
Bode Plot
Real Axis
Frequency
HUMUSOFT s.r.o.
Stroje a zařízení jsou stále sofistikovanější • Požadavky zákazníků, předpisy, provozní náklady, ...
• ... využití komplexních vestavěných řídicích systémů 7
HUMUSOFT s.r.o.
Tradiční vývojový proces VÝZKUM
POŽADAVKY SPECIFIKACE
Dokumenty s požadavky • Náročné na analýzu • Složité sledování změn Specifikace v papírové podobě • Možnost chyb při interpretaci • Problematická integrace s návrhem
NÁVRH EDA
Návrh Algoritmů
MCAD/ MCAE
Electrické komponenty
Vestavěné algoritmy
Mechanické komponenty
IMPLEMENTACE
Fyzické prototypy • Drahé, nekompletní • Nemožnost rychlých iterací • Nemožnost testování celého systému Manuální kódování • Časově náročné • Náchylné k chybám a nekonzistencím • Složité opakované využití
C/C++ Vestavěný Software
Tradiční testování • Chyby v návrhu odhaleny pozdě • Složité využití výsledků testování v návrhové části procesu • Obtížná sledovatelnost požadavků
INTEGRACE A TESTY
8
HUMUSOFT s.r.o.
Pozdě odhalené chyby jsou nákladnější Relativní náklady nato odstranění chyb fáze jejich Relative Cost Fix Defects perdle Phase Foundodhalení Vývojáři neporozuměli řešenému problému.
50 45 40 35 30 25 20
Vývojáři porozuměli Relative Cost ale řešení to problému, Fix
15 Requirements Design
10 5
Code
0
Test
Re
m i re qu
ts en
De
de Co
n sig
st Te
Řešení funguje, ale vyskytly se chyby v implementaci.
Phase Found
Test
9
nefunguje.
Code
Design
Requirements
Zdroj: Návratnost investic pro nezávislou verifikaci a validaci, NASA, 2004
HUMUSOFT s.r.o.
Model-Based Design Systematické využití simulačních modelů během celého vývojového cyklu VÝZKUM
POŽADAVKY
•
Predikce chování systému v raných stadiích projektu
•
Možnost vývoje i velmi složitých systémů
•
Zkrácení doby mezi iteracemi
•
Rychlá implementace s využitím automatického generování kódu pro různé cílové HW platformy
•
Testování řídicích algoritmů na virtuálním modelu plánované soustavy
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
10
DSP
VHDL, Verilog FPGA
ASIC
Struktur. text PLC
TESTY & VERIFIKACE
Mechanické
INTEGRACE
HUMUSOFT s.r.o.
Model-Based Design VÝZKUM
POŽADAVKY
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
VHDL, Verilog DSP
FPGA
ASIC
TESTY & VERIFIKACE
Mechanické
Strukturovaný text PLC
INTEGRACE
11
HUMUSOFT s.r.o.
Výzkum Import/ Export Dat •Přímý Import/Export dat s použitím standardních formátů souborů •Online sběr dat s použitím standardních I/O a komunikačních rozhraní (CAN, RS232, UDP, DAQ karty, …)
Analýza a zpracování dat •Pokročilé nástroje pro analýzu dat (Statistika, Aproximace, Optimalizace, Strojové učení, Identifikace systémů, …)
Vývoj algoritmů •Rozsáhlá knihovna matematických funkcí •Vizualizační nástroje •Tvorba samostatných aplikací •Škálovatelnost výkonu s použitím paralelních výpočtů 12
HUMUSOFT s.r.o.
Model-Based Design VÝZKUM
POŽADAVKY
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
VHDL, Verilog DSP
FPGA
ASIC
TESTY & VERIFIKACE
Mechanické
Strukturovaný text PLC
INTEGRACE
13
HUMUSOFT s.r.o.
Včasná verifikace konceptů s použitím Simulace Predikce dynamického chování systému s použitím Simulace •Méně fyzických prototypů •Modely jak systému samotného, tak prostředí
Použití výsledků simulace pro návrh systému • Studie typu what / if • Zkrácení iteračních cyklů
Nápad Jednoduchý model 14
Podrobný model HUMUSOFT s.r.o.
Intuitivní modelování dynamických systémů Různé metody modelování systémů s využitím jednotné platformy Simulink
Simulink (blokový diagram)
Modelování událostmi řízených systémů (vývojový diagram, stavový diagram, ...) - Stateflow 15
Schematické modelování fyzikálních soustav (SimScape)
MATLAB (Textový popis) HUMUSOFT s.r.o.
Modelování fyzikálních systémů
Obecné fyzikální systémy
Mechanické soustavy 16
SimElectronics
Hydraulické systémy
SimDriveline
SimMechanics
Výkonová elektronika
SimHydraulics
SimPowerSystems
Simscape
Pohony
Elektronika HUMUSOFT s.r.o.
Intuitivní modelování dynamických systémů Různé reprezentace modelů, včetně virtuální reality
17
HUMUSOFT s.r.o.
Experimentální identifikace Kalibrace modelů s použitím naměřených dat • Kalibrace matematického modelu • Odhad parametrů systému
Identifikace systémů typu „Black Box“ • Systémy, které je obtížné modelovat metodami matematického modelování
18
HUMUSOFT s.r.o.
Integrovaný návrh řídicích systémů Návrh regulátorů pro spojité systémy • Opakované využití modelů – model použitý pro identifikaci soustavy lze využít při návrhu regulátoru • Interaktivní nástroje pro návrh řídicích systémů • Analýza v časové i frekvenční oblasti • Návrh robustního řízení u složitých systémů s neurčitostmi
Detekce pracovních bodů
Návrh řídicích systémů
Linearizace
19
HUMUSOFT s.r.o.
Optimalizace Optimalizace řídicích systémů
• • • • •
Definice požadavků na odezvu systému v časové oblasti (přechodová charakteristika) ve frekvenční oblasti (Bodeho diagram) Možnost zohlednění neurčitostí parametrů Optimalizace může zahrnout i parametry systému
Optimalizace celého systému • Další požadavky na provoz systému
15
45 0
0 40
0 25 0 35
0 30
14 0 20
13
f
12
Height: h (x2)
11
c
10
feasible region 9
ceq 15 0
8
Příklad: Minimalizace spotřeby energie
7
25 0
6 10 0
5
20
4
20 0
4.5
5
5.5
6 6.5 Diameter: d (x1)
7
7.5
8
HUMUSOFT s.r.o.
Zpracování signálů • • • • • • • •
21
Analýza, vizualizace, modelování algoritmů V časové i frekvenční oblasti Spektrální analýza, filtrace, modulace, demodulace Zpracování s využitím rámců Návrh číslicových filtrů Podpora počítání v pevné řádové čárce Nástroje pro Data Acquisition Statistické zpracování signálu
HUMUSOFT s.r.o.
Zpracování videa a obrazu Získávání videa a obrazu
• Přímé snímání z kamer a frame grabberů • Podpora nejrůznějších formátů, režimu nahrávání a kamer
Zpracování videa a obrazu • • • •
Segmentace, klasifikace, detekce objektů, stereovize, rekonstrukce 3D scén, ... Sledování pohybujících se objektů, identifikace prvků scény Vylepšování obrazu (filtrace, odstranění šumu, pohybu, …) Podpora implementace na různých HW platformách (FPGA, ...)
22
HUMUSOFT s.r.o.
Model-Based Design VÝZKUM
POŽADAVKY
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
VHDL, Verilog DSP
FPGA
ASIC
TESTY & VERIFIKACE
Mechanické
Strukturovaný text PLC
INTEGRACE
23
HUMUSOFT s.r.o.
Verifikace chování systémů v reálném čase Rapid Prototyping • Verifikace řídicích algoritmů na prototypových HW platformách • Podpora průmyslových standardů a sběrnic Simulace Hardware-in-the-Loop • Generování kódu z modelů soustav modelovaných v Simulinku, Stateflow, embedded MATLAB nebo nástrojů pro fyzikální modelování • Spuštění modelů v reálném čase – simulátory • Verifikace chování prototypu řídicí jednotky s modelem soustavy
24
HUMUSOFT s.r.o.
Automatické generování kódu • Generování kódu pro nejrůznější cílové platformy: C/C++ , HDL, kódu pro PLC • Integrovaná podpora pevné řádové čárky • Automatické škálování • Integrace kódu získaného „Mimo MBD“ • Generovaný kód čitelný člověkem (platí i pro HDL)
Software C, C++ MCU
DSP
Elektronika IEC61131-3 VHDL, Verilog Struct.Text PLC
FPGA
ASIC
• Vývoj systémů nezávislý na cílové platformě
•Unikátní vlastnost řešení firmy MathWorks •Umožňuje rozhodnutí o cílové platformě v “pravý čas“ •Podpora i nejnovějších zařízení (Xilinx Zynq apod.)
• Integrace s rozšířenými vývojovými prostředími • Snadná implementace na standardních platformách
Využití
• Generování produkčního kódu •Samozřejmostí je „produkční kvalita“ kódu • Simulace Software-in-the-Loop • Simulace Processor-in-the-Loop
25
HUMUSOFT s.r.o.
Produkty pro generování kódu • ANSI-C – vestavěné procesory – MATLAB Coder – Simulink Coder – Embedded Coder
• HDL - FPGA / ASIC – HDL Coder – HDL Verifier
• PLC – Simulink PLC Coder
• Jednoduché MCU – Arduino, BeagleBoard, Raspberry Pi, ... – LEGO Mindstorms – Simulink – „Support Packages“
26
HUMUSOFT s.r.o.
Model-Based Design VÝZKUM
POŽADAVKY
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
VHDL, Verilog DSP
FPGA
ASIC
TESTY & VERIFIKACE
Mechanické
Strukturovaný text PLC
INTEGRACE
27
HUMUSOFT s.r.o.
Transparentní, dokumentovaný vývojový proces Model
Model jako základní reference • Jednoznačnost • Specifikace rozhraní • Propojení požadavků s prvky modelů a dále s generovaným kódem
• Obousměrné propojení • Odkazy na požadavky snadno dohledatelné v modelu i kódu (komentáře) • Kontrola verzí
C-kód Specifikace požadavků
TESTY & VERIFIKACE
Sledovatelnost
Automatické generování reportů • Dokumentování samotného modelu i výsledků simulace • Preddefinované šablony reportů • Různé formáty – XML, PDF, HTML, RTF, ... 28
HUMUSOFT s.r.o.
Verifikace, Validace, Certifikace
29
TESTY & VERIFIKACE
Ověřování shody s normami • Automatické kontroly • Sady pravidel pro IEC 61508, DO-178B/C, MAAB, DO-254 • Podpora uživatelem definovaných kontrol Automatizované testy • Využití testů při testování modelu, Real-Time vývojového prostředí i finálního produktu • Analýza pokrytí: Jsou všechny možné větve pokryty testy? Automatické generování testů • 100% pokrytí • Uživatelská kritéria • Detekce nedostupných větví Formální analýza kódu • Polyspace Code Prover, Bug Finder Ověřování vlastností • Ověření, že návrh splňuje funkční požadavky • Rychlé odhalení neshod • Certifikace správného chování
HUMUSOFT s.r.o.
DO-331 Software Life Cycle
Validate
Requirements
Trace
Modeling
Verify Conformance
Models Verify Trace
Generate codes
Verify Conformance
Validate Verify Trace Develop DO Qualification Kit 30
Verify
C code Compile & Build
EOC HUMUSOFT s.r.o.
MathWorks Tool Chain – DO 331 xPC TargetTM Simulink®
Simulink® CoderTM Stateflow®
Simulink® Design VerifierTM
Requirements
Simulink® Validation VerificationTM (RMI)
Simulink®
Simulink® Design VerifierTM
Stateflow®
Simulink® Validation VerificationTM (MC)
Simulink® Report GeneratorTM (SDD)
Embedded CoderTM (PIL) SystemTestTM
Simulink® Validation VerificationTM (MA)
Polyspace® ( RTE)
Code coverage
Models
Embedded CoderTM (PIL)
Simulink® Code InspectorTM Embedded CoderTM Simulink® Code InspectorTM
SystemTestTM Polyspace® ( RTE)
Polyspace® (MISRA, RTE)
Validate Verify Trace Develop DO Qualification Kit 31
C code Compile & Build
EOC
Abbreviations DV: Simulink Design Verifier MA: Model Advisor MC: Model Coverage RMI: Requirements Management Interface RTE: Run-Time Error PIL: Processor-in-the-Loop SDD: System Design Description VV: Verification and Validation
HUMUSOFT s.r.o.
MathWorks Tool Chain – DO 254 xPC TargetTM Simulink®
HDL CoderTM Stateflow®
Simulink® Design VerifierTM
Requirements
Simulink® Validation VerificationTM (RMI)
Simulink®
Simulink® Design VerifierTM
Stateflow®
Simulink® Validation VerificationTM (MC)
Simulink® Report GeneratorTM (SDD)
Simulink® Validation VerificationTM (MA) SystemTestTM
Models HDL CoderTM (Trace Report)
HDL CoderTM
HDL code Validate Verify Trace Develop 32
DO Qualification Kit
HDL VerifierTM (FIL)
Synthesis
Net-List Place & Route
Hardware
HDL VerifierTM (CS)
SystemTestTM
HDL Simulator
HDL VerifierTM (FIL)
SystemTestTM HDL VerifierTM Abbreviations CS: Cosimulation DV: Simulink Design Verifier FIL: FPGA-in-the-Loop MA: Model Advisor MC: Model Coverage RMI: Requirements Management Interface SDD: System Design Description VV: Verification and Validation
HUMUSOFT s.r.o.
Model-Based Design VÝZKUM
POŽADAVKY
NÁVRH Modely prostředí Hydraulika
Elektrické
Vyšší úroveň řízení Řídicí Algoritmy
IMPLEMENTACE C, C++ MCU
VHDL, Verilog DSP
FPGA
ASIC
TESTY & VERIFIKACE
Mechanické
Strukturovaný text PLC
INTEGRACE
33
HUMUSOFT s.r.o.
Model-Based Design… • Poskytuje CAE řešení pro vývoj multi-domain systémů • Využívá simulační modely jako základní prostředek matematického popisu chování složitých systémů a zařízení i jako prostředek spolupráce v rámci týmů a zajištění dokumentované kvality procesu • Umožňuje při vývoji zohlednit mnoho kritérií, aby mohl výrobek co nejlépe odpovídat zadaným požadavkům • Umožňuje včasnou detekci chyb ještě ve fázi simulace (opravy chyb odhalených později ve fázi fyzických prototypů jsou náročnější na sledování a dražší) 34
HUMUSOFT s.r.o.
Model-Based Design: Přínosy • Náklady – Minimalizace potřeby fyzických prototypů – Minimalizace přepracování – Usnadnění opakovaného využití algoritmů a řídicích systémů
• Čas – Zkrácení doby vývoje produktů – Efektivnějsí týmová spolupráce
• Výkonnost – Metoda aplikovatelná i na velmi rozsáhlé systémy, kde ruční programování již není efektivní – Podpora inovací – Zvýšení kvality 35
HUMUSOFT s.r.o.
Příklady
36
HUMUSOFT s.r.o.
Alstom Generates Production Code for Safety-Critical Power Converter Control Systems
Challenge To design and implement real-time power conversion and control systems for trams, metros, and railways
Solution Use MathWorks™ tools for Model-Based Design to design, simulate, and automatically generate production code for safety-critical transportation systems
Results Development time cut by 50% Defect-free, safety-critical code generated and certified Common language established
Pendolino tilting train.
“When “When Alstom Alstom delivered delivered aa Pendolino Pendolino train train to to Czech Czech Railways, Railways, the the railway railway application application was was the the first first with with automatically automatically generated generated code code to to receive receive TUV TUV certification.” certification.” Han Han Geerligs Geerligs Alstom Alstom
Link to user story
37
HUMUSOFT s.r.o.
Bell Helicopter Develops the First Civilian Tiltrotor, Using Model-Based Design
Challenge To design and build the BA609, the first and fastest commercially available tiltrotor aircraft in the world
The BA609, flying in airplane mode.
Solution Use Model-Based Design with MATLAB®, Simulink®, and Real-Time Workshop® software to model, simulate, test, and verify designs
Results Full collaboration with suppliers via Simulink models Flight control system code generated automatically from models 40% improvement in design and development time Flawless first flight, which went exactly like the simulation
"Simulations "Simulations and and aa rapid, rapid, iterative iterative approach approach enabled enabled us us to to minimize minimize the the unknowns unknowns and and ensure ensure that that we we had had established established enough enough margin margin that that when when we we ran ran into into aa surprise surprise we we could could continue continue to to have have aa safe safe flight flight test test program—and program—and run run itit with with unprecedented unprecedented efficiency.” efficiency.” David David King King Bell Bell Helicopter Helicopter
Link to technical article
38
HUMUSOFT s.r.o.
Flying-Cam Develops Autonomous Mini-Helicopter Controller with MathWorks™ Tools Challenge To develop an autonomous helicopter control to support aerial camera shots in the film industry
Solution
Flying-Cam’s autonomous mini-helicopter capturing footage from a Formula 1 test run.
Use MathWorks™ tools to design a complete control system, automatically generate code, and run hardware-in-the-loop simulations
Results Development time reduced Real-time controller implemented without errors Learning curve eliminated
™ tools, “With “With MathWorks MathWorks™ tools, II know know that that ifif the the helicopter helicopter is is working working
on on my my laptop, laptop, then then the the real-time real-time implementation implementation will will work, work, too.” too.” Marco Marco La La Civita Civita Flying-Cam Flying-Cam
Link to user story
39
HUMUSOFT s.r.o.
Design Times at Honeywell Cut by 60%
Challenge To update a flight control system while reducing development time and costs
Solution Use design tools from The MathWorks to enable one team to design, model, and simulate the flight-control laws and automatically generate flight-ready code
Results A five-to-one improvement in productivity Highly accurate, reusable code A superior product
“[Using “[Using Simulink Simulink®® and and Real-Time Real-Time Workshop Workshop®®]] we we found found we we could could do do in in half half aa day day what what previously previously took took aa week week or or more… more… ItIt is is pretty pretty easy easy to to see see at at least least five-to-one five-to-one improvement improvement over over the the way way we we used used to to work.” work.” Wayne Wayne King King Honeywell Commercial Aviation Systems Honeywell Commercial Aviation Systems
Link to user story
40
HUMUSOFT s.r.o.
Hyundai Uses Model-Based Design with MathWorks and SimuQuest Tools to Accelerate ECU Development
Challenge To improve the development process for modern engine control units
Applying Model-Based Design to a production ECU target.
Solution Use MathWorks and SimuQuest tools to model, simulate, prototype, and deploy the system by automatically generating code for production hardware
Results Vehicle started and idled smoothly on first attempt Prototype control functions implemented and tested within just a few hours Research, development, and production unified
“Model-Based “Model-Based Design Design with with MathWorks MathWorks and and SimuQuest SimuQuest tools tools enables enables dramatic dramatic reductions reductions in in development development time time and and cost, cost, as as well well as as seamless seamless integration integration between between research, research, development, development, and and production.” production.” Dr. Dr. Seungbum Seungbum Park Park Hyundai Hyundai Motor Motor Company Company
Link to user story
41
HUMUSOFT s.r.o.
NASA’s X43-A Scramjet Achieves RecordBreaking Mach 10 Speed Using MathWorks™ Tools for Model-Based Design Challenge To design and automatically generate flight control software for a scramjet vehicle traveling at Mach 10 speed
X43-A on its record-setting flight.
Solution Use Simulink® to model and validate control systems, Real-Time Workshop® to automatically generate flight code, and MATLAB® to process and analyze postflight data
Results Reduced development time by months Accurately predicted separation clearance Aided in achieving SEI CMM Level 5 process rating
“Our “Our autopilot autopilot worked worked on on the the first first try, try, which which is is amazing amazing given given that that aa vehicle vehicle like like this this had had never never been been ™ tools flown flown before. before. MathWorks MathWorks™ tools helped helped us us design design and and implement implement control control systems systems that that kept kept the the vehicle vehicle stable stable throughout throughout the the flight.” flight.” Dave Dave Bose Bose Analytical Analytical Mechanics Mechanics Associates Associates
Link to user story
42
HUMUSOFT s.r.o.
Wärtsilä Automates Production Code Generation for Large Industrial Embedded Systems Challenge To develop embedded controls for large diesel and gas engines that lower emissions and increase performance and reliability
Solution Use MathWorks tools for Model-Based Design to design, test, and automatically generate embedded code for innovative controller algorithms
Results Reusable models 20% faster code 200-300% increase in productivity
Wärtsilä engine.
“Modern “Modern control control features features are are notoriously notoriously problematic problematic to to develop develop and and often often involve involve extensive extensive engine engine testing. testing. Simulink Simulink®® and and Real-Time Real-Time Workshop Workshop®® Embedded Embedded Coder Coder let let us us design design and and optimize optimize the the features features early early in in our our process, process, saving saving aa large large amount amount of of costly costly engine engine tests.” tests.” Johan Johan Pensar Pensar Wärtsilä Wärtsilä
Link to user story
43
HUMUSOFT s.r.o.
Model-Based Design v rámci organizace
44
HUMUSOFT s.r.o.
Zdroje informací www.humusoft.cz –domovská stránka firmy Humusoft s.r.o.
www.mathworks.com –domovská stránka firmy The MathWorks, Inc.
www.dspace.com –domovská stránka firmy dSPACE GmbH.
45
HUMUSOFT s.r.o.
Děkuji za pozornost
46
HUMUSOFT s.r.o.