Introduction to the SAM User Language National Renewable Energy Laboratory Sept

Introduction to the SAM User Language National Renewable Energy Laboratory September 18, 2013 Abstract The SAM User Language (SamUL) is a built-in scripting language that allows a user to automate tasks and perform more complex analyses directly from within SAM. This guide assumes some rudimentary facility with basic programming concepts and familiarity with the SAM interface, capabilities, and general work flow. The System Advisor Model (SAM) provides a consistent framework for analyzing and com- paring system performance and costs across a wide range of renewable energy technologies and markets, from residential photovoltaic systems to utility scale concentrating solar power plants. System Advisor is based on an hourly simulation engine that interacts with performance, cost, and finance models to calculate energy output, costs, and cash flows, including the effect of incentives. 1 Contents 1 Introduction 4 1.1 Why use SamUL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Entering a SamUL Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Hello world! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.4 Why SamUL instead of VBA? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Data Variables 5 2.1 General Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Simple Input and Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.5 Data Types and Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.6 Special Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3 Flow Control 9 3.1 Comparison Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 Branching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.1 if Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.2.2 else Construct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.3 Multiple if Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2.4 Single line ifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Looping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.1 while Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.2 Counter-driven Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3.3 for Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3.4 Loop Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Quitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4 Arrays of Data 14 4.1 Initializing and Indexing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 Array Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.3 Processing Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.4 Multidimensional Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.5 Managing Array Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.6 Multiple Advance Declarations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5 Functions Calls 17 5.1 User Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.1.2 Returning a Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 5.1.3 Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.1.4 Variable Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.2 Built-in SamUL Functions . . . . . . . . uploads/Management/ samul-guide.pdf

  • 20
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Fev 10, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.2435MB