Main Content

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

This example demonstrates how to deploy a Simulink® model, which includes an FMU, as a web app or a Python® application for standalone simulation.

First, you generate an FMU from a Simulink model and import it back into a Simulink using the FMU import block. Next, you create a web app for this Simulink model and deploy it to MATLAB web app server for simulation. Finally, you generate a Python application for this Simulink model and simulate it using Python.

Open Model and Generate FMU

Open the 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'.
### Searching for referenced models in model 'double_spring_damper'.
### Total of 1 models to build.
### '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.606s 

1 of 1 models built (0 models already up to date)
Build duration: 0h 0m 13.081s
### Model was successfully exported to 'Co-Simulation' FMU: '/tmp/Bdoc25a_2864802_2304439/tp823db898/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

You can generate a web app for a Simulink model that contains an FMU. To do so, use a MATLAB app to call and run the Simulink model containing the FMU. Then deploy the MATLAB app 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 MATLAB Web App for 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 drop-down list Input Function enables you to select different model inputs and comboboxes b, k, and m enable you to specify those model parameters. The Output plot displays the model output when you clock the Sim button. Click code view in the App Designer to check the implementation of this MATLAB app. On the Designer tab of the App Designerr 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 the 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, in the Share drop-down list, select Web App. Doing so 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 server, you must first set up a web app server by following the steps described in . Once the server 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 Deploy Web App.

To run the deployed web app, click the DSP_FMU title on the web app's home page. Doing so 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 the MATLAB function DSPFMU_sim.m into a 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 DSPFMU_PYLIB.prj to open the Library Compiler app. You can also open the Library Compiler using the function.

Select Python Package as the deployment type and fill in the Library Information as needed. Click the Package button to start the library generation. Upon completion, a folder with the name DSPFMU_PYLIB with the Python files for redistribution is 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