Main Content

Deploy Simulink® Model with FMU as Standalone Web App or Python® Application

This example shows how to deploy a Simulink® model with an FMU as a standalone application. The model can be deployed as a web app or a Python® application for standalone simulation.

The first section of this example generates an FMU from a Simulink® model and imports it back into Simulink® model using the FMU import block. The second section shows how to generate a web app for this Simulink® model and deploy it to MATLAB® web app server. The third section shows how to generate a Python application for this Simulink® model and simulate it using Python.

Open Model and Generate FMU

Open mass_spring_damper model and export it as a standalone co-simulation FMU using the exportToFMU function.

open_system('double_spring_damper')
exportToFMU('double_spring_damper', 'FMIVersion', '2.0', 'FMUType', 'CS', 'CreateModelAfterGeneratingFMU', 'off');
Setting System Target to FMU 'Co-Simulation' for model 'double_spring_damper'.
Setting Hardware Implementation > Device Type to 'MATLAB Host' for model 'double_spring_damper'.
### 'GenerateComments' is disabled for 'Co-Simulation' FMU Export.

Build Summary

Top model targets:

Model                 Build Reason                                         Status                        Build Duration
=======================================================================================================================
double_spring_damper  Information cache folder or artifacts were missing.  Code generated and compiled.  0h 0m 12.186s 

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 12.727s
### Model was successfully exported to 'Co-Simulation' FMU: '/tmp/Bdoc24b_2679053_768545/tpb382137a/simulinkcompiler-ex66759066/double_spring_damper.fmu'.
close_system('double_spring_damper', 0); 

Open the double_spring_damper_sim model. This model imports the generated FMU into Simulink using the FMU Import block.

open_system('double_spring_damper_sim');

double_spring_damper_fmu.png

Deploy and Simulate Model With MATLAB Web App Server

This section shows how to generate a web app for a Simulink model that contains an FMU. To achieve this, a MATLAB app is used to call and run the Simulink model containing the FMU. The MATLAB app is then deployed to a web app server as a standalone application. You can simulate the web app with different inputs and parameters for the Simulink model containing the FMU.

Create a MATLAB Web App for the Model

This example uses a MATLAB app named DSP_FMU.mlapp. Double-click the DSP_FMU.mlapp file to launch the MATLAB app designer. The app contains a drop-down option to select different model inputs and comboboxes to specify model parameters. The Output plot displays the model output when the Sim button is clicked. Click on code view in the app designer to check the implementation of this MATLAB app. On the Designer tab of the app designer toolstrip, click the RUN button to launch and validate the simulation or change the Input function and tune parameter values.

DSP_FMU_App.png

This app implements a callback function to accept parameter values and simulate the model when the Sim button is clicked.

% This function is called after you click sim button. 
% This function uses the combobox dropdown value to generate 
% a step function for simulation input and displays the output 
% on the plot panel

function SimButtonPushed(app, event)
    
    % Define two input options
    if app.InputFunctionDropDown.Value == "Step 1"
        t = linspace(0,10)';
        y = zeros(1, length(t))';
        y(t>=3) = 1;
        ExtInp =[t,y];
    else
        t = linspace(0,10)';
        y = zeros(1, length(t))';
        y(t>=6) = 3;
        ExtInp =[t,y];
    end

    mdl = 'double_spring_damper_sim';
    simIn = Simulink.SimulationInput(mdl);
    simIn.ExternalInput = ExtInp;
    simIn = simulink.compiler.configureForDeployment(simIn);
    
    % add a post step callback function to tune FMU parameters
    simIn = simulink.compiler.setPostStepFcn(simIn,@(time)postStepParameterTuner(app, time, mdl));
    
    simOut = sim(simIn);
    tout = simOut.tout;
    yout1 = simOut.yout{1}.Values.Data;
    yout2 = simOut.yout{2}.Values.Data;
    plot(app.UIAxes,tout,yout1,tout,yout2);
end

% This function is called at post step and modifies runtime parameters.
function postStepParameterTuner(app, time, model)
    if time == 0.0
    newRefWksVars = [Simulink.Simulation.Variable('p_b',app.bSpinner.Value),...
    Simulink.Simulation.Variable('p_k',app.kSpinner.Value),...
    Simulink.Simulation.Variable('p_m',app.mSpinner.Value)];
    simulink.compiler.modifyParameters(model,newRefWksVars);
    end
end

To package and deploy this app as a web app, in the DESIGNER tab of the app designer toolstrip, click the Share dropdown, and click Web App. This generates the archive file DSP_FMU/DSP_FMU.ctf in the current folder.

You can also create a deployable web app archive using the Web App Compiler app. For more information, see Create Web App.

Host and Run Simulation App on MATLAB Server

Before deploying the app on a web serve you must first set up a web app server by following the steps described in . Once the serve is set up, copy the web app archive file DSP_FMU.ctf to the app folder configured by the server.

You are now ready to deploy the web app. For more information about deploying a web app, see .

To run the deployed web app, click the DSP_FMU title on the web apps home page. This opens the app in a separate page in the web browser. Click the Sim button to observe the output in the browser.

MATLAB online.PNG

Generate and Build a Python Application

This section demonstrates the workflow to compile a Simulink model with an FMU into a Python package and invoke it from a Python application. This example uses the general workflow described in Package MATLAB Functions (MATLAB Compiler SDK) and shows how to simulate FMU with Python. Note that supported Python installation and MATLAB Runtime® are required during the simulation stage.

Create Python Package with Library Compiler App

Create and compile this MATLAB function DSPFMU_sim.m into Python package using the Library Compiler app. .

% deply and simulate Simulink model double_spring_damper_sim
function out = DSPFMU_Sim()
    in = Simulink.SimulationInput('double_spring_damper_sim');  
    in = simulink.compiler.configureForDeployment(in);
    out = sim(in);
end

Double-click on the DSPFMU_PYLIB.prj to open the Library Compiler app. You can also open the Library Compiler using the libraryCompiler (MATLAB Compiler SDK) function.

Select Python Package as deployment type and fill in Library Information as needed. Click Package button to start the library generation. Upon completion, a folder with name DSPFMU_PYLIB with the python files for redistribution will be generated in the current directory. In this example, the generated Python package name is DSPFMUPkg.

LibraryCompiler.png

To create a package with a programmatic approach, use the compiler.build.PythonPackageOptions (MATLAB Compiler SDK) function.

% open library compiler 
open("DSPFMU_PYLIB.prj");
% compile simulink model into a Python package
buildResults = compiler.build.pythonPackage('DSPFMU_Sim.m', ...
    'PackageName','DSPFMUPkg', ...
    'SampleGenerationFiles','DSPFMU_Sample1.m', ...
    'Verbose','on');

Install and Run MATLAB Generated Python Application

To install and run the Python library, navigate to the folder that contains setup.py and execute the following command in system command prompt. Note that the following step requires supported Python and MATLAB Runtime® installed in the deployed machine.

>> python setup.py install

Run the example Python script DSPFMU_SimSample1.py at the system command prompt. The script simulates the Simulink model double_spring_damper_sim and prints the simulation output in the terminal.

% MATLAB Runtime is required to execute the python application
% To set MATLAB Runtime Path
% linux     export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<InstallationFolder>/bin/glnxa64:<InstallationFolder>/extern/bin/glnxa64
% max       DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:<InstallationFolder>/bin/maci64:<InstallationFolder>/extern/bin/maci64
% windows   set PATH=%PATH%;<InstallationFolder>/bin/win64;<InstallationFolder>/extern/bin/win64

>> python DSPFMU_SimSample1.py
Please wait while the Python application is running...
[[0.0,0.0],[-0.016983246964385485,-1.0939593732535693],[-0.07347090321634799,-2.1471862221565776],[-0.17624270772488843,-3.151070561147709],[-0.329969237896757,-4.098440100275717],[-0.5371871435362281,-4.983592221799787],[-0.7983378908247676,-5.802285892965484],[-1.1118646242574661,-6.551696789087059],[-1.4743604952265137,-7.2303396836149165],[-1.8807608207187787,-7.837962775242052],[-2.3245707328020853,-8.375419061088616],[-2.798119559127081,-8.844520129631107],[-3.292833028587238,-9.247877842223353],[-3.799514509458583,-9.588739307100678],[-4.308626838486461,-9.870820337806466],[-4.810566862035839,-10.098142245364846],[-5.295925554047665,-10.27487635908849],[-5.755727466695523,-10.405200125308776],[-6.18164427307985,-10.493168018300608],[-6.566178241124792,-10.54259983541624],[-6.9028125985283335,-10.556988260876945],[-7.186126875979811,-10.539426890902025],[-7.411876417929712,-10.492559236620117],[-7.577036297952675,-10.418548578425094],[-7.679810843718013,-10.319067951829146],[-7.719610843322254,-10.195309013668048],[-7.697001253130451,-10.04800807928825],[-7.613622844713012,-9.877487243865863],[-7.472091706895226,-9.683708209238182],[-7.275880854753208,-9.466336233782151],[-7.029188391230223,-9.224811506543938],[-6.7367967234748765,-8.958425215176714],[-6.403927263104111,-8.666397625271093],[-6.036094848505484,-8.347955609471969],[-5.638965831674615,-8.002407249915866],[-5.218223387559432,-7.629211377330605],[-4.779443147466355,-7.228040194092827],[-4.327981747604239,-6.798833445614945],[-3.8688803373881386,-6.34184294344826],[-3.4067845275204838,-5.857666593425503],[-2.9458816921900537,-5.3472714324680135],[-2.4898559888864686,-4.812005518519097],[-2.0418609376928014,-4.253598840554397],[-1.6045089220356827,-3.6741537120120564],[-1.1798765452338817,-3.0761253747991164],[-0.7695244100843754,-2.4622937671464724],[-0.37452958817237514,-1.835727593292848],[0.004471184685684859,-1.1997419739833903],[0.3672297089646564,-0.557851053155101],[0.7138281273759635,0.08628301165710828],[1.0446165644745762,0.7289032381238426],[1.360148782683865,1.3662117804767673],[1.661117933558566,1.9944233235164734],[1.948294327758452,2.6098166681106028],[2.222466948434421,3.2087833927872413],[2.4843901991797677,3.7878726234676536],[2.7347371183860494,4.34383110690777],[2.97406001586915,4.873637957387443],[3.202759203929651,5.374533625063606],[3.4210602121060103,5.844042812904038],[3.6289996006735157,6.279991242340564],[3.826419229543415,6.680516331315241],[4.012968602791495,7.044071998412081],[4.188114699712817,7.369427940089304],[4.351158525061176,7.655663842162512],[4.501257466838898,7.902159079858556],[4.6374524413552605,8.108578531895363],[4.758698732853,8.274855182767439],[4.863899398339682,8.401170214005806],[4.951940105912923,8.487931290509025],[5.021724304534468,8.53574973351534],[5.0722076818505775,8.545417239266465],[5.102430950638921,8.517882754133728],[5.111550109692967,8.454230055452024],[5.098863447032532,8.355656515242705],[5.063834687687871,8.223453444212169],[5.006111830353237,8.058988328713752],[4.9255413624580004,7.863689186517714],[4.822177687395899,7.639031180872007],[4.696287736848857,7.386525548878402],[4.5483508718182675,7.1077108218227245],[4.379054295093705,6.804146243655303],[4.18928430294155,6.477407230859433],[3.9801137928453683,6.129082663663692],[3.7527865158193405,5.760773755781765],[3.508698615366991,5.37409421807801],[3.2493780303514774,4.97067141089019],[2.976462356188698,4.552148170000098],[2.691675758659568,4.120184991939356],[2.3968055184773784,3.676462274700658],[2.0936787541159347,3.2226823290211724],[1.7841398271720952,2.76057090206183],[1.4700288807895028,2.2918779882367777],[1.153161899641513,1.818377739774784],[0.8353126119662373,1.3418673308985587],[0.5181964824742966,0.8641646728669123],[0.20345697185792505,0.3871049211556079],[-0.10734583375381912,-0.087464240552379],[-0.41274418976808536,-0.5576885133392456],[-0.7113692882151232,-1.0217140281086254],[-1.0019555720423485,-1.477695423017821],[-1.283342911989036,-1.923804823317306],[-1.5544768336305073,-2.358241568505184],[-1.8144070176869875,-2.779242512105193],[-2.062284323135309,-3.1850927055097804],[-2.2973565999667405,-3.5741362692290073],[-2.518963566788732,-3.944787252423621],[-2.726531028297817,-4.295540284501039],[-2.919564699590234,-4.624980830411008],[-3.0976438891377738,-4.931794873578685],[-3.2604152709922563,-5.214777866554439],[-3.40758695045098,-5.472842808774709],[-3.538922997143301,-5.705027332607571],[-3.65423858644228,-5.910499702371992],[-3.7533958554187348,-6.0885636555448786],[-3.836300544356161,-6.238662040200809],[-3.9028994601872724,-6.36037922720195],[-3.953178765060311,-6.453442299161639],[-3.987163062449166,-6.517721040204729],[-4.00491522551242,-6.553226770579892],[-4.006536888371154,-6.560110087868389],[-3.99216950105693,-6.5386575915951575],[-3.961995833375519,-6.489287680287981],[-3.9162418019890057,-6.4125455193458984],[-3.8551784886492606,-6.309097284452716],[-3.779124215600016,-6.179723788770291],[-3.6884465464652716,-6.025313602907511],[-3.5835640871182113,-5.8468557748871435],[-3.464947970650408,-5.64543225328052],[-3.3331229231408157,-5.422210110648948],[-3.1886678219130222,-5.178433656751721],[-3.0322156747915865,-4.915416522004544],[-2.8644529669353123,-4.634533781758778],[-2.686118340552886,-4.337214181478424],[-2.498000591630834,-4.024932512164038],[-2.3009359861965892,-3.699202174735329],[-2.095804916119095,-3.361567961833499],[-1.8835279305918347,-3.0135990759020395],[-1.6650611938896174,-2.656882393672688],[-1.4413914324528967,-2.293015979500703],[-1.2135304446176665,-1.9236028434945998],[-0.9825092542356739,-1.5502449351587413],[-0.7493719949528195,-1.1745373593565913],[-0.51516961503739,-0.7980627988093937],[-0.28095349344361475,-0.42238612603109477],[-0.0477690563880884,-0.04904918749150139],[0.18335051971382033,0.32043425620910215],[0.4113904383355006,0.6845834484101305],[0.6353601721108064,1.0419554241830435],[0.8542990454923214,1.391149675891306],[1.067281454012468,1.7308127006523197],[1.2734216730498604,2.059642429622294],[1.4718782190652082,2.3763925346838257],[1.66185773642357,2.6798766038142285],[1.8426183928958249,2.96897217230605],[2.013472776489208,3.242624593240129],[2.173790295181321,3.499850727298015],[2.3229990892438863,3.739742429245975],[2.460587472997221,3.9614698063063756],[2.586104928926503,4.164284222210044],[2.6991626820465675,4.3475210200282435],[2.799433886189843,4.51060193692548],[2.8866534565138346,4.653037184743133],[2.9606175840142024,4.774427171787935],[3.0211829682499074,4.8744638433094405],[3.068265803926165,4.952931620842859],[3.1018405555478163,5.0097079237908435],[3.121938552175193,5.044763260233551],[3.1286464315229945,5.058160877897098],[3.122104459383268,5.050055970379061],[3.1025047467715776,5.020694438027809],[3.0700893834340546,4.9704112072035675],[3.0251485025493374,4.899628115920831],[2.9680182877409975,4.8088513779980495],[2.8990789299979896,4.698668641743534],[2.8187525388830528,4.5697456628181605],[2.7275010095752883,4.422822614178353],[2.62582384490879,4.258710058871406],[2.514255929681181,4.078284613895723],[2.393365253142511,3.882484335329409],[2.2637505747464615,3.672303856462101],[2.1260390279452106,3.448789311738125],[1.9808836570140025,3.2130330799458964],[1.8289608825646209,2.966168380289718],[1.6709678924999047,2.709363754784844],[1.507619956615528,2.4438174698604334],[1.3396476648044575,2.1707518691786967],[1.167794090792655,1.8914077085266638],[0.9928118854578225,1.6070385022564164],[0.8154603059820096,1.3189049091879672],[0.6365021892911111,1.028269184193364],[0.45670088037074963,0.7363897198964653],[0.27681712805520264,0.4445157010927707],[0.09760596270717686,0.15388189265657526],[-0.08018642820739982,-0.1342964201070458],[-0.2558258093336744,-0.4188283214609166],[-0.4285929731087711,-0.6985519700528519],[-0.5977867629061616,-0.9723391045919665],[-0.7627270242968112,-1.2390993378860475],[-0.9227574650757645,-1.4977842280834313],[-1.0772484050300914,-1.7473911171827294],[-1.2255993970681631,-1.986966727974404],[-1.3672417022688121,-2.2156105115662186],[-1.5016406026136195,-2.432477738530228],[-1.6282975366029766,-2.6367823275053013],[-1.7467520445894977,-2.8277994058114904],[-1.8565835124510401,-3.0048675972976846],[-1.9574127041289013,-3.1673910332693893],[-2.048903075533378,-3.314841082946816],[-2.1307618643283406,-3.446757800501773],[-2.2027409521102186,-3.5627510863310423],[-2.2646374974589714,-3.662501560858282],[-2.3162943402268326,-3.7457611498282493],[-2.3576001792165586,-3.812353380776121],[-2.3884895270606754,-3.862173391128114],[-2.4089424476277457,-3.8951876492219837],[-2.4189840826367006,-3.911433390428898],[-2.4186839753464686,-3.911017771510584],[-2.408155200200837,-3.894116747353714],[-2.3875533081475253,-3.860973675281013],[-2.357075098019729,-3.8118976532370956],[-2.3169572248754737,-3.7472615992761438],[-2.2674746565456454,-3.6675000809263554],[-2.2089389898587526,-3.5731069041594288],[-2.141696638104531,-3.4646324728382294],[-2.0661269012859234,-3.3426809306378287],[-1.9826399306071039,-3.20790709851984],[-1.8916745984715475,-3.061013221873227],[-1.7936962850358789,-2.9027455424030353],[-1.6891945920987332,-2.7338907107392068],[-1.578680994814302,-2.5552720565394225],[-1.4626864414211929,-2.3677457335628436],[-1.3417589108804826,-2.172196757787321],[-1.2164609380320568,-1.9695349571245306],[-1.0873671156131035,-1.7606908516506967],[-0.9550615822422382,-1.5466114835121036],[-0.8201355052603697,-1.3282562157832505],[-0.6831845671360762,-1.1065925195517936],[-0.5448064639880243,-0.8825917683805298],[-0.4055984246471297,-0.6572250590562865],[-0.2661547585724833,-0.4314590771837201],[-0.12706444084203125,-0.20625202572492968],[0.011091257644905206,0.01745036596935673],[0.14774108669816544,0.23871873573645908],[0.2823260721328955,0.4566438686123946],[0.4143017019649147,0.6703403479017984],[0.5431400357609039,0.8789500627949716],[0.6683317295490668,1.0816455589366707],[0.7893879688804954,1.277633219313201],[0.9058423028561955,1.4661562638227883],[1.017252372204226,1.6464975569208011],[1.1232015248091505,1.8179822137783639],[1.2233003124642803,1.9799799964530966],[1.31718786303702,2.131907492637569],[1.4045331227087654,2.273230070618732],[1.4850359634717822,2.4034636051449247],[1.5584281516336596,2.522175969951524],[1.624474173691559,2.6289882937381286],[1.6829719165888688,2.7235759774160506],[1.7337532000504914,2.8056694714521555],[1.7766841594036373,2.875054813121553],[1.8116654780219055,2.9315739244454613],[1.8386324692745242,2.9751246725302662],[1.8575550086125907,3.005660694938185],[1.868437317172655,3.0231909936079173],[1.8713175990178188,3.0277793017043213],[1.8662675348607176,3.0195432286085313],[1.8533916358147227,2.9986531890631456],[1.8328264613933833,2.9653311232601096],[1.8047397066180026,2.919849015400604],[1.7693291636944832,2.8625272189653668],[1.7268215642790399,2.7937325976090115],[1.6774713088646762,2.7138764912314883],[1.6215590902837957,2.623412517382142],[1.5593904187350929,2.522834218714994],[1.4912940561037478,2.4126725677359135],[1.4176203676524495,2.2934933405612026],[1.3387395994170348,2.1658943718406634],[1.255040089845275,2.030502703384332],[1.1669264243717792,1.8879716393686712],[1.074817541727777,1.738977721283123],[0.9791448008436807,1.5842176360096625],[0.8803500172171046,1.4244050706047118],[0.7788834775918942,1.2602675274730109],[0.6752019417273131,1.0925431136856252],[0.5697666399334915,0.9219773181983366],[0.4630412749122309,0.7493197906716649],[0.3554900362738683,0.5753211354795517],[0.2475756359036466,0.4007297343204894],[0.1397573721272564,0.22628861061321304],[0.032489230377123715,0.052732348569972776],[-0.07378197220938228,-0.1192159205047352],[-0.17861839111951658,-0.2888474525415225],[-0.2815929008919098,-0.45547073396264004],[-0.38229077713700416,-0.6184142226719844],[-0.48031130799086424,-0.7770289761309173],[-0.5752693292001931,-0.9306911564640145],[-0.6667966774084619,-1.0788044031710193],[-0.754543556598151,-1.220802064690217],[-0.8381798130413499,-1.3561492807604134],[-0.917396114519549,-1.4843449082597666],[-0.9919050299925658,-1.6049232839558505],[-1.0614420063253476,-1.7174558183784354],[-1.1257662391189935,-1.8215524158204104],[-1.1846614351377835,-1.916862716278906],[-1.2379364642762418,-2.003077155963916],[-1.2854258994681445,-2.0799278438215025],[-1.3269904434016218,-2.1471892523390745],[-1.3625172413697175,-2.204678721717383],[-1.391920080052416,-2.252256777304117],[-1.4151394724925983,-2.289827260983704],[-1.4321426299928741,-2.317337278003776],[-1.4429233221209006,-2.3347769614875005],[-1.4475016264656924,-2.342179057629565],[-1.4459235702345432,-2.339618335299233],[-1.4382606662174502,-2.3272108244738132],[-1.424609346071281,-2.3051128885977206],[-1.405090294287274,-2.2735201366037137],[-1.379847686600758,-2.2326661809417807],[-1.3490483369792172,-2.182821248535615],[-1.3128807576820967,-2.124290652124913],[-1.2715541372212154,-2.057413129952292],[-1.2252972413626224,-1.982559062215048],[-1.1743572425976487,-1.9001285731230488],[-1.1189984837713685,-1.8105495277836883],[-1.0595011817894502,-1.7142754334721213],[-0.9961600775284319,-1.6117832551391862],[-0.9292830382489163,-1.5035711552598983],[-0.8591896189554222,-1.390156168331713],[-0.7862095892601864,-1.2720718204936006],[-0.7106814323908356,-1.149865704854196],[-0.6329508230334918,-1.0240970231898763],[-0.5533690907236727,-0.8953341047017249],[-0.4722916754876245,-0.7641519125042706],[-0.3900765823969811,-0.631129548459067],[-0.30708284163053234,-0.49684776686324733],[-0.22366898053923048,-0.3618865073578704],[-0.1401915140853056,-0.22682245723410854],[-0.05700345987458251,-0.09222665308817035],[0.02554711617603199,0.041337868490469026],[0.1071185176951028,0.17331836181707308],[0.18737679362035808,0.30317459555580895],[0.26599706649776983,0.4303810000449815],[0.3426648082092163,0.5544287302460206],[0.4170770583051199,0.6748276364975353],[0.48894358041835073,0.7911081357231537],[0.5579879525506971,0.9028229762358699],[0.623948587351725,1.0095488897999143],[0.6865796788502859,1.1108881251513585],[0.7456520724496627,1.206469857738275],[0.8009540553567851,1.2959514710177358],[0.852292064982501,1.3790197052376274],[0.8994913132219782,1.4553916702335195],[0.9423963249003908,1.5248157193819256],[0.9808713890475601,1.5870721824685323],[1.0148009220446683,1.6419739558505828],[1.0440897420650574,1.689366948913881],[1.0686632546079815,1.7291303864441006],[1.0884675492975917,1.7611769671465831],[1.1034694084879684,1.7854528791559539],[1.1136562285773073,1.8019376739741164],[1.1190358552890851,1.81064400086001],[1.1196363345238505,1.8116172042645253],[1.1155055807209637,1.8049347874568649],[1.1067109649938982,1.7907057460221876],[1.09333882561446,1.769069775422522],[1.0754939037193296,1.740196357301682],[1.0532987073956166,1.7042837296784465],[1.0268928075696253,1.6615577466088631],[0.9964320693737806,1.6122706333066499],[0.9620878228997897,1.556699643088878],[0.9240459774607752,1.4951456228611635],[0.8825060836805638,1.4279314941713606],[0.8376803479038898,1.3554006571422794],[0.7897926035763781,1.277915324841436],[0.7390772443773129,1.1958547958586478],[0.6857781240009596,1.1096136730399073],[0.6301474275732836,1.0196000364680775],[0.5724445197600582,0.9262335788873582],[0.5129347746694716,0.829943711839153],[0.45188839267738745,0.7311676508120262],[0.3895792093064618,0.6303484877081518],[0.32628350127154226,0.5279332588934186],[0.2622787947634404,0.4243710170287113],[0.1978426809816355,0.3201109147765221],[0.13325164384420315,0.21560030834075794],[0.06877990470080532,0.11128288862933675],[0.004698288752574831,0.007596847629959394],[-0.05872688225810864,-0.09502691263952481],[-0.12123486668381822,-0.1961665215022037],[-0.18257154470614156,-0.2954108244952523],[-0.24249042113172298,-0.39236100523596784],[-0.30075358542183855,-0.48663213810578826],[-0.35713262534863355,-0.5778546659340935],[-0.41140949090574996,-0.6656757972409942],[-0.46337730534753563,-0.7497608179946245],[-0.5128411204881548,-0.829794313251832],[-0.5596186136584795,-0.9054812944796875],[-0.60354072399338,-0.9765482287969738],[-0.6444522260036673,-1.042743966827775],[-0.6822122386741937,-1.1038405663214563],[-0.7166946686211779,-1.1596340091626751],[-0.7477885861364075,-1.209944809869537],[-0.7753985332422819,-1.254618514155588],[-0.7994447631784184,-1.2935260866099416],[-0.8198634110364823,-1.3265641870274736],[-0.8366065955537825,-1.3536553353956728],[-0.8496424523667705,-1.3747479660144317],[-0.8589550993117119,-1.389816371687869],[-0.8645445346403093,-1.3988605393813183],[-0.8664264692918299,-1.40190587918005],[-0.8646320946292586,-1.3990028488173663],[-0.8592077873041384,-1.3902264764567014],[-0.8502147531620818,-1.3756757848136798],[-0.8377286123375434,-1.3554731200881667],[-0.8218389279114338,-1.3297633895417558],[-0.8026486807177516,-1.298713211901517],[-0.780273693084835,-1.2625099850949197],[-0.7548420044824167,-1.221360876122495],[-0.726493202216782,-1.1754917381529686],[-0.6953777104724077,-1.1251459601793439],[-0.6616560411390282,-1.0705832548029226],[-0.6254980099877019,-1.0120783899148265],[-0.5870819218677824,-0.9499198702206233],[-0.5465937286884632,-0.8844085747027183],[-0.5042261640235408,-0.8158563562368925],[-0.4601778582360954,-0.744584609673528],[-0.41465243806084995,-0.6709228147605555],[-0.3678576146060398,-0.595207060324],[-0.32000426374377927,-0.5177785561333272],[-0.2713055028482878,-0.43898213886283977],[-0.22197576781515063,-0.3591647785175067],[-0.17222989425231172,-0.2786740916223055],[-0.12228220667507322,-0.19785686737897634],[-0.07234561946341272,-0.11705761287373008],[-0.022630753250894087,-0.036617123274678504],[0.026654929689131898,0.04312891721054703],[0.07530796761188462,0.12185129803739872],[0.12312971570678374,0.19922860332004572],[0.1699271335665746,0.27494848598564126],[0.21551354070158282,0.34870889020481627],[0.2597093372472697,0.4202192174859101],[0.3023426871901078,0.4892014321069617],[0.34325016162309974,0.5553911018612104],[0.3822773397371359,0.6185383704073593],[0.4192793654569201,0.6784088578436546],[0.454121457839441,0.7347844864634302],[0.4866793735679858,0.787464228997601],[0.516839820094499,0.8362647770051135],[0.544500818206713,0.8810211274339852],[0.569572013022919,0.9215870857417069],[0.5919749326455278,0.9578356843328466],[0.6116431939336957,0.9896595154421011],[0.6285226550842843,1.0169709779612104],[0.6425715149383137,1.0397024380765298],[0.653760359155905,1.0578063039491077],[0.6620721536255508,1.0712550150293405],[0.6675021856924921,1.0800409469522074],[0.6700579540051321,1.084176233305294],[0.6697590079869236,1.083692505898922],[0.6666367381432036,1.0786405554943894],[0.6607341186072394,1.0690899152613145],[0.6521054035165323,1.0551283695371712],[0.6408157789885156,1.0368613907501638],[0.6269409726334997,1.0144115076395381],[0.6105668227014693,0.9879176081642863],[0.5917888091075428,0.9575341807310431],[0.5707115487180612,0.9234304975939759],[0.5474482574049225,0.8857897444828687],[0.522120181489501,0.8448081006997518],[0.49485600129894863,0.8006937740887367],[0.4657912096465664,0.7536659954277124],[0.4350674681240133,0.7039539769138379],[0.40283194415621293,0.6517958395170284],[0.3692366318197904,0.5974375140566703],[0.33443765946265497,0.5411316209164896],[0.29859458718592574,0.48313633335081013],[0.2618696972598149,0.423714229352449],[0.224427280542437,0.3631311370483342],[0.1864329219549483,0.30165497856386214],[0.14805278803814523,0.2395546172513448],[0.1094529195749133,0.17709871311204975],[0.07079853221002727,0.11455459115579576],[0.032253327934106936,0.05218712733740623],[-0.006021179777572293,-0.009742343413819077],[-0.04386632446778336,-0.0709770926963576],[-0.08112692623549084,-0.13126603345307264],[-0.11765190981087463,-0.19036472005882765],[-0.1532948987855966,-0.2480363098250079],[-0.18791478374240717,-0.30405248227037157],[-0.2213762621621138,-0.358194312724433],[-0.25355034812739874,-0.4102530970585649],[-0.28431484999130163,-0.46003112458010004],[-0.31355481433268045,-0.507342396374782],[-0.34116293468091075,-0.5520132866418012],[-0.36703992365674926,-0.5938831448321696],[-0.3910948473449313,-0.6328048366741266],[-0.4132454208859325,-0.6686452224474134],[-0.4334182644486555,-0.7012855711503762],[-0.45154911892182736,-0.7306219094887157],[-0.46758302083886744,-0.7565653049010821],[-0.4814744362281357,-0.7790420821233662],[-0.4931873532570636,-0.7979939730792833],[-0.5026953337139526,-0.8133782001684496],[-0.5099815235444787,-0.8251674933034756],[-0.5150386228304535,-0.83335004132347],[-0.5178688157654739,-0.8379293786816622],[-0.5184836613450672,-0.8389242085685185],[-0.5169039456471743,-0.8363681638877145],[-0.5131594967316785,-0.8303095077496235],[-0.5072889633345985,-0.8208107753846471],[-0.4993395586729697,-0.8079483596058425],[-0.4893667708097991,-0.7918120421660462],[-0.4774340411543226,-0.7725044735582615],[-0.46361241279065446,-0.7501406039987506],[-0.44798015043739464,-0.7248470685093614],[-0.4306223339414649,-0.6967615291785403],[-0.41163042730105937,-0.6660319778286883],[-0.39110182529481824,-0.6328160024505366],[-0.36913937986692086,-0.5972800208826552],[-0.34585090848054384,-0.5595984853157266],[-0.32134868670487643,-0.5199530612865614],[-0.29574892734351355,-0.47853178489580683],[-0.26917124844448514,-0.4355282020357949],[-0.24173813255439777,-0.39114049345093344],[-0.21357437959117612,-0.3455705894724954],[-0.1848065557117546,-0.29902327827269454],[-0.15556244054288398,-0.25170531146970876],[-0.1259704751251228,-0.20382451088606002],[-0.09615921289226295,-0.15558888021776401],[-0.06625677597111025,-0.1072057253112905],[-0.036390319039964605,-0.05888078667003399],[-0.006685502928614379,-0.0108173877221662],[0.022734019921497164,0.03678439772204441],[0.05174710609069309,0.08372855551251923],[0.08023560594212129,0.12982391552023012],[0.1080848306322364,0.17488490727755096],[0.1351839995872282,0.21873228401229403],[0.16142666676318113,0.2611938123534634],[0.18671112411504073,0.3021049251603543],[0.21094078081226814,0.3413093351091479],[0.23402451685684528,0.3786596068617284],[0.25587700988150697,0.41401768583919796],[0.276419034032155,0.4472553818265712],[0.29557772996778237,0.4782548058444682],[0.3132868451433227,0.5069087589373572],[0.3294869436750552,0.5331210717450706],[0.3441255852239472,0.5568068939439826],[0.357157472469021,0.5778929328654403],[0.3685445668798972,0.5963176408208267],[0.3782561726345135,0.6120313508840719],[0.38626898866407283,0.6249963611025752],[0.3925671289419645,0.6351869673254503],[0.3971421112661848,0.6425894450528553],[0.39999281491510696,0.6472019809210481],[0.4011254076837975,0.6490345546438657],[0.4005532429319412,0.6481087724317478],[0.39829672739432886,0.6444576531034167],[0.3943831606203221,0.63812536829215],[0.3888465470192956,0.6291669383275088],[0.3817273815943517,0.6176478855437585],[0.37307241054621937,0.6036438469273995],[0.3629343680228295,0.5872401481676354],[0.3513716903772655,0.5685313413147095],[0.3384482093773257,0.547620708381346],[0.3242328258835327,0.524619733341612],[0.3087991655788418,0.499647545088977],[0.2922252183923394,0.4728303340108658],[0.27459296331070376,0.4443007449202959],[0.25598798031499287,0.4141972491560398],[0.2364990512163206,0.3826634987209922],[0.2162177511921139,0.34984766537393575],[0.19523803284487531,0.31590176762262734],[0.17365580461770344,0.2809809885860744],[0.15156850540528216,0.24524298770107794],[0.12907467719569946,0.20884720924269823],[0.1062735375673972,0.17195419061040287],[0.08326455384691124,0.13472487330149144],[0.060147020706995,0.0973199194512164],[0.037019642951419005,0.0598990367651381],[0.01398012519241932,0.022620314604014133],[-0.008875229920325575,-0.014360426094673126],[-0.031451913313907676,-0.05089026646116783],[-0.05365758940411609,-0.08681980440325376],[-0.07540246282529912,-0.12200374798711018],[-0.09659963056963228,-0.15630148521017123],[-0.11716541820370388,-0.18957762801063183],[-0.13701969891158577,-0.22170252848971428],[-0.15608619419923386,-0.2525527654614357],[-0.17429275518475296,-0.28201159958973465],[-0.19157162349234205,-0.3099693955237472],[-0.20785967086417867,-0.3363240095980643],[-0.2230986167036625,-0.360981141825252],[-0.2372352228648735,-0.38385465107203626],[-0.250221465106356,-0.4048668324776259],[-0.26201468073196016,-0.4239486563419269],[-0.27257769204700477,-0.4410399678821535],[-0.28187890536401045,-0.45608964742783126],[-0.2898923853982414,-0.4690557307956801],[-0.2965979049988382,-0.47990548975664105],[-0.3019809702659829,-0.4886154726766526],[-0.30603282120787983,-0.49517150557999423],[-0.3087504081929365,-0.49956865404841067],[-0.3101363445519814,-0.5018111465301486],[-0.3101988357822601,-0.5019122597898333],[-0.3089515858989251,-0.4998941673821707],[-0.306413681570418,-0.4957877521791837],[-0.3026094547611783,-0.48963238412152715],[-0.29756832468818006,-0.48147566449882745],[-0.2913246199765844,-0.4713731381914751],[-0.28391738197401384,-0.4593879754263871],[-0.27539015025234115,-0.44559062471152605],[-0.2657907313901963,-0.4300584387180224],[-0.2551709521884161,-0.41287527497424287],[-0.24358639852419436,-0.3941310733227686],[-0.23109614109757196,-0.37392141216871966],[-0.21776244936599123,-0.3523470456159579],[-0.20365049499881166,-0.32951342364622904],[-0.18882804621385463,-0.30553019754512006],[-0.17336515438214875,-0.2805107128177111],[-0.157333834305047,-0.2545714918659213],[-0.14080773957977075,-0.22783170871877878],[-0.12386183447521877,-0.20041265811619918],[-0.10657206373959999,-0.17243722124640634],[-0.08901502175517445,-0.14402933042697405],[-0.07126762244320495,-0.1153134349997578],[-0.05340677130424801,-0.08641397068090145],[-0.03550904095528275,-0.057454834568869476],[-0.017650351496050036,-0.028558867966326965],[9.4342997467467e-05,0.00015265088403799976],[0.01765136059404928,0.02856050211365851],[0.03494858902879885,0.056548005628027996],[0.05191577346043951,0.08400148670771271],[0.0684847933530209,0.11081072401228134],[0.0845899274283378,0.13686937828223525],[0.1001681056968274,0.1620754001334738],[0.11515914763971344,0.18633141544400586],[0.12950598568339586,0.2095450869430164],[0.14315487317821912,0.23162945072749522],[0.15605557616746127,0.2525032265508986],[0.1681615483083309,0.2720911008511952],[0.17943008838459593,0.2903239816115903],[0.1898224799298476,0.30713922427566037],[0.19930411256097647,0.3224808280690008],[0.20784458470284733,0.33629960221121263],[0.21541778746706014,0.34855330163457143],[0.22200196952971782,0.3592067319584555],[0.2275797829349463,0.368231823601003],[0.2321383098321807,0.3756076750409651],[0.23566907023560973,0.38132056537277464],[0.2381680109733262,0.38536393642592726],[0.23963547607134533,0.3877383448453539],[0.24007615889341297,0.3884513846520459],[0.23949903643113124,0.38751758092228994],[0.23791728621009384,0.3849582553390177],[0.23534818634617088,0.38080136447952434],[0.2318129993515543,0.375081311809747],[0.22733684035242516,0.36783873445601467],[0.22194853043890334,0.35912026592032237],[0.21568043592307837,0.3489782759943976],[0.20856829433220184,0.33747058921080236],[0.20065102801137216,0.32466018324576695],[0.1919705462531045,0.31061486875812827],[0.18257153690991398,0.29540695221142044],[0.1725012484803331,0.2791128832816518],[0.16180926368853363,0.26181288850143963],[0.1505472656028555,0.2435905928318371],[0.13876879735899902,0.224532630886283],[0.12652901656937796,0.20472824955657545],[0.11388444551114232,0.1842689038085855],[0.10089271819166348,0.1632478474255958],[0.08761232539185496,0.14175972047970675],[0.07410235878462301,0.11990013530676934],[0.06042225521806305,0.0977652627478818],[0.046631542240822554,0.07545142040075413],[0.03278958593043859,0.05305466459736398],[0.018955342064542514,0.030670387790486944],[0.005187111649742686,0.008392922991099526],[-0.008457698206104739,-0.013684843148432116],[-0.021922807125479782,-0.03547184706378379],[-0.03515328708050617,-0.05687921333839378],[-0.048095779923957034,-0.07782060667603309],[-0.06069870599931265,-0.0982125694389757],[-0.07291246304365949,-0.11797484347965312],[-0.08468961464648309,-0.13703067507338734],[-0.09598506757926059,-0.15530710184369667],[-0.10675623736495612,-0.1727352206593622],[-0.11696320151280963,-0.1892504355735178],[-0.1265688399019289,-0.20479268496906505],[-0.13553896185687886,-0.21930664717128587],[-0.14384241951944526,-0.23274192388719872],[-0.1514512071827595,-0.24505320093153707],[-0.1583405463167349,-0.2562003858007833],[-0.1644889560770103,-0.2661487217590242],[-0.1698783091530516,-0.27486887820206574],[-0.17449387287445586,-0.2823370171688196],[-0.17832433555756982,-0.28853483597101753],[-0.1813618181370112,-0.2934495860133993],[-0.18360187118830995,-0.2970740679762379],[-0.1850434575... Output truncated. Text exceeds maximum line length for Command Window display.

See Also